当前位置: 首页 > 科技观察

说说JMeter分布式压测部署

时间:2023-03-23 01:29:08 科技观察

使用JMeter进行性能测试。当单机无法满足性能压力测试的负载需求,或者单机网络带宽存在瓶颈时,可以采用分布式部署方案来解决这些问题。在JMeter分布式部署方案中,需要一个节点作为控制节点(Master),其余节点作为执行机(Slave)。控制节点负责向执行机发送指令并显示结果,执行机负责产生负载并将结果返回给控制节点。JMeter分布式环境部署实例环境规划:Controller:Windows系统,Master节点,ip=192.168.2.5;执行器:CentOS系统,Slave节点,ip=192.168.2.15;1、前提Master和Slave使用相同的JMeter版本;Master和Slave使用相同的JAVA版本;Master和Slave节点:创建一个有效的keystore文件或者禁用ssl,这里直接选择禁用ssl。编辑JMETER_HOME/bin/jmeter.properties以设置server.rmi.ssl.disable=true。如果需要开启ssl,请参考章节13.1在ApacheJMeter中设置SSL-用户手册:远程(分布式)测试进行配置。2、执行节点(Slave)配置设置rmi.server.hostname,编辑JMETER_HOME/bin/jmeter-server,取消MI_HOST_DEF项默认注释,修改hostname为本机IP地址MI_HOST_DEF=-Djava.rmi.server。hostname=192.168.2.15建议设置此项,否则运行jmeter-server时可能会出现如下错误:.ExecuteJMETER_HOME/bin/jmeter-server启用服务,如果打印如下信息,则启动成功3.控制节点(Master)配置指定的Slave节点,编辑JMETER_HOME/bin/jmeter.properties,设置remote_hosts到Slave节点的IP地址,如果Slave节点很多,多个IP地址用逗号隔开;remote_hosts=192.168.2.15remote_hosts不需要指定端口号,JMeter会自动检测多网卡的情况,如果Master节点有多网卡(比如安装虚拟机,会有一个网卡,则例如在windows机器上安装CentOS虚拟机作为Slave,就是多网卡的情况),JMeter会选择任意一个网卡尝试与Slave节点建立连接,如果选错了网卡,将不会建立连接。解决多网卡问题需要明确指定IP,编辑JMETER_HOME/bin/jmeter.bat,在下图标注的位置添加如下两条语句,其中server.hostname设置为IP可以连接到从站的地址;setrmi_host=-Djava.rmi.server.hostname=192.168.2.5setARGS=%DUMP%%HEAP%%NEW%%SURVIVOR%%TENURING%%PERM%%DDRAW%%rmi_host%4.远程测试调试后第3步是set,重启JMeter,打开需要压测的脚本文件,在Run/RemoteStart菜单中出现Slave节点的IP,点击Slave节点的IP地址,即可发起远程节点的测试。默认情况下,远程节点测试可以通过汇总报告和汇总报告查看调测结果。查看结果树不会显示响应数据。主要原因是Master节点可以减少数据传输的开销。如果需要,可以通过取消注释JMETER_HOME/bin/jmeter.propertiesfilemode=Standard来达到目的。Slave节点也会打印响应连接信息。JMeter分布式压测执行正式执行压测时,JMeter官方推荐以非GUI模式运行,可以节省一些运行资源。执行如下命令启动压测jmeter-n-t分布式测试实例.jmx-lreport_01.jtl-e-oreport_01参数说明:-n表示非GUI模式-t表示指定的脚本文件,可以指定为relative或者绝对路径方式-l表示指定结果记录文件,文件格式为.jtl-e表示测试完成后生成报告-o指定生成报告的目录。压测过程中会不断打印摘要信息,可以看到执行了多长时间,响应时间,错误率,线程数等,压测结束后会在目录下通过参数指定生成html格式的测试报告

最新推荐
猜你喜欢