jmeter分布式测试
admin
2023-03-17 11:21:02
0次


作为一个纯 JAVA 的GUI应用,JMeter对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAVA内存溢出的错误。


不过,JMeter也可以像 LoadRunner 一样通过使用多台机器运行所谓的代理来分担负载产生器自身的压力,并借此来获取更大的并发用户数,我们只需手动配置一下即可。


1、在所有期望运行JMeter作为负载产生器的机器上安装JMeter,并确定其中一台机器作为控制器,其他的机器作为代理。下面示例中我们以windows服务器为控制器,另两台linux服务器作为代理。


然后运行所有代理机器上的JMeter-server.bat文件(linux服务器上运行Jmeter-server)


假定我们使用两台机器172.16.129.155和172.16.129.43作为代理。




2、在作为Controller控制的windows机器上的操作:


在Controller控制机器的JMeter安装目录下找到 bin 目录,找到 jmeter.properties 这个文件,使用记事本或者其他文字编辑工具打开它;



在打开的文件中查找“remote_hosts=”这个字符串,找到这样一行“remote_hosts=127.0.0.1”。其中的 127.0.0.1 表示运行JMeter代理的机器,把它修改为我们需要用到的slave代理机器的ip地址加默认端口号1099:这里需要修改为

remote_hosts=172.16.129.155:1099,172.16.129.43:1099(两台代理服务器之间用,隔开)


再把下面几项去掉前面的注释(#):


server_port=1099


client.rmi.localport=0


server.rmi.port=1234


server.rmi.localport=1099


然后保存文件。



在Controller控制机器的JMeter安装目录下找到 bin 目录,再找到 jmeter.bat 这个文件,使用记事本等其他文字编辑工具打开它;


新增set rmi_host=-Djava.rmi.server.hostname=本机ip(控制器ip)

修改

Set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%



然后保存。



3、在作为代理服务器linux服务器上的操作:


修改bin目录下的jmeter-server文件,


去掉#

RMI_HOST_DEF=-Djava.rmi.server.hostname=172.16.129.155

(避免了虚拟机中出现的两个ip的情况)


PS:

代理服务器中的hostname和/etc/hosts里面ip地址对应的hostname要一致


然后保存。



对要进行分布式测试代理机器上需要添加jmeter环境变量:


命令 vim /etc/profile

insert

在文档最后,添加:

export PATH="/jmeter/apache-jmeter-2.12/bin:$PATH"

esc : w q

保存,退出,然后运行:

#source /etc/profile

不报错则成功。


运行env命令查看全部环境变量,看jmeter环境是否安装成功。(或者输入jmeter -v命令)


(windows上相当于添加用户变量JMETER_HOME=d:\jmeter,系统变量中的path中添加d:\jmeter\bin。)


在bin目录下输入命令

chmod 777 jmeter-server

chmod 777 jmeter

防止权限禁止denied


4、确定代理服务器都可以ping到所需要测试的接口的机器,然后启用所有代理服务器上的jmeter-server


如图为成功启动代理服务器上的jmeter-server。

jmeter分布式测试


启动控制器机器上的JMeter,并进入启动 ->远程启动菜单项。就会看到我们刚才添加的两个代理的地址,选中即可运行,如果想同时启动所有代理,选择远程全部启动即可。

jmeter分布式测试


控制器上的jmeter会收到指示

jmeter分布式测试


代理机上开始测试和完成测试的指示

jmeter分布式测试


5、注意结果

JMeter远程启动测试中出现结果的响应数据为空,原因是:

分布式测试中,通过远程启动代理服务器,注重的而是高并发,默认查看结果树中的响应数据为空,只有错误信息会被报回。


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...