本文已参与「新人创作礼」活动,一起开启掘金创作之路。
我们在使用jemeter压测的时候一般一台服务器即可,但是有时候需要的并发量比较大,一个服务器的资源不足以支持,此时就需要多台机器组成集群共同负载。下面
jmeter分布式压力测试分为两种角色,一种是负责执行脚本为client,一种是向被测服务器发请求的机器为server。
注意:server端和client端服务器之间网络要互通
1.准备
准备3台Linux服务器,分别为client和server1(10.10.10.1)、server2(10.10.10.2)
注意:如果想在设置多个节点,只需要扩充server端即可
2.分别在3台机器下解压安装jmeter
jemeter安装比较简单只需要下载安装包,然后解压即可
3.编辑在client服务器的bin/jmeter.properties文件
vim bin/jmeter.properties
在remote_hosts配置上server端的ip,多个地址用逗号分隔
remote_hosts=10.10.10.1,10.10.10.2
4.分别启动在server端的jmeter服务
在bin目录下执行
./jmeter-server -Djava.rmi.server.hostname=10.10.10.1
./jmeter-server -Djava.rmi.server.hostname=10.10.10.2
5.启动client端上的jmeter服务
./jmeter -n -t login_140.jmx -r -l login_140.jtl -e -o login_140
Jmeter启动参数:
-n:非GUI模式执行jmeter
-t:执行测试脚本所在的位置及文件名,如果执行脚本放到的bin目录下,执行上面命令即可,如果压测脚本放到其他路径,需要写对应的路径,我们可以在自己电脑上先把压测脚本调试好后在上传到服务器执行。
-r:启动remote_hosts配置的所有server端服务,如果只是单节点的话就不需要执行-r
-e测试结束后生成测试报告
-o:指定测试报告的存放位置,不能重复,否则会执行失败,生成的是一个文件夹,我们可以吧这个文件夹导出到本地查看测试报告
6.启动的时候报错
Exception creating connection to: xxxxxx; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
Failed to configure xxxxxx
Configuring remote engine: xxxxx
Exception creating connection to:xxxxx; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
Failed to configure xxxxxx
修改 jmeter.properties文件
vim jmeter.properties
将server.rmi.ssl.disable设置为true即可
server.rmi.ssl.disable=true