Jmeter分布式测试环境中有两个角色:Master 和 Slaves
Master节点:向参与的Slaves节点发送测试脚本,并聚合Agent节点的执行结果。
Slaves节点:接收并执行Master节点发送过来的测试脚本,并将执行结果返回给Master。
为什么要使用docker?
如果要分布式联动每台主机,就要求每台主机都要有Jmeter环境(JDK + JMeter)
如果利用docker就可以通过docker管理 Jmeter环境,简单的拉取镜像,启动容器即可。
进一步讲,利用k8s、云服务可以无限的扩容Jmeter试压机,理论上多少的并发用户都可以模拟。
1、准备工作
JDK:启动 Jmeter 工具需要
$ brew install openjdk@11
Jmeter:编写Jmeter脚本
编写一个简单的脚本。
docker:通过doker创建容器。
$ docker pull runcare/jmeter-master
$ docker pull runcare/jmeter-slave
查看docker镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
runcare/jmeter-master latest e052a8cd8680 3 years ago 326MB
runcare/jmeter-slave latest 05c7ba96d97d 3 years ago 326MB
请记住 jmeter-master 的镜像ID e052a8cd8680,后面会用到。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:1150305204【暗号:csdn999】
2、分布式压测使用
启动 slave 节点。
假设有两台主机,可以启动两个slave。
$ docker run -it -d --name slave01 runcare/jmeter-slave
$ docker run -it -d --name slave02 runcare/jmeter-slave
查看启动的容器
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b270636a7741 runcare/jmeter-slave "/bin/sh -c 'jmeter-…" 43 seconds ago Up 42 seconds 1099/tcp, 60001/tcp slave01
2584c7fef5f8 runcare/jmeter-slave "/bin/sh -c 'jmeter-…" 52 seconds ago Up 50 seconds 1099/tcp, 60001/tcp slave02
查看两个slave 的IP 地址
$ docker inspect -f '{{ .Name }} => {{ .NetworkSettings.IPAddress }}' $(docker ps -q)
/slave01 => 172.17.0.3
/slave02 => 172.17.0.2
/k8s_nginx_nginx-deployment1-fc7586d97-jvjvk_nginx_4379ed7f-b0be-4f9f-a0a9-4a5fd7b45b38_1 =>
/k8s_nginx_nginx-deployment1-fc7586d97-bztbh_nginx_6968e6b1-6689-4f1a-a9ea-04532577841c_1 =>
发送压测脚本到 slave
$ result=`date +"%Y%m%d%H%M%S"` && docker run --rm -v /Users/fnngj/zhpro/script:/data e052a8cd8680 jmeter -n -t /data/baidu_script.jmx -l /data/$result.jtl -j /data/$result.log -e -o /data/$result -R 172.17.0.2,172.17.0.3
参数说明:
result=date +"%Y%m%d%H%M%S"`: 指定测试结果的名称,以当前日期时间命名。
/Users/fnngj/zhpro/script : 压测脚本的目录,测试结果也会存放到该目录下。
baidu_script.jmx : 压测脚本的名称,存放于 /Users/fnngj/zhpro/script目录下。
e052a8cd8680 : jmeter-master 的镜像ID。
172.17.0.2,172.17.0.3 :两台 slave 的IP 地址。
3、测试结果
执行完的目录
$ pwd
/Users/fnngj/zhpro/script
$ ls
20230707005328 20230707005328.jtl 20230707005328.log baidu_script.jmx
查看报告
进入20230707005328 目录,点击 index.html 文件,可以看到压测的结果。
作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。