【如何用Docker创建Jmeter容器做性能测试】

本文介绍了如何在Linux环境中利用Docker部署和管理JMeter,包括创建普通JMeter容器、带插件的JMeter容器,以及设置分布式JMeter测试。步骤详细说明了构建镜像、执行JMX脚本和配置分布式测试的过程。强调了版本要求和报告生成的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、准备工作

选择一个Linux机器并且安装Docker,然后去Gitee上去搜索nmb-jmeter-docker,将这个项目的所有代码git下来上传到Linux系统的 /opt路径下。

二、使用Docker创建jmeter容器(普通jmeter)

2.1:进入 base-jmeter-docker 文件夹
2.2:执行 sh build.sh , 构建本地 jmeter 镜像
2.3:构建成功之后,把用 jmeter 创建的 jmx 脚本文件,上传到 Linux 机器的 base-jmeter-docker 路径下,执行以下代码
sh jmeter.sh -n -t YouJMX_file \ -l JTL_date +%Y%m%d_%H%M%S.jtl \ -j jmeter.log \ -e-oReport_date+%Y%m%d_%H%M%S

也可以把你的 jmx 文件上传到其他路径,在运行 jmeter.sh 命令时,指定 jmx 文件路径
这个命令和 jmeter 的 CLI 模式命令是一样的,cli 的相关参数也是可以使用。

三、创建带插件的jmeter容器

3.1:下载【jpgc-jmeter-docker】文件夹中所有文件
3.2:构建本地镜像: sh build.sh
3.3:使用构建的镜像,运行 jmx 文件
sh jmeter.sh -n -t YouJMX_file \ -l YouJTL_date +%Y%m%d_%H%M%S.jtl \ -j jmeter.log \ -e -o report_date +%Y%m%d_%H%M%S

默认 jmeter 版本为 5.1.1。如果想要更改为其他版本,依次修改:Dockerfile、build.sh、jmeter.sh 文件中的版本号 5.1.1。
注意:请不要指定为低于 5 的版本,低于 5,生产的 HTML 报告可能有问题
这个版本,改造了 HTML 报告和引入了 jpgc 插件,如果还想要引入其他插件,可以将需要的打包压缩到 JmeterPlugins-jpgc.zip 文件包中。然后,执行 sh build.sh 构建新的镜像。

四、创建分布式 jmeter 容器(slave)

jmeter 不能产生足够数量的并发用户数,需要使用分布式来创建足够数量的并发用户数,现实中我们可能又不能获得足够数量的电脑,所以及可以使用 docker 创建 jmeter 的助攻服务。 这样就能实现,理论上一台电脑上创建出任意多个 jmeter 助攻服务,产生出足够量的并发用户数。

4.1:下载【slave-jmeter-docker】文件夹中所有文件
4.2:构建本地 slave 镜像:sh build.sh
4.3:创建 slave 容器

docker run -itd --name slave1 nmb/jmeter-slave:5.1.1 server#重复执行时,修改容器名称 name 值,则可创建多个 slave 容器

默认 jmeter 版本为 5.1.1,如果想要更改为其他版本,依次修改:Dockerfile、build.sh 文件中的版本号 5.1.1。

注意:
1、该镜像中,加入 jpgc 插件,更改了 HTML 报告模板
2、请不要指定为低于 5 的版本,低于 5,生产的 HTML 报告可能有问题
3、助攻服务端口 1099, 5000, 因为后面 master 用 link 连接容器,所以,可以不用映射端口。想要创建多个 slave 容器,只需要修改创建容器命令中的指定的容器名称。每个助攻服务的端口都是 1099 和 5000,如果直接映射到宿主机上,肯定会出现端口冲突的情况,所以,我们用 master 连接 link 每个 slave 容器,就不用担心端口冲突问题了。

五、创建分布式 jmeter 容器(master)

5.1:下载【master-jmeter-docker】文件夹中所有文件
5.2:构建本地 master 镜像:sh build.sh
5.3:修改 run-master.sh 文件中 --link 的数量和名称
冒号前面为 slave 容器名称,冒号后面为自定义别名

5.4:使用 master 容器执行分布式脚本

sh run-master.sh -n \ -R 助攻机别名(多个时用逗号分隔) \ -t YouJMXfile \ -l YouJTL_date +%Y%m%d_%H%M%S.jtl \ -j jmeter.log \ -e -o report_date +%Y%m%d_%H%M%S

注意:

  1. 该镜像构建成功后,会带有 jpgc 插件,可以执行使用 jpgc 插件编写的脚本
  2. 该镜像还对 jmeter 生产的 HTML 报告进行了改造,生产的报告将转换为中文
  3. jmeter 分布式,主控和助攻机的 jmeter 必须一致,所以,master 和 slave 的 jmeter 版本务必一致
Docker 可以帮助你在容器化环境中轻松地运行 Apache JMeter 进行性能测试。以下是创建一个 Docker 容器,用于 JMeter 发送接口请求并将结果通过 Kafka 发布的基本步骤: 1. **安装 DockerDocker Compose**: 确保你的系统上已经安装了 DockerDocker Compose。如果没有,可以从官网下载并安装。 2. **准备 JMeter Docker镜像**: 使用官方的 JMeter 镜像,例如 `jmeter/jmeter` 或者基于此的镜像添加额外配置。你可以从 Docker Hub 获取。 ```yaml version: '3' services: jmeter: image: jmeter/jmeter ports: - "8080:8080" ``` 3. **创建 Dockerfile (如果需要)**: 如果你想自定义 JMeter 配置,可以创建一个 Dockerfile 来构建镜像。例如,加入Kafka客户端的相关依赖和配置文件。 4. **JMeter 配置**: 在 JMeter 中设置脚本,包括连接到 Kafka 的配置。在 JMeter的 Test Plan 中添加“BeanShell PostProcessor”或者“JSR223 Sampler”,并编写代码来发送请求并通过 Kafka 发布数据。 5. **Docker-compose.yml 文件**: 编写 `docker-compose.yml` 文件,将上述服务定义整合在一起,同时指定 Kafka 服务的名称和配置。 ```yaml version: '3' services: jmeter: build: . # 如果有Dockerfile environment: KAFKA_BROKER_URL: "your.kafka.broker.url" KAFKA_TOPIC: "your_topic" # 指定Kafka主题 kafka: image: wurstmeister/kafka ports: - "9092:9092" ``` 6. **启动容器**: 在命令行里,使用 `docker-compose up` 启动容器。 7. **性能测试**: 访问 JMeter 的 UI(默认 http://localhost:8080),运行你的测试计划,并监控通过Kafka发布的消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值