# py-jmeter-docker **Repository Path**: pytests/py-jmeter-docker ## Basic Information - **Project Name**: py-jmeter-docker - **Description**: jmeter-docker压测 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-19 - **Last Updated**: 2025-01-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # py-jmeter-docker ## 介绍 使用docker运行jmeter进行测试,可以实现在一台机器上创建出任意多个助攻机,从而节省性能测试时助攻机的硬件成本。 ## 软件架构 使用Dockerfile,构建docker-jmeter镜像 ## 安装教程 1. 在机器上安装docker 2. 下载代码,并上传到机器中 ## 使用说明 ### 注意:以下有四种容器,请根据实际需要使用: ### 1、构建基础版jmeter容器 1、下载【base-jmeter-docker】文件夹中所有文件 2、构建本地镜像: `sh build.sh` 3、使用构建的镜像,运行jmx文件 ```sh sh jmeter.sh -n -t xxxx.jmx -l JTL_`date +%Y%m%d_%H%M%S`.jtl -j jmeter.log -e -o report_`date +%Y%m%d_%H%M%S` ``` ##### 默认jmeter版本为5.6.3,如果想要更改为其他版本,依次修改:Dockerfile、build.sh、run.sh文件中的版本号5.6.3 ##### 请不要指定为低于5的版本,否则生成的html报告可能有问题 ### 2、构建带有jpgc插件的容器 1、下载【jpgc-jmeter-docker】文件夹中所有文件 2、构建本地镜像:`sh build.sh` 3、使用构建的镜像,运行jmx文件 ```sh sh jmeter.sh -n -t xxxx.jmx -l JTL_`date +%Y%m%d_%H%M%S`.jtl -j jmeter.log -e -o report_`date +%Y%m%d_%H%M%S` ``` ##### 默认jmeter版本为5.6.3,如果想要更改为其他版本,依次修改:Dockerfile、build.sh、run.sh文件中的版本号5.6.3 ##### 请不要指定为低于5的版本,否则生成的html报告可能有问题 ### 3、一台机器上构建多个jmeter助攻机容器 1、下载【slave-jmeter-docker】文件夹中所有文件 2、构建本地slave镜像:`sh build.sh` 3、创建slave容器 ##### 重复执行时,修改容器名称name值可创建多个slave容器 ```sh docker run -itd --name slave1 py/jmeter-slave:5.6.3 server ``` ##### 默认jmeter版本为5.6.3,如果想要更改为其他版本,依次修改:Dockerfile、build.sh文件中的版本号5.6.3 ##### 请不要指定为低于5的版本,否则生成的html报告可能有问题 **注意:** + 该镜像构建成功后,会带有jpgc插件,可以执行使用jpgc插件编写的脚本 + 该镜像还对jmeter生产的html报告进行了改造,生产的报告将转换为中文 ### 4、构建jmeter主控机容器 1、下载【master-jmeter-docker】文件夹中所有文件 2、构建本地master镜像: `sh build.sh` 3、修改run-master.sh文件中 `--link`的数量和名称 > 冒号前面为slave容器名称,冒号后面为自定义别名 4、使用master容器执行分布式脚本 ```sh sh jmeter-master.sh -n -R 助攻机别名(多个时用逗号分隔) -t xxxx.jmx -l JTL_`date +%Y%m%d_%H%M%S`.jtl -j jmeter.log -e -o report_`date +%Y%m%d_%H%M%S` ``` ##### 默认jmeter版本为5.6.3,如果想要更改为其他版本,依次修改:Dockerfile、build.sh文件中的版本号5.6.3 ##### 请不要指定为低于5的版本,否则生成的html报告可能有问题 **注意:** + 该镜像构建成功后,会带有jpgc插件,可以执行使用jpgc插件编写的脚本 + 该镜像还对jmeter生产的html报告进行了改造,生产的报告将转换为中文 + jmeter分布式,主控和助攻机的jmeter必须一致,所以master和slave的jmeter版本务必一致