
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
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测试。
1. 文件选项
向“分布式JMeter执行器”提供测试(.jmx)文件时,执行器将根据SLAVES_COUNT环境变量指定的数量创建从节点pod,并在所有从节点上分配测试任务。
2. Git选项
通过执行器的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文件>
更多信息可参考https://github.com/kubeshop/testkube-executor-jmeter/tree/main/examples/gitflow%E3%80%82
确保本地安装并配置以下工具(需在PATH中可用):
data/目录(已被git忽略),用于JMeter运行和结果存储。data/目录中创建JMeter XML项目文件,命名为test-content。execution.json(建议保存至项目根目录的temp/目录,已被git忽略):
json{ "id": "jmeterd-test", "args": [], "variables": {}, "content": { "type": "string" } }
RUNNER_SCRAPPERENABLED、RUNNER_SSL和RUNNER_DATADIR,并使用make run命令运行执行器(指定execution.json路径):
bashRUNNER_SCRAPPERENABLED=false RUNNER_SSL=false RUNNER_DATADIR="./data" make run run_args="-f temp/execution.json"
执行JSON详解
执行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")本地开发环境变量
bashRUNNER_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:
bashkubectl edit configmap testkube-api-server --namespace testkube
找到job-template.yml键,在containers部分修改:
yamlimagePullPolicy: IfNotPresent
更新执行器配置:修改testkube-api-server ConfigMap,将JMeter执行器镜像改为新构建的镜像:
bashkubectl edit configmap testkube-api-server --namespace testkube
找到executors.json键,更新name为jmeter-executor的执行器配置:
json"executor": { "image": "<新镜像名>" }
重启API Server:
bashkubectl rollout restart deployment testkube-api-server --namespace testkube
Testkube现在将使用新镜像运行执行器,可通过偏好的方式调度测试。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




来自真实用户的反馈,见证轩辕镜像的优质服务