Jmeter分布式测试
Jmeter分布式测试
本文为原创,转载请注明出处:https://www.cnblogs.com/supiaopiao/p/10856821.html
一、为什么要用分布式测试?
在使用Jmeter进行性能测试时,如果并发数比较大(比如项目需要支持1000并发),单台主机的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。
二、Jmeter分布式执行原理:
Jmeter分布式测试时,本地jmeter作为控制机(master),其它机器做为执行机(slave)。执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行。执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
三、配置:
注意:windows和linux上的jmeter的版本一致会比较好,将windows和linux上的防火墙都关闭。
(一)控制机(master)配置
Windows系统上,将下载下来的jmeter解压后,修改apache-jmeter-5.1.1\bin目录里的jmeter.properties文件,在260行新增remote_hosts配置,配置里配置的是两台slave主机的ip和slave主机里安装的jmeter的端口号。
(二)执行机(slave)配置
1. 上传jmeter到slave服务器
因为jmeter需要有jdk的支持,所以将jdk和jmeter都上传到slave主机的/software文件夹下。
2. 解压jdk和jmeter后,配置环境变量
[root@localhost ~]# vim /etc/profile
#java环境变量 export JAVA_HOME=/software/jdk1.8.0_131/ export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar #jmeter环境变量 export JMETER_HOME=/software/apache-jmeter-5.1.1 export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH export PATH=$JMETER_HOME/bin/:$PATH |
3. 修改jmeter部分配置
打开/ apache-jmeter-5.1.1/bin目录
(1)修改jmeter.properties文件
remote_hosts=192.168.0.132 #ip是这台slave主机的ip server_port=1098 #端口号是jmeter自定义的端口号,默认是1099 |
备注:该remote_hosts和server_port配置需要和本地master的jmeter.properties文件里新增的260行配置一致。
server.rmi.localport=1098 |
server.rmi.ssl.disable = true #否则远程执行,会报一个ssl错误 |
#防止响应回来的数据有中文乱码
jmeter.save.saveservice.response_data=true jmeter.save.saveservice.samplerData=true |
(2)修改jmeter-server文件
配置这台slave主机的ip
RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.0.132
4. 启动各个slave上的jmeter
[root@localhost bin]# jmeter-server
(三)配置多台slave只需要参照文档(二)进行配置即可。
四、执行测试
本地远程连接slave主机上的jmeter,并执行脚本(有两种启动方式)
例如:本地jmeter脚本是往数据库里添加随机数据,循环20次。
远程连接两台服务器上的jmeter执行后,数据库里就会有40条数据,并且结果树里也会收集到所有slave主机上的jmeter运行结果信息,到此一个简单的分布式测试就完成了。