我正在为使用jmeter来向远程桌面运行cmd命令而挣扎。 我使用操作系统采样器。 我有一个命令,如果我从计算机的命令行运行该命令,它将起作用,但是当我尝试使jmeter运行时,它会失败-我使用的是同一台计算机。 命令是:
plink -ssh jenkins@178.27.288.288 -pw passtest sudo /opt/test/test.sh
工作目录是cmd.exe目录。 该命令是我希望jmeter运行的完整命令,与在cmd direct上完美运行的命令相同。
我收到此错误:
Response message: Exception occurred whilst executing system call: java.io.IOException: Cannot run program "plink -ssh jenkins@178.27.288.288 -pw passtest sudo /opt/test/test.sh" (in directory "c:\windows\system32"): CreateProcess error=2, The system cannot find the file specified
我不知道jmeter需要哪个文件,我只是希望他运行命令,连接到远程计算机并运行该命令,该命令在命令行中运行正常,并在远程计算机中运行脚本。
我在网上找到了这个博客: https://www.blazemeter.com/blog/how-run-external-commands-and-programs-locally-and-remotely-jmeter
表示可以做到,但是由于很容易,所以它们不会逐步显示。
当我将命令更改为dir时,它运行正常,结果就像我在命令行中写入dir。
我如何才能使jmeter打开命令行,然后直接输入命令并按Enter,然后显示结果?
答案 0 :(得分:1)
在命令中,您需要提供要执行的程序的名称。在命令提示符的情况下,它是cmd.exe,对于外壳程序,我认为它是powershell.exe。 其余部分需要作为命令参数传递。
在下面检查命令参数:-
OS Process Sampler是可用于执行的采样器 本地计算机上的命令。它应该允许执行任何 可以从命令行运行的命令。验证 可以启用返回码,而预期的返回码可以是 指定。请注意,操作系统外壳程序通常提供命令行解析。 操作系统之间会有所不同,但通常外壳会分裂 空格上的参数。某些shell会扩展通配符文件名。 有些没有。操作系统之间的报价机制也有所不同。的 采样器故意不执行任何解析或报价处理。的 命令及其参数必须以预期的形式提供 可执行文件。这意味着采样器设置将不会 在操作系统之间可移植。
许多操作系统具有一些内置命令,这些命令并未提供 单独的可执行文件。例如,Windows DIR命令是 命令解释器(CMD.EXE)。这些内置程序不能以 独立程序,但必须作为 适当的命令解释器。
例如, Windows命令行:DIR C:\ TEMP 指定如下:
命令:CMD参数1:/ C参数2:DIR参数3:C:\ TEMP
如果命令是远程命令,则尝试使用共享的博客中显示的带有SSH采样器的“远程命令:Linux / MacOSX”。
下面的屏幕截图可简单地执行dir命令:-