01 背景
在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持4000并发),单台压测机的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能
02 原理
Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。
执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
03 Windows操作
slave机上需要安装JMeter并添加环境变量
修改slave机Jmeter的bin目录下jmeter.properties文件,修改如下两个配置项,比如我这里修改为1099:
启动bin目录下的:jmeter-server.bat
多台slave时,重复1~2步骤即可
在master机器上找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及端口(端口可自定义),多台slave之间用","隔开,我这配置了2台:
打开Jmeter,选好脚本及设置运行场景,选择远程全部启动(也可选择远程启动某一台slave)
04 Linux操作
1、 Linux系统中安装JMeter,并配置好JMeter环境变量
2、 在slave机上修改jmeter.properties中的端口,参考Windows下修改方法:
比如我修改为1099:
3、 开启执行脚本机器上的server服务,bin/jmeter-server
-
[root@gd-largetest-stress-102-15 bin]# ./jmeter-server
-
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
-
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
-
Using local port: 1099
-
Created remote object: UnicastServerRef [liveRef: [endpoint:[10.98.102.15:1099](local),objID:[-43550fae:15e7a5a6422:-7fff, -7419700032143407872]]]
4、 在master上修改bin/jmeter.properties,添加从机的IP及端口(使用-r启动所有从机)1099是默认的rmi通信端口
5、 在控制机执行分布式命令
[root@gd-xwtest-yc-102-19 bin]# jmeter -n -t ../linux.jmx -R 10.98.102.15:1099 -l ../result.jtl//指定从机IP [root@gd-xwtest-yc-102-19 bin]# ./jmeter -n -t ../linux.jmx -r -l ../linux.jtl//启动所有从机执行脚本
05 其它说明
1、调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。
2、参数文件:如果使用csv等进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。
3、如果在linux下用命令执行分布式测试时要传线程数、执行时间或循环次数等参数时,需使用-G参数,而不是-J,这个是踩坑过来的经验,执行命令如下
[root@gd-xwtest-yc-102-19 bin]# ./jmeter -n -t ../linux.jmx -r -l ../linux.jtl -Gusers=100 -Gtimes=900
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。