如何在远程脚本的jmeter中使用OS采样器

How to use OS Sampler in jmeter for remote script

我在 jmeter 中遇到一个问题,我想知道我是否可以解决。 我需要 运行 远程计算机中的脚本。 当我 运行 在我的计算机上通过命令行运行脚本时,它正在运行。

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

我想从我的计算机在 Jmeter 中 运行 它(与脚本 运行 相同)。 我尝试了不起作用的 ssh 采样器 我想使用 OS 采样器,可以吗?我可以 运行 在远程计算机上编写脚本吗? 我找到的唯一解释来自 blazemeter 网站,并提到: “同样,由于 运行 通过 OS Process Sampler 运行“plink”程序非常简单,”

远程机器:jenkins@178.27.288.288,
远程机器的密码:passtest,
命令:sudo /opt/test/test.sh

所以有人可以指教

我添加了 OS 采样器

并收到此消息:

Exception occurred whilst executing system call: java.io.IOException: Cannot run program "sudo /opt/test/test.sh" (in directory "plink -ssh jenkins@178.27.288.288 -pw passtest "): CreateProcess error=267, The directory name is invalid

有人可以告诉我如何在远程计算机上 运行 命令吗? 再一次,如果我将完整的行带入 command 命令行,它正在工作,但是在我为 Jmeter 剪切它之后它不工作了?我错过了什么

  1. 命令参数需要放在 "Command parameters" 部分,而不是 "Working Directory"
  2. 我会通过 cmd.exe 解释器建议 运行 你的脚本,所以实际命令是 cmd,而不是 Linux 命令
  3. 提供-hostkey参数更安全,因为远程Linux机器不在known_hosts你的脚本会卡住

    假设您的 OS Process Sampler 配置如上所示:


使用 JSR223 Sampler 可能更容易,您可以在其中调用程序并像以下一样简单地获取输出:

"c:\somefolder\plink.exe -pw passtest sudo /opt/test/test.sh".execute().text

有关该方法的更多信息:Apache Groovy - Why and How You Should Use It