JMeter联机远程并发压力测试

 JMeter是java应用,对于CPU和内存的消耗比较大,所以,当需要模拟大量并发用户数时,使用1台电脑是无法承受的,经常会引起Java内存溢出错误。为了让JMeter工具提供更大的负载能力,我们可以使用多台电脑联机同时产生负载。


 实现远程联机,首先我们需要选出一台JMeter控制机(Master)来控制远程的多台负载机(Slave)从而产生负载。控制机与远程负载机的通信是通过RMI方式来完成的。下面来说说具体如何设置:

1、负载机 运行jmeter-server启动Agent:
 在所有负载机的%JMETER_HOME%\bin目录下找到 jmeter-server(windows是.bat文件), 运行jmeter-server来启动Agent, Agent程序是由ApacheJMeter.jar中的程序来实现的。


2、 设置JMeter控制机的remote_hosts:

 打开控制机%JMETER_HOME%\bin目录下的jmeter.properties文件,搜索"remote_hosts"关键字,可以找到如下内容:

#---------------------------------------------------------------------------
# Remote hosts and RMI configuration
#---------------------------------------------------------------------------

# Remote Hosts - comma delimited 
remote_hosts=127.0.0.1,10.15.22.58
#remote_hosts=localhost:1099,localhost:2010

# RMI port to be used by the server (must start rmiregistry with same port)
#server_port=1099

在“remote_hosts=”后面加上远程JMeter负载机的IP即可,多个机器的IP用逗号分隔。旧版本的JMeter在进行远程通信时要指定端口,当前我们用的3.3已经不需要再指定端口了(2.11就不需要了,到底从哪个版本开始不需要的我没有查证),JMeter控制机会自动探测,只要先启动远程负载机上的Agent,控制机开始运行测试计划时就会自动连接。

 控制机是控制负载机产生负载的,本身不运行脚本,并没有负载机的功能,但是如果控制机启动了Agent也可以同时作为负载机。上面的例子中,我们则是把127.0.0.1即控制机所在的机器本身和10.15.22.58两台机器都作为了远程负载机。

 如果你之前已经打开了JMeter,那么修改jmeter.properties文件需要重启JMeter才可以生效。


3、控制机执行测试计划:

 控制机启动JMeter,点击远程全部启动按钮,即可实现多台负载机同时运行的效果。


需要注意的是:

1、调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。

2、参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。

3、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。


至此,我们可以结束多个人坐在多台负载机面前,一个人喊开始,大家同时启动JMeter的时代了~




你可能感兴趣的:(测试)