本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

Testkube的分布式JMeter执行器(Distributed JMeter Executor)是JMeter执行器的扩展,能够通过创建从节点pod并在其中分配测试任务,以分布式模式运行JMeter测试。
执行器是封装在Docker容器中的程序,它接收基于OpenAPI的JSON格式文档(testube.Execution)作为输入,并返回JSON格式的输出流(testkube.ExecutorOutput),每条输出行均封装在该JSON中,类似结构化日志的设计理念。
本执行器在JMeter执行器的基础上扩展,除具备JMeter执行器的所有功能外,重点支持分布式测试模式,适用于需要大规模负载测试或复杂配置的场景。
继承JMeter执行器的全部功能,包括标准JMeter测试执行能力。
plugins目录定义测试所需插件。user.properties文件覆盖JMeter默认的user.properties配置。适用于需要通过分布式架构提升JMeter测试性能、模拟大规模用户负载的场景,尤其适合以下用户:
MASTER_OVERRIDE_JVM_ARGS / SLAVES_OVERRIDE_JVM_ARGS
用于覆盖JMeter主节点/从节点的默认内存选项。
示例:MASTER_OVERRIDE_JVM_ARGS=-Xmn256m -Xms512m -Xmx512m
SLAVES_COUNT
指定分布式JMeter测试所需的从节点pod数量。
示例:SLAVES_COUNT=3。若未提供或值为1,执行器将以独立模式运行测试。
MASTER_ADDITIONAL_JVM_ARGS / SLAVES_ADDITIONAL_JVM_ARGS
为主节点/从节点添加额外JVM参数。
示例:MASTER_ADDITIONAL_JVM_ARGS=-Xmx1024m -Xms512m -XX:MaxMetaspaceSize=256m
SLAVES_ADDITIONAL_JMETER_ARGS
为JMeter服务器/从节点提供额外JVM参数。
示例:SLAVES_ADDITIONAL_JMETER_ARGS=jmeter-server -Jserver.rmi.ssl.disable=true -Dserver_port=60000
以下指南详细说明如何在分布式环境中运行JMeter测试。
向“分布式JMeter执行器”提供测试(.jmx)文件时,执行器将根据SLAVES_COUNT环境变量指定的数量创建从节点pod,并在所有从节点上分配测试任务。
通过执行器的Git流程,可使用分布式JMeter执行器的高级功能(JMeter执行器不支持):
example文件夹。plugins目录,并放入所需插件JAR文件。user.properties文件,以覆盖JMeter默认配置。Git仓库目录结构示例:
github.com/<username>/<reponame>/ ├── test1/ │ ├── testfile1.jmx # 测试用例文件 │ ├── userdata.csv # 测试数据文件 │ ├── user.properties # 自定义配置文件 │ └── plugins/ # 插件目录 │ ├── plugin-manager.jar # 插件JAR文件 │ └── <其他插件JAR文件> └── test2/ ├── testfile2.jmx ├── userdata.json ├── user.properties └── plugins/ └── <插件JAR文件>
更多信息可参考分布式JMeter的GitFlow示例测试。
确保本地安装并配置以下工具(需在PATH中可用):
data/目录(已被git忽略),用于JMeter运行和结果存储。data/目录中创建JMeter XML项目文件,命名为test-content。execution.json(建议保存至项目根目录的temp/目录,已被git忽略):
{ "id": "jmeterd-test", "args": [], "variables": {}, "content": { "type": "string" } }
RUNNER_SCRAPPERENABLED、RUNNER_SSL和RUNNER_DATADIR,并使用make run命令运行执行器(指定execution.json路径):
RUNNER_SCRAPPERENABLED=false RUNNER_SSL=false RUNNER_DATADIR="./data" make run run_args="-f temp/execution.json"
执行JSON存储执行器运行测试所需的配置信息,结构如下:
{ "args": ["-n", "-t", "test.jmx"], "variables": { "example": { "type": "basic", "name": "example", "value": "some-value" } }, "content": { "type": "string" } }
["-n", "-t", "test.jmx"](-n:非GUI模式,-t:指定测试文件){"example": {"type": "basic", "name": "example", "value": "some-value"}}"string")RUNNER_SSL=false # 存储后端是否使用HTTPS(本地开发设为false) RUNNER_SCRAPPERENABLED=false # 是否启用结果抓取(本地开发设为false) RUNNER_DATADIR="./data" # 数据目录路径(指向步骤1创建的data/目录)
testkube命名空间)构建镜像:使用make docker-build-local命令构建新执行器镜像。默认标签为kubeshop/testkube-executor-jmeter:999.0.0,可通过LOCAL_TAG环境变量自定义标签。
使镜像在Kubernetes中可访问:
kind load docker-image <镜像名> --name <集群名>(示例:kind load docker-image testkube-executor-jmeter:999.0.0 --name testkube-k8s-cluster)minikube image load <镜像名> --profile <集群配置名>(示例:minikube image load testkube-executor-jmeter:999.0.0 --profile k8s-cluster-test)编辑Job模板:修改testkube-api-server ConfigMap,将imagePullPolicy设为IfNotPresent:
kubectl edit configmap testkube-api-server --namespace testkube
找到job-template.yml键,在containers部分修改:
imagePullPolicy: IfNotPresent
更新执行器配置:修改testkube-api-server ConfigMap,将JMeter执行器镜像改为新构建的镜像:
kubectl edit configmap testkube-api-server --namespace testkube
找到executors.json键,更新name为jmeter-executor的执行器配置:
"executor": { "image": "<新镜像名>" }
重启API Server:
kubectl rollout restart deployment testkube-api-server --namespace testkube
Testkube现在将使用新镜像运行执行器,可通过偏好的方式调度测试。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429