Jmeter 压测-利用Docker分布式压测

 Jmeter分布式测试环境中有两个角色:Master 和 Slaves

  1. Master节点:向参与的Slaves节点发送测试脚本,并聚合Agent节点的执行结果。

  2. Slaves节点:接收并执行Master节点发送过来的测试脚本,并将执行结果返回给Master。

为什么要使用docker?

如果要分布式联动每台主机,就要求每台主机都要有Jmeter环境(JDK + JMeter)

如果利用docker就可以通过docker管理 Jmeter环境,简单的拉取镜像,启动容器即可。

进一步讲,利用k8s、云服务可以无限的扩容Jmeter试压机,理论上多少的并发用户都可以模拟。

1、准备工作

JDK:启动 Jmeter 工具需要

$ brew install openjdk@11

Jmeter:编写Jmeter脚本

编写一个简单的脚本。

图片

docker:通过doker创建容器。

  1. $ docker pull runcare/jmeter-master

  2. $ docker pull runcare/jmeter-slave

查看docker镜像

  1. $ docker images

  2. REPOSITORY TAG IMAGE ID CREATED SIZE

  3. runcare/jmeter-master latest e052a8cd8680 3 years ago 326MB

  4. runcare/jmeter-slave latest 05c7ba96d97d 3 years ago 326MB

请记住 jmeter-master 的镜像ID e052a8cd8680,后面会用到。

2、分布式压测使用

启动 slave 节点。

假设有两台主机,可以启动两个slave。

  1. $ docker run -it -d --name slave01 runcare/jmeter-slave

  2. $ docker run -it -d --name slave02 runcare/jmeter-slave

查看启动的容器​​​​​​​

  1. $ docker ps

  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

  3. b270636a7741 runcare/jmeter-slave "/bin/sh -c 'jmeter-…" 43 seconds ago Up 42 seconds 1099/tcp, 60001/tcp slave01

  4. 2584c7fef5f8 runcare/jmeter-slave "/bin/sh -c 'jmeter-…" 52 seconds ago Up 50 seconds 1099/tcp, 60001/tcp slave02

查看两个slave 的IP 地址​​​​​​​

  1. $ docker inspect -f '{{ .Name }} => {{ .NetworkSettings.IPAddress }}' $(docker ps -q)

  2. /slave01 => 172.17.0.3

  3. /slave02 => 172.17.0.2

  4. /k8s_nginx_nginx-deployment1-fc7586d97-jvjvk_nginx_4379ed7f-b0be-4f9f-a0a9-4a5fd7b45b38_1 =>

  5. /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

AI写代码

参数说明:​​​​​​​

  1. result=date +"%Y%m%d%H%M%S"`: 指定测试结果的名称,以当前日期时间命名。

  2. /Users/fnngj/zhpro/script : 压测脚本的目录,测试结果也会存放到该目录下。

  3. baidu_script.jmx : 压测脚本的名称,存放于 /Users/fnngj/zhpro/script目录下。

  4. e052a8cd8680 : jmeter-master 的镜像ID。

  5. 172.17.0.2,172.17.0.3 :两台 slave 的IP 地址。

3、测试结果

执行完的目录​​​​​​​

  1. $ pwd

  2. /Users/fnngj/zhpro/script

  3. $ ls

  4. 20230707005328 20230707005328.jtl 20230707005328.log baidu_script.jmx

查看报告

进入20230707005328 目录,点击 index.html 文件,可以看到压测的结果。

图片

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值