使用loadrunner集群进行分布式测试介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

b u c

e p h a l

u s

使用loadrunner 集群进行分布式测试介绍

使用loadrunner 集群可以大大扩展测试机发起负载的能力: ⏹ 解决一台性能测试机不能发起足够大的负载的问题 ⏹ 解决单台性能测试机带宽资源有限的问题 ⏹ 广域网测试中可以模拟分布在不同地域的负载

1. 背景简介

在针对应用系统进行大规模的负载测试时,一台测试机的CPU 、内存、网络、磁盘等资源往往是有限的,难以发起大规模的负载。这时候需要投入更多的硬件资源进行负载测试,loadrunner 提供了进行分布式测试的方法。可以通过一台主控机加上多台agent 机器的方法进行大规模的测试,解决单台测试机压力不足的问题,大大扩展了测试能力。

在rigel 团队中,进行下载、上传等网络带宽资源消耗比较严重的操作时,单台测试机的网络吞吐量容易成为瓶颈,我们通过分布式测试的方法,使用多台机器发起压力,客服了单台测试机吞吐能力不足的问题。

另外,在银行、保险以及大型企业跨地域的系统等大型应用系统中,不可避免的需要将压力产生机分布在各省、地的分公司中,此时使用分布式测试也是必然的选择。

2. 集群环境安装与配置

1. 在中心控制机上安装完整的loadrunner 应用程序;

2. 在从机上安装load generator (也可以选择安装完整的loadrunner 应用程序);

3. 配置agent 环境

4. 添加从机;

b u c

e p h a l

u s

注:loadrunner 现在也支持load generator 安装在unix/Linux 服务器上,因此我们可以从windows 机器控制unix/linux 作为负载产生机来进行压力测试。测试过程中注意如果脚本中含有文件路径相关的操作存取操作,请注意脚本更改和调试。 5. 测试中心控制机和从机的连接;

选择要使用的从机,点击connect 进行测试。如果成功就可以使用中心机进行调度了。如果失败需要检查失败原因,一般要重点检查一下防火墙(windows 自带和防火墙软件)的安全策略以及网络安全策略。

6. 查看agent 的状态

主机和从机连接成功之后,可以在从机上查看agent 的状态。在任务栏右下角有个云朵样的tray 图标,双击打开后可以看到该服务当前服务的主机和当前状态。

例如,下图中服务于DELLD530的agent 正在运行一个虚拟用户,ecom ‐y12则没有运行任何用户。

细心的同学还可以看出,一个load generator 机器可以同时开多个agent 进程服务于不同的主机(controller 所在机器)哦。

b u

c e p h a l

u s

7. 结果收集

测试完成后,测试结果收集的进度窗口会弹出来,可以看到当前的收集状态和details 。

下面的操作就和正常的测试没什么区别了,去分析你的结果吧。

b u c

e p h a l

u s

3. 集群部署时常见错误与排除步骤

由于防火墙和各种网络安全措施的存在,在使用集群测试时最常见的错误就是网络通信的错误。表现出来就是loadrunner 的主控机不能建立和各从机的连接。在主控机上会收到如下错误:

Error: Process "lr_bridge.exe" was not created on remote host "172.12.125.186". Reason: communication error. Make sure the Agent process or service is running on the remote machine..

[MsgId: MERR ‐29987]

针对网络通信错误的问题原因排查,通常步骤如下: 1. 使用PING 命令,让主控机和从机互PING 。在服务器允许PING 命令的情况下,如果PING

不通,请确认网络规则和安全策略对两台机器的通信做了哪些限制。 2. 安全条件允许的情况下,请关闭controller 和agent 之间的防火墙或更改防火墙策略,允

许两者的通信。

3. 在agent 机器上查看54345端口是否处于监听状态,这个端口是agent 的服务端口。(可

以使用netstat –na 来查看)。如果服务没有启动,请启动服务。

4. 查看loadrunner generator 是进程方式还是service 方式运行,如果存在问题,可以试着

切换一下运行方式,或许可以解决问题。

4. 小实验

使用集群的方法运行一下以下一段C 语言脚本,检查test.txt 文件的内容,看看结果如

何。

Action(){

int id, scid,filedes; char *vuser_group;

char * my_host; if((filedes = fopen("c:\\test.txt", "wb")) == NULL)

{

lr_output_message("Open File Failed!"); return ‐1;

}

lr_whoami(&id, &vuser_group, &scid); my_host = lr_get_host_name( );

lr_message( "Host name: %s, Group: %s, vuser id: %d, scenario id %d",my_host, vuser_group, id, scid); fprintf(filedes,"Host name: %s,Group: %s, vuser id: %d, scenario id %d",my_host,vuser_group, id, scid); fclose(filedes); return 0; }

相关文档
最新文档