Jmeter分布式测试(5.0版本)
在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能.本文的master在window或者mac上,slave在Linux服务器上.
Jmeter分布式执行原理:
> 1. Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
> 2. 执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。
> 3. 执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
执行机(slave)配置:(LINUX服务器上)
- slave机上需要安装Jmeter,注意jmeter版本必须保持一致。
- 修改在bin目录下配置文件,关闭ssl认证 jmeter.properties,server.rmi.ssl.disable=true
- 启动bin目录下的 jmeter-server -Djava.rmi.server.hostname=yourhost
调度机(master)配置:
1:脚本:简单的一个访问脚本:
2:找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及自定义的端口(默认端口为1099,可以不写):
remote_hosts=10.13.223.202:1099,10.13.225.12:1099# 多台slave之前用","隔开,
jmeter.properties,server.rmi.ssl.disable=true # 关闭ssl
3:打开Jmeter,选择运行,有运程启动、运程全部启动两个选项:
4:在slave机器中的 bin/jmeter.log中可以看到日志记录
自定义端口
在slave机的Jmeter的bin目录下,找到jmeter.properties文件,修改如下两 个配置项,比如我这里修改为1888:相应的master配置做修改重启
server_port=1888
server.rmi.localport=1888
其它说明
- 调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。
- 、参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。
- 每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题.