
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Carrier定制的JMeter容器镜像,用于执行性能测试并生成多类型测试报告,支持与监控、报告工具集成,适用于本地测试或CI/CD流水线场景。
1. 安装Docker
2. 启动容器并传递配置参数
示例Docker命令:
docker run --rm -u 0:0 \ -v <本地测试文件路径>:/mnt/jmeter/ \ -v <本地配置文件路径/config.yaml>:/tmp/ \ # 可选 -v <本地报告存储路径>:/tmp/reports \ # 可选 -e "env=<环境标识>" \ # 可选,默认'demo' -e "test_type=<测试类型>" \ # 可选,默认'demo' -e "loki_host=http://loki" \ # Loki主机或IP -e "loki_port=3100" \ # 可选,默认3100 -e "JVM_ARGS='-Xms1g -Xmx2g'" \ getcarrier/perfmeter:latest \ -n -t /mnt/jmeter/<测试文件名> \ -q /mnt/jmeter/<属性文件> # 可选
参数说明:
<本地报告存储路径>:本地存储测试报告的路径<本地测试文件路径>:本地存放JMeter测试文件的路径<测试类型>:用于过滤测试结果的标签(可选)<环境标识>:用于过滤测试结果的标签(可选)<测试文件名>:要执行的JMeter测试文件名称<属性文件>:配置参数文件(可选)3. 查看测试报告
报告存储在<本地报告存储路径>中(若已挂载),包含:
properties文件示例(parameters.txt)
influx.port=8086 influx.db=jmeter influx.host=carrier_influx comparison_db=comparison lg.id=debug DURATION=20 VUSERS=5 RAMP_UP=1 test_name=test project.id=demo test.type=demo env.type=demo
也可通过命令行-J参数传递参数,例如:
... -t /mnt/jmeter/<测试文件名> -JVUSERS=1 -JRAMP_UP=1 ...
config.yaml文件示例(错误报告配置)
# 报告配置部分(所有报告类型均为可选) #reportportal: # ReportPortal.io配置 # rp_host: https://rp.com # 部署地址 # rp_token: XXXXXXXXXXXXX # 认证令牌 # rp_project_name: XXXXXX # 目标项目名称 # rp_launch_name: XXXXXX # 启动名称 # check_functional_errors: False # 是否分析功能错误(默认False) # check_performance_degradation: False # 是否分析性能退化(默认False) # check_missed_thresholds: False # 是否分析阈值超标(默认False) # performance_degradation_rate: 20 # 性能退化阈值(默认20) # missed_thresholds_rate: 50 # 阈值超标阈值(默认50) #jira: # url: https://jira.com # Jira地址 # username: some.dude # 用户名 # password: password # 密码 # jira_project: XYZC # 项目ID # assignee: some.dude # 默认经办人 # issue_type: Bug # 问题类型(默认Bug) # labels: Performance, perfmeter # 标签列表 # watchers: another.dude # 观察者列表 # jira_epic_key: XYZC-123 # Epic Key # check_functional_errors: False # 是否分析功能错误(默认False) # check_performance_degradation: False # 是否分析性能退化(默认False) # check_missed_thresholds: False # 是否分析阈值超标(默认False) # performance_degradation_rate: 20 # 性能退化阈值(默认20) # missed_thresholds_rate: 50 # 阈值超标阈值(默认50) #influx: # host: carrier_influx # InfluxDB主机 # port: 8086 # 端口(默认8086) # jmeter_db: jmeter # 测试结果数据库(默认jmeter) # comparison_db: comparison # 对比数据库(默认comparison) #loki: # host: http://loki # Loki主机 # port: 3100 # 端口
def get_influx_host(String env_var) { def match = env_var =~ 'http://(.+)/jenkins' return match[0][1] } node{ stage("配置") { deleteDir() sh "mkdir reports" } stage("运行测试") { def dockerParamsString = "--entrypoint=''" def params = [ "-t" ] for (param in params) { dockerParamsString += " ${param}" } docker.image("getcarrier/perfmeter:latest").inside(dockerParamsString){ sh "mkdir /tmp/reports" sh """cd / && /launch.sh -n -t /mnt/jmeter/FloodIO.jmx \\ -Jinflux.host=${get_influx_host(env.JENKINS_URL)} \\ -JVUSERS=10 -JDURATION=120 -Jinflux.db=jmeter -Jinflux.port=8086 \\ -JRAMP_UP=1 -Jtest_name=test -Jbuild.id=flood_io_${JOB_NAME}_${BUILD_ID} \\ -Jproject.id=demo -Jtest.type=demo -Jenv.type=demo""" sh "mv /tmp/reports/* ${WORKSPACE}/reports/" } } stage("发布结果") { perfReport 'reports/*.jtl' } }
前提:创建Galloper Bucket
http://{{ galloper_url }})运行测试命令
docker run --rm -t -u 0:0 \ -e galloper_url="http://{{ galloper_url }}" \ -e bucket="jmeter" -e artifact="{{ 测试文件.zip }}" \ getcarrier/perfmeter:latest \ -n -t /mnt/jmeter/{{ 测试文件名.jmx }} \ -Jinflux.host={{ influx主机或IP }}
上传额外插件
docker run --rm -t -u 0:0 \ -e galloper_url="http://{{ galloper_url }}" \ -e additional_files='{"jmeter/InfluxBackendListenerClient.jar": "/jmeter/apache-jmeter-5.0/lib/ext/InfluxBackendListenerClient.jar"}' \ getcarrier/perfmeter:latest \ -n -t /mnt/jmeter/{{ 测试文件名.jmx }} \ -Jinflux.host={{ influx主机或IP }}
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务