在使用Jmeter进行性能测试时,如果并发数比较大(比如项目需要支持上万的并发量),单台PC的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。
根据目前PC的配置:4.00G内存,可以最多达到2000左右的并发数量。那么对于支持上万的并发量,一台PC是很难实现的。
Jmeter分布式执行原理
1 Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
2 执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。
3 执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
执行机(slave)配置
1 slave机上需要安装Jmeter,具体如何安装这里不详细介绍了。
2 添加环境变量:JMETER_HOME=D: \apache-jmeter-3.0,此处为你Jmeter的路径
3 启动bin目录下的:jmeter-server.bat,启动成功如下图:
4 上图上标红的IP和端口会在master里配置时用到。IP就是slave机器IP,端口默认是1099.
5 如果需要多台slave的话,那么重复1~4步骤就好。
调度机配置
1 找到Jmeter的bin目录下,Jmeter.properties 文件,修改如下配置,IP和Port是Slave机的IP以及自定义的端口(这里端口自定义为1000)
remote_hosts=192.168.xx.xx:1099,192.168.aa.bb:1099
多台slave之前使用 ‘, ‘ 隔开,我这里使用了2台,可以看到粗字体的是slave机子的IP和Port。
2 打开Jmeter,选择运行,再选择远程启动,可以看到:
4 选择远程启动192.168.aa.bb:1099
5 master结果,这里我只启动了192.168.aa.bb:1099
- 这一台slave,所以只有一个结果(线程数和循环次数都是1):
- salve控制台信息
6 选择全部启动,同时将salve机子上bin目录下的Jmeter-server.bat打开
设置线程数为2
- master结果,全部启动,我配置了2台slave,所以有4次执行结果:
就这样,根据上述的过程,已经实现了Jmeter的分布式测试。
其他说明
1 调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。
2 参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。
3 每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。
Jmeter学习告一段落,目前能够做基本的压力测试跑,但是更深更难的技术,需要各方面的配合与支持。
花了近一周时间,将web接口测试的环境基本能够搭建起来,抽出时间来更新接口测试相关的内容。
如果能够静下来专研,那么这是一件很有乐趣的事,尤其当问题解决的时候。
如果选择了技术,那么就得不停的学习各种新技术,知识总是更新太快。想起2013年自学了QTP测试工具,等到还真正将其应用到实际项目中,现在都快被淘汰了似的。
一个人专注起来,总会做到一定的成就的。这个成就的格局,就因人而异了。
别的大咖不知道是怎么做到心中的成就的,但是从研一开始看着一个本科毕业的小伙子的博客,到现在人家的公司做得有模有样了,还有一个户外团队小伙子们,他们的户外旅行公司也都风生水起做起来了。还有测试行业的虫师等,这些都是看着他们的博客,看着一步步走到越高的位置,在他们身上,都有一个共同的特点:专注。
下一步,可以做Andriod APP的自动化测试了,目前环境重新搭建了起来,还有一个个问题等待攻克。
Fighting~!
关于jmeter的一系列的使用以及接口测试自动化,最近总结了一份完备的文档,有需要的或者有需要交流jmeter的使用的,可以加v