一、分布式压测原理
Jemter分布式压测是选择其中一台作为调度机(master),其他机器作为执行机(slave);当然一台机器也可以既做调度机,也做执行机。
调度机执行脚本的时候,master将会jmx脚本分发到slave上,slave拿到脚本后以非GUI的形式开始执行。
slave执行完毕后将结果回传给master,并由master进行结果的汇总。
二、环境搭建
2.1环境准备
master:Windows10,JMeter版本5.1.1,jdk版本1.8;
slave:2台linux虚拟机(CentOS7),JMeter版本与master一致,5.1.1,jdk版本1.8;
总结:slave上JDK和Jmeter版本尽量和master上保持一致。
2.2slave机器配置
关闭各slave机器上防火墙
systemctlstopfiwalld
关闭各slave机器上SSL配置。RMI的默认传输机制将使用SSL,SSL需要密钥和证书才能工作。解决方法有两种:一种是启动bin目录下的cate-rmi-keysto脚本,另一种是不使用SSL。这里采用第二种。
修改bin目录下的jmeter.properties文件vimjmeter.propertiesserver.rmi.ssl.disable=true
进入bin目录下编辑文件
将注释去掉且值改为true
设置服务器主机IP
编辑bin目录下的jmeter-server文件,取消RMI_HOST_DEF的注释项,固定设置当前Linux主机查询到的IP。
进入bin目录下编辑文件
取消注释且修改IP
启动Jemter服务
启动bin目录下的jmeter-server文件
2.3master机器配置
修改配置文件
打开bin目录下的jmeter.properties文件,修改mote_hosts的值。修改为两台salve机器的ip及端口。
三、脚本及执行
3.1参数化问题
如果脚本中使用到参数化文件,需要将CSV参数化文件上传到各个salve机器上,且路径要相同,然后再脚本CSV文件路径这里配置对应的参数。
3.2GUI启动测试
运行-远程启动。查看配置的salve机器IP
运行-远程启动所有。启动分布式压测
3.3命令行启动测试
上面是使用GUI图形上去启动slave机器去运行压测,也可以直接通过命令行启动压测并生成报告。
jmeter-n-tG:\Test\1.1login_linux.jmx-lG:\Test\sult\1.jtl-e-oG:\Test\html\1-R..30.:,..30.:
jmeter-n-tjmx脚本路径-ljtl文件路径-e-o报告路径-Rsalve的IP