一、普通的配置文件基本都能网上搜索资料,这里就简单记录:
a、jmeter.properties几处修改:1、remote_hosts=master压力机Ip;2、server_port,开启服务器端口,记得要一致,差不多都是默认1099,记得有时候排查问题,看端口是否占用,netstat -ntlp
|grep 1099;3、一般局域网内网压测,所以要开启:server.rmi.ssl.disable=true;这个里面的文件基本搞定。
b、修改jmeter-server文件,一般来说这个可以不用修改,RMI_HOST_DEF=-
Djava.rmi.server.hostname=本机IP。
c、然后各自启动jmeter-server,nohup即可。这个也是标准 nohup sh jmeter-server > nohup.out 2>&1 & 。补充,有时候jmeter-server服务有问题,快速kill,可以用 ps -ef | grep
jmeter-server | grep -v grep | cut -c 9-15 | xargs kill -s 9,然后在直接重启。
d、分布式压测,有csv文件,放在slave的bin目录最简单,如果有其他jar包,各自都需要有。
二、在配置的环境的时候,总有一些奇葩的问题:
1、每一台slave都应该执行相同的执行计划,一般情况master和slave最好分开,因为master需要给slave分发信息,也会接受slave回传的测试结果,所以master一般会消耗很大。master和slave上的
java和jmeter版本最好一直,要不然出现的问题让你死的心都有
2、分布式压测的时候,参数化数据一般情况应该真实,而jmeter不会给你分配不同的数据,这个时候建议准备不同的csv文件,或者代码控制分发
3、在进行断言的时候,如果你不是java高手,建议你不要写beanshell逻辑断言,保不准你的代码直接影响压测结果;再生成结果树的时候,一定要记得勾选仅记录错误日志。
4、首先要确保master和slave之间的通信是ok,方法是:ping一下对方的IP即可;如果不通,检查下网络是否在同一个局域网里。
5、4.0版本jmeter新增keystore,需要先设置 keystore 才能正常进行分布式测试,不然会报以下错误,说什么文件不存在。在 master的 JMETER_HOME/bin/ 路径,Windows 系统运行create-rmi-keystore.bat,Unix 系统(包含 Linux,macOS)运行create-rmi-keystore.sh。将rmi_keystore.jks复制到所有 Slave 的JMETER_HOME/bin/路径,即可。