jmeter - 如何通过詹金斯通过远程服务器运行jmeter测试
问题描述
我有一台 linux 机器(比如 m1)[一台 openStack 机器] 来运行我的 jmeter 测试。我的典型过程是将最新的 jmx 文件放在这台机器上并触发以下命令: nohup /path/to/jmeter/bin/jmeter -n -t /path/to/script/test.jmx -l /path/to/resultsFolder /结果.jtl
现在,我想通过 jenkins 作业触发相同的测试,它实际上应该执行与上述相同的活动。
我执行两个活动(一个是手动触发 m1 上的 jmeter-server,另一个是运行 jenkins 作业以通过 m1 运行测试)
在 m1 上手动启动 jmeter 服务器运行以下命令(SERVER_PORT=1099 nohup /path/to/jmeter/bin/jmeter-server)
詹金斯工作
我创建了一个 jenkins 管道作业: Stage1:在 jenkins master 中签出 jmeter stage2:在 jenkins master stage3 中签出最新脚本:运行 jmeter 远程测试 -
使用的命令:sh ''' chmod u+x jmeter/bin/jmeter.sh jmeter/bin/jmeter.sh -n -t path/where/jenkins/checked/latest/test/test.jmx -R 10.XXX -l results.jtl'''
Stage1 和 stage2 运行完美。
Stage3:控制台输出如下图
- jmeter/bin/jmeter.sh -n -t jmeter/bin/jmeter.sh -n -t path/where/jenkins/checked/latest/test/test.jmx -R 10.XXX -l results.jtl
- 创建摘要器
- 使用 path/where/jenkins/checked/latest/test/test.jmx 成功创建了树
- 配置远程引擎:10.XXX
- 启动远程引擎
- 开始测试 @ 2018 年 8 月 14 日星期二 10:41:46 CEST (1534236106818)
- 远程引擎已启动
- 等待端口 4445 上可能的关闭消息
并且它一直显示处理......除非我触发手动关机。
所以,我正在寻找两件事
- 通过 jenkins 作业本身在从节点上启动 jmeter-server 的机制
- 通过远程机器运行测试(可以在负载机器内的位置并从那里触发测试)
. 任何想法表示赞赏。先感谢您!
解决方案
您可以通过至少 2 种方式在远程从站上启动 jmeter 服务器:
- 从 Jenkins 使用Jenkins SSH 插件
- 从 JMeter 本身使用OS Process Sampler或SSH 命令插件(在这种情况下,您将有 2 个脚本,一个将设置所有内容,另一个将是分布式模式下的主要测试。
推荐阅读
- neo4j - 将 Neo4J 数据库升级到 4.2,7474 的浏览器仍然指向旧的 Neo4j 数据库 3.5,我该如何解决这个问题?
- python - numpy 的 fromfunction 访问输入函数中的数组
- macos - 无法找到 DMG 映像以使 macos catalina 可启动 USB
- flutter - 我们如何使用粘性底部和滚动可以在 Flutter 中向下滚动到末尾
- php - 使用 PHP Mail() 时从哪里开始?
- azure - Azure 将应用服务重定向到自定义域
- linux - 是否可以在 linux(x.org) 下使用 SDL2/piston 或 bevy 等通用图形/游戏 api 编写窗口管理器?
- reactjs - 如何在本机反应中创建表单?
- powershell - VS CODE 终端未打开显示错误终端进程无法启动
- python - Django - 过滤与今天日期相关的 prefetch_related