如何从soapui groovy脚本执行shell脚本?

时间:2016-04-21 11:41:10

标签: groovy ssh soapui

我有shell脚本,它保存在远程服务器(linux机器)上,我试图在从Windows执行各种SOAPui测试用例之间调用该shell脚本。 所以我准备了一个groovy脚本:

def command="/usr/bin/ssh -p password username@IP_address bash -s < /home/test.sh"
def proc=command.execute().text
proc.waitFor()

但不幸的是,我收到了一个错误:

java.io.IOException:无法运行程序“/ usr / bin / ssh”:CreateProcess error = 2,系统找不到指定错误的文件行:6

我试图在此搜索更多信息,但无法获得解决方案。一些链接是:

How to execute shell script using soapUI

http://groovy-lang.org/groovy-dev-kit.html#process-management

1 个答案:

答案 0 :(得分:1)

如果您评论自己在Windows上安装了putty.exe,则可以尝试使用以下内容。

首先在Windows本地创建一个文件,其中包含远程执行的命令,例如我创建了跟随C:/temp/commandsToRunRemotely.txt,然后在此文件中输入您要执行的命令。作为示例,我使用以下命令:

echo "test remote execution" > /tmp/myfile.txt

然后从 SOAPUI 中的 groovy脚本调用putty.exe,传递包含远程执行命令的本地文件:

def command = "C:/path/to/putty.exe -ssh user@IP -pw pass-m C:/temp/commandsToRunRemotely.text"
def proc = command.execute()
proc.waitFor()

请注意,如果您在Windows路径中putty.exe,则只需使用putty.exe而不是完整路径。

这只是一个ilustation示例,但是如果要在命令文件中远程执行shell脚本而不是echo "test remote execution" > /tmp/myfile.txt,请直接使用脚本的路径:/home/test.sh

我从此nice answer

获取 Putty 命令行选项

希望它有所帮助,