【问题标题】:how do I get my jmeter test plan to execute in Jenkins on my local windows machine?如何让我的 jmeter 测试计划在本地 Windows 机器上的 Jenkins 中执行?
【发布时间】:2016-02-24 20:13:21
【问题描述】:

我正在尝试让我的 jmeter 测试计划在 Jenkins 中执行。 jmeter 和 Jenkins 都安装在我的本地 Windows 机器上。我已经在 J​​meter 中设置了一些属性,并验证我可以使用以下命令从 cmd 行成功运行它们:

C:\Users\MikeL\Documents\apache-jmeter\bin>jmeter -n -t testApp.jmx -l log.jtl -Jenv=dev -JloopCount=2

现在在 Jenkins 我创建了一个新项目,创建两个新参数,并根据我在网上找到的示例在“执行 shell”中输入以下内容。我没有在 Jenkins 中配置任何其他内容。

sh jmeter.sh -n -p user.properties -t C:/Users/MikeL/Documents/apache-jmeter/bin/testApp.jmx -l log.jtl -Jenv=dev -JloopCount=1

可以说这个脚本不会构建我的 jmeter 测试。我收到此错误:

Cannot run program "sh" (in directory "C:\Program Files (x86)\Jenkins\workspace\LOS API Regression Tests"): CreateProcess error=2, The system cannot find the file specified

如果有人有任何线索,我将非常感激!

【问题讨论】:

    标签: bash shell jenkins jmeter


    【解决方案1】:

    将此路径C:\Users\MikeL\Documents\apache-jmeter\bin 添加到您的环境变量PATH

    那么 Jenkins Build 步骤应该是 Windows Batch Command

    那么命令应该是jmeter -n -t testApp.jmx -l log.jtl -Jenv=dev -JloopCount=1

    更新: 如果您不想设置路径,直接将下面的命令作为 Windows 批处理命令。

    C:\Users\MikeL\Documents\apache-jmeter\bin\jmeter.bat -n -t C:\Users\MikeL\Documents\apache-jmeter\bin\testApp.jmx -l log.jtl -Jenv=dev -JloopCount=1


    使用 Ant/Maven/Gradle 在非 gui 模式下运行 jmeter 测试。它们也可以与 Jenkins 集成

    【讨论】:

    • 谢谢 - 我将路径添加到路径环境变量中,并按照指定缩短了我的批处理命令。构建仍然失败。这是输出:由用户匿名在工作区 C:\Program Files (x86)\Jenkins\workspace\LOS API 回归测试 [LOS API 回归测试] $ cmd /c call C:\windows\TEMP\ hudson6684030616004371668.bat C:\Program Files (x86)\Jenkins\workspace\LOS API Regression Tests>jmeter -n -t testApp.jmx -l log.jtl -Jenv=dev -JloopCount=1 'jmeter' 未被识别为内部或外部命令、可运行程序或批处理文件。 有什么想法吗?再次感谢
    • @cdav929,打开命令提示符。输入 jmeter 并回车。它显示了什么??
    • 当我打开 cmd propmpt 时,它默认为网络驱动器“U”。如果我在那里输入 jmeter 或切换到 C: 然后输入 jmeter 它告诉我'jmeter 不是内部或外部命令、可运行程序或批处理文件
    • 但是,如果我导航到 jmeter 的 bin 文件夹,然后键入“jmeter”,它会打开 jmeter 的 GUI 界面。 “PATH”变量的最后几个条目如下所示:\; C:\WINDOWS\system32; C:\Users\MikeL\Documents\apache-jmeter\bin;
    • @cdav929,请检查我的答案中的更新。在 jenkins 中将其设置为 windows 批处理命令
    【解决方案2】:

    这里的问题是跨环境。您需要使用 Windows 批处理命令而不是执行 shell 来运行它。 windows 不会将 sh 识别为可执行文件。

    C:\Users\MikeL\Documents\apache-jmeter\bin>jmeter -n -t testApp.jmx -l log.jtl -Jenv=dev -JloopCount=2
    

    在执行windows批处理模式下运行以上代码

    【讨论】:

    • 感谢您的快速回答!有道理,我现在在这个过程中走得更远。但是我在 Jenkins 的执行批处理命令文本框中有以下行: C:\Users\mikeL\Documents\apache-jmeter\bin\jmeter -n -t testApp.jmx -l log.jtl -Jenv=dev -JloopCount =1
    • 当我在 Jenkins 中执行测试时,我得到以下响应:'C:\Program Files (x86)\Jenkins\workspace\LOS API Regression Tests>C:\Users\mikeL\Documents\apache -jmeter\bin\jmeter -n -t testApp.jmx -l log.jtl -Jenv=dev -JloopCount=1 无法打开 testApp.jmx Finished: SUCCESS' 有什么想法吗?
    • 当你从命令行执行命令时输出是什么?
    • 这是我从 cmd 提示符执行的过程。首先我打开 cmd 提示符。它默认为网络驱动器 U,所以我将 dir 更改为 C:。然后我导航到 jmeter 的 bin 文件夹。从 bin 文件夹中,我键入 > jmeter -n -t testApp.jmx -l log.jtl -Jenv=dev -JloopCount=1 这将启动 jmeter,输出告诉我它执行了 37 次测试,其中 1按预期失败。
    猜你喜欢
    • 2022-06-14
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多