Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何让我的jmeter测试计划在本地windows机器上的Jenkins中执行?_Bash_Shell_Jenkins_Jmeter - Fatal编程技术网

Bash 如何让我的jmeter测试计划在本地windows机器上的Jenkins中执行?

Bash 如何让我的jmeter测试计划在本地windows机器上的Jenkins中执行?,bash,shell,jenkins,jmeter,Bash,Shell,Jenkins,Jmeter,我正试图让我的jmeter测试计划在詹金斯执行。jmeter和Jenkins都安装在我的本地windows计算机上。我在Jmeter中设置了一些属性,并验证了我可以使用以下命令从cmd行成功运行它们:C:\Users\MikeL\Documents\apache Jmeter\bin>Jmeter-n-t testApp.jmx-l log.jtl-Jenv=dev-JloopCount=2现在在Jenkins中我创建了一个新项目,创建两个新参数,并根据我在web上找到的示例在“execute

我正试图让我的jmeter测试计划在詹金斯执行。jmeter和Jenkins都安装在我的本地windows计算机上。我在Jmeter中设置了一些属性,并验证了我可以使用以下命令从cmd行成功运行它们:

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

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

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


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

无法运行程序“sh”(位于目录“C:\program Files(x86)\Jenkins\workspace\LOS API回归测试”):CreateProcess error=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批处理模式下运行上述操作


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

然后Jenkins构建步骤应该是Windows批处理命令

然后命令应该是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集成


感谢您的快速回答!这是有道理的,我现在在这个过程中走得更远了。但是,我在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回归测试>C:\Users\mikeL\Documents\apache jmeter\bin\jmeter-n-t testApp.jmx-l log.jtl-Jenv=dev-JloopCount=1无法打开testApp.jmx已完成:成功“有什么想法吗?当您从命令行执行命令时,输出是什么?这是我从cmd提示符执行命令的过程。首先,我打开cmd提示符。它默认为网络驱动器U,因此我将目录更改为C:。然后导航到jmeter的bin文件夹。从bin文件夹I type>jmeter-n-t testApp.jmx-l log.jtl-Jenv=dev-JloopCount=1,启动jmeter,输出信息告诉我它执行了37个测试,其中1个测试按预期失败。感谢-我将该路径添加到path env变量,并按照指定缩短了批处理命令。构建仍然失败。以下是输出:由工作区C:\Program Files(x86)\Jenkins\workspace\LOS API回归测试[LOS API回归测试]$cmd/C调用C:\windows\TEMP\hudson6684030616004371668.bat C:\Program Files(x86)中的用户匿名构建启动\Jenkins\workspace\LOS API回归测试>jmeter-n-t testApp.jmx-l log.jtl-Jenv=dev-JloopCount=1“jmeter”未被识别为内部或外部命令、可操作程序或批处理文件。有什么想法吗?Thksagain@cdav929,打开命令提示符。键入jmeter并按enter键。它显示了什么?当我打开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批处理命令