Jenkins执行JMeter测试构建失败 命令无法识别问题求助
构建失败原因
核心错误
从Jenkins日志可以直接定位根因:
'C:\Users\udeme.bassey\Downloads\apache-jmeter-5.4.1\apache-jmeter-5.4.1\bin' is not recognized as an internal or external command, operable program or batch file.
批处理退出码:9009
Windows系统的9009错误码代表找不到指定的可执行文件,本次触发的原因是你在Jenkins中配置的批处理命令写错了JMeter的调用路径:你原本要执行的是JMeter bin目录下的jmeter.exe可执行文件,但实际命令只填写了bin目录的路径,没有拼接jmeter可执行文件名,系统将目录当做可执行文件调用直接报错,批处理步骤直接标记构建失败。
另外日志中性能插件提示报告读取成功属于历史残留数据误导:读取的是之前构建留下的旧报告文件,本次构建根本没有成功执行JMeter生成新的测试结果。
修复方案
- 修正Jenkins中的Windows批处理命令,补全JMeter可执行文件的完整路径,调整后的正确命令如下:
C:\Users\udeme.bassey\Downloads\apache-jmeter-5.4.1\apache-jmeter-5.4.1\bin\jmeter -Jjmeter.save.saveservice.output_format=csv -n -t "C:\Users\udeme.bassey\Downloads\apache-jmeter-5.4.1\apache-jmeter-5.4.1\bin\VibraniumValley.jmx" -l "C:\Users\udeme.bassey\Downloads\apache-jmeter-5.4.1\apache-jmeter-5.4.1\bin\Reports\VVjenkinsreport.csv"
注意:原命令中设置属性的参数小写-j是指定JMeter日志文件路径的参数,要设置JMeter系统属性需要用大写的-J参数。
- 可选优化:将
C:\Users\udeme.bassey\Downloads\apache-jmeter-5.4.1\apache-jmeter-5.4.1\bin路径添加到Windows系统环境变量PATH中,之后批处理可以直接调用jmeter命令,不需要写全路径,降低写错的概率。 - 提前创建报告目录:在执行JMeter命令前增加目录判断逻辑,避免报告目录不存在导致JMeter执行失败,新增命令如下:
if not exist "C:\Users\udeme.bassey\Downloads\apache-jmeter-5.4.1\apache-jmeter-5.4.1\bin\Reports" mkdir "C:\Users\udeme.bassey\Downloads\apache-jmeter-5.4.1\apache-jmeter-5.4.1\bin\Reports"
内容的提问来源于stack exchange,提问作者Udeme
相关产品推荐
相关产品推荐

