背景
Jmeter是基于java程序运行的,在windows上使用Jmeter进行性能测试时,非常耗费客户机的CPU和内存,如果并发数稍微大一点(比如100、1000…并发),单台电脑的配置经常无法支持,很容易卡死,即使不卡死也会使电脑运行很慢,导致我们没办法进行其它操作。
通过Jmeter远程启动功能,把一台windows机器做为控制器,远程控制其它多个windows或linux压力机,从而把压力分散到多台机器上,实现高并发功能;并在master上收集测试结果。
jmeter分布式环境配置
1、分布式前提条件
主机和助攻机器jmeter要一致
jdk版本一致
jmeter脚本中csv文件要一致
jmeter的插件要一致
同一局域网,防火墙要开放端口
2、保证一致性方法:直接压缩本地jmeter包
3、尽量不要使用wifi。数据会被网络被阻塞。
助攻机器配置
1、本地的jmeter打包发送到助攻机器
1、修改jmeter.properties文件
2、#server_port=1099 修改成比如:6789
3、修改#server.rmi.port=1234,修改成 6789
4、#server.rmi.ssl.disable=false 改成true,同一个局域网,不使用认证证书。
5、启动助攻机器服务
1)windows环境下:
在jmeter的安装目录bin目录下,输入cmd,打开控制台,输入如下命令启动服务:
jmeter-server.bat -Djava.rmi.server.hostname=助攻机器的机器ip
2)linux环境下,在jmeter的bin目录下,运行如下命令:
./jmeter-server -Djava.rmi.server.hostname=助攻机器的机器i
6、检查防火墙
7、如果遇见这个证书失败的问题
windows:执行文件 create-rmi-keystore.bat
linux:执行 ./create-rmi-keystore.sh
主控机器配置
1、修改jmeter.propeties文件,remote_hosts填写助攻机器的ip和端口,如下:
remote_hosts=192.168.70.128:6789
2、去掉mi认证
3、mode=Standard,界面中可以看到结果
(三)运行
重启jmeter,运行–远程启动,就可以看到可以远程启动的助攻机。
如果使用cli模式远程启动所有机器
./jmeter -n -t script/性能测试.jmx -r -l test1/cli-20210410.jtl -e -o test1/resulthtm0410
启动远程机后,可以在本机看到结果
本身的机器也可以作为助攻机器启动
也可以同时启动所有的助攻机器