首页 > 代码库 > Jmeter压力测试环境准备

Jmeter压力测试环境准备

Jmeter性能监控

  1. 配置好测试机器上的jmeter环境:http://jmeter-plugins.org/downloads/all/ 网站下载两个东西: JMeterPlugins-Standard-1.1.3.zip ServerAgent-2.2.1.zip
  2. Standard的zip包解压缩之后,将JMeterPlugins-Standard.jar 放在XXX\Apache\jmeter\lib\ext下,重启jmeter就可以看到在 线程组右键的监听器中可以看到增加了很多内容,在现有的项目中增加jp@gc - PerfMon Metrics Collector,作为监控服务器端的数据。
  3. 增加了jp@gc - PerfMon Metrics Collector之后,在其中Add Row,增加需要监控的数据信息,比如Cpu,Memory,Disks/IO,TCP等之类的信息,端口默认为4444。
  4. 服务器端配置,解压缩ServerAgent.zip包,放到服务器上:
  • Linux:CD命令到该文件夹下,输入命令./XXXXXX/startAgent.sh。注意,如果客户端配置的不是4444端口,则需要启动客户端设置的端口,命令为./startAgent.sh --udp-port 0 --tcp-port Xxxx,当然Xxxx为设定好的端口号。
  • Windows:,双击startAgent.bat即可,启动的是默认端口4444.

  5. 在测试机器上,点击启动就可以开始接口的测试和压力测试工作了,在选择的jp@gc - PerfMon Metrics Collector可以看到来自服务器的性能信息。

Jmeter分布式部署

使用多台机器产生负载的操作步骤如下:

  1. 在所有期望运行jmeter作为 负载生成器的机器上安装jmeter, 并确定其中一台机器作为 controller ,其他的的机器作为agent 。
  2. 在controller机器的jmeter的%JMeter_home%/bin目录下,找到jmeter.properties 文件,编辑该文件:

     查找:remote_hosts=127.0.0.1,修改为:remote_hosts=10.8.39.114:1099,10.8.33.181:1099,localhost:1099

  这里要特别注意端口后,有些资料说明端口1644为jmeter的controller 和agent 之间进行通信的默认RMI端口号,但是在测试时发现,设置为1644运行不成功,改成1099后运行通过。另外还要留意agent的机子是否开启了防火墙等。

  3. 运行所有 agent 机器上的jmeter-server 文件

    4. 启动controller 机子上的jmeter应用jmeter.bat,选择菜单“Run”--->“Remote Start”(“运行”--->“远程启动”),来分别启动agent ,也可以直接选择“Remote Start All”(“远程全部启动”)来将所有的agent启动。当

远程访问时,会看到控制台上打印出一行:Starting the test on host [ip]:1099 @....,远程执行结束,会打印一行:Finished the test on host [ip]:1099 @...。


需要注意的点:

1)Jmeter分布式控制过程中,各个Agent启动的线程数等于线程组中的配置,不是均分线程组中的配置,每个Agent所单独测试的线程数都是你在Controller上配置的线程数,也就是说我在controller上的线程数为100,立即

执行,循环一次,那么我的部署就会有同事触发300(100X3)的线程数,立即执行,执行一次。而不是三台机器共同分担100个线程。


2)在contrller机器上想要运行agent的时候,需要先执行jmeter-server 文件,再执行jmeter.bat


3)配置的时候保证机器的防火墙都处于关闭状态。

参考资料:

性能监控插件:
http://www.tuicool.com/articles/RbAN3ea
性能监控介绍:
http://blog.csdn.net/defonds/article/details/41650813

Jmeter压力测试环境准备