微信号:grzlwx

介绍:光荣之路官方资讯

利用Jmeter进行分布式性能测试

2016-02-21 21:59 光荣之路

吴老的《selenium webdriver 实战宝典》出版了!

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://chenmg.blog.51cto.com/3039876/1730456  

  老大交代了个接口性能测试的小任务,本来呢他提议用LR,但我对这么大体积的玩意儿真不待见,所以就倒腾起JMeter。

具体任务内容就不多说了,基本要求是有1200的并发。但是我们发现JMeter运行800个线程左右就顶不上去了,基本运行一会就卡死。百度之(不以用百度为耻),貌似可以用JMeter分布式测试来达成目的,它所谓的分布式架构,其实也就是有一个Master或者Controller,控制其余多台机器运行,即所谓的Agent或者Slave来分担JMeter自身的压力,由此扩展其性能,获取更大的并发用户数,只需要做一些配置,还有多态运行着Jmeter的物理机即可,配置如下:

  1.首先要在环境中所有设备上运行JMeter作为LoadGenerator,确定其中一台设备作为Controller,其他的设备作为Agent,主要务必要保证所有JMeter版本一致。然后运行所有Agent设备上的%JMeter_Home%/bin/JMeter-server.bat文件——此处假定使用两台设备192.168.0.1和192.168.0.2作为Agent,192.168.0.100是Controller(局域网通常是一个子网)。

  2.在Controller设备的%JMeter_Home%/bin/目录下找到JMeter.properties文件并打开,查找“remote_hosts=”这个字符串,我们会看到这样一行“remote_hosts=127.0.0.1”,这是默认的远程Agent设备IP。这里需要修改为“remote_hosts=192.168.0.1:1099,192.168.0.2:1099”,其中的1099为JMeter的Controller和Agent之间进行通讯的默认RMI端口号。

  3.保存以上文件,并重新启动Controller机器上的JMeter.bat打开JMeter,打开Run->RemoteStart菜单项,已经可以看到远程启动菜单下面有192.168.0.1,192.168.0.1两个IP地址。

  4、如果要让某个Agent执行,点击对应的IP地址就可以启动,如果要运行所有的Agent,可以点击Run菜单下的“Remote Run All”菜单。

这时候我们就遇到一个问题,例如我们要求性能是并发数1200,然后我们有两台Agent(此时Controller设备是不执行参与生成并发数据的),那我们写性能测试脚本的时候,是把并发数写成600,然后把脚本复制到每一台Agent设备?还是写一个并发数1200的脚本,在Controller上运行即可,Controller会自动分配性能压力?抑或者写一个并发数为600在Controller端运行,同样配置下发到每个Agent上呢?实践证明是最后一种情况,即每一个Agent上都运行相同并发数,总和是我们的性能需求即可,但是不需要手动复制脚本

 查找资料有些博文说有时候代理的机器太少,需要将Controller设备也当作Agent来满足性能要求,也就是说有一台设备需要兼任Controller和Agent。这种情况我没有实践过,理论上应该也是可以的,通信上做一个回环就可以了。此处备注上使用方法:

需要修改JMeter.properties文件,将Controller的IP地址写入。然后,需要打先打开Controller%JMeter_HOME%/bin目录下的jmeter-server.bat,然后再打开JMeter.bat,此时,进入Run->Remote Start菜单,可以看到Controller也作为远程机器进行运行。

参考:http://jmeter.apache.org/usermanual/remote-test.html
(作者:MorganChen 来源:http://chenmg.blog.51cto.com/3039876/1730456)

公益传播测试知识、技能与正能量!感谢作者!
分享测试生活,思考测试人生!欢迎投稿!
文章图片来自网络,如有侵权请见谅,请联系我们妥善处理。
735821166@qq.com

光荣之路
软件测试培训


官网:www.gloryroad.cn

微信公众号:gloryroadtrain

性能测试QQ群:415987441
测试招聘QQ群: 203715128
自动化3群QQ: 371211499

Python群:457561756


 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 java基础语法 名校毕业重要吗? Android开发技术周报 Issue#8 从 Android 静音看正确的查找 bug 的姿势 基于文本挖掘的量化投资应用