代码之家  ›  专栏  ›  技术社区  ›  Bastian

如何使jmeter从cmd-os sampler-jmeter运行命令

  •  0
  • Bastian  · 技术社区  · 6 年前

    我正在和jmeter一起努力将cmd命令运行到远程桌面。 我使用操作系统采样器。 我有一个命令,如果我从我的计算机的命令行运行它,它会工作,但是当我试图让jmeter运行它时,它失败了——我使用同一台计算机。 命令是:

    plink -ssh jenkins@178.27.288.288 -pw passtest  sudo /opt/test/test.sh
    

    我添加了一个操作系统采样器,如下所示: enter image description here

    工作目录是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键,然后显示结果?

    1 回复  |  直到 6 年前
        1
  •  1
  •   sunny_teo    6 年前

    在命令中,您需要给出要执行的程序的名称。在命令提示的情况下,它是cmd.exe,对于shell,我认为它是powershell.exe。 其余的需要作为命令参数传递。

    检查以下命令参数:

    OS过程采样器是一个可用于执行的采样器 本地计算机上的命令。它应该允许执行任何 可以从命令行运行的命令。验证 可以启用返回代码,并且预期的返回代码可以 明确规定。注意,OS shell通常提供命令行解析。 这在OSE之间有所不同,但通常情况下,外壳会分裂 空白处的参数。一些shell扩展了通配符文件名; 有些则不然。OSE之间的报价机制也有所不同。这个 采样器故意不进行任何分析或引用处理。这个 命令及其参数必须以预期的格式提供 可执行文件。这意味着取样器设置不会 在OSE之间可移植。

    许多操作系统都有一些内置命令,这些命令不是作为 单独的可执行文件。例如,windows dir命令是 命令解释器(cmd.exe)。这些内置组件不能作为 独立程序,但必须作为参数提供给 适当的命令解释程序。

    例如, Windows命令行:dir c:\temp 需要 具体如下:

    命令:cmd param 1:/c param 2:dir param 3:c:\temp

    如果命令是远程命令,那么尝试使用“remote commands:linux/macosx”和ssh sampler,它们显示在您共享的日志中。

    以下屏幕截图用于简单执行dir命令:

    enter image description here enter image description here