使用SoapUI-groovy的Shell命令

使用SoapUI-groovy的Shell命令,groovy,continuous-integration,sh,soapui,Groovy,Continuous Integration,Sh,Soapui,所以我试图在一个自动化的SoapUI项目上运行一个shell脚本,该项目是在持续集成中执行的。我需要向脚本发送一些参数和一个SQL查询,因此我尝试执行一个类似于以下内容的命令: /path/to/file.sh param1 param2 "sql query" 如果我记录命令并手动执行它,它会工作得很好,但是当groovy运行它时,“sql查询”参数会被拆分为每个空间的多个参数 我试着用 String command = "/path/to/file.sh param1 param2 \"s

所以我试图在一个自动化的SoapUI项目上运行一个shell脚本,该项目是在持续集成中执行的。我需要向脚本发送一些参数和一个SQL查询,因此我尝试执行一个类似于以下内容的命令:

/path/to/file.sh param1 param2 "sql query"
如果我记录命令并手动执行它,它会工作得很好,但是当groovy运行它时,“sql查询”参数会被拆分为每个空间的多个参数

我试着用

String command = "/path/to/file.sh param1 param2 \"sql query\""
def proc = command.execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(5000)
我不明白我做错了什么。 在Grooy中,数组(数组是内部列表)也有一个execute方法。通过阵列执行命令通常更安全

def command = ['/path/to/file.sh', 'param1', 'param2', 'sql query']
def proc = command.execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(5000)

您可以试试:
[“/path/to/file.sh”、“param1”、“param2”、“sql query”]。执行()
?您得到的响应是什么?非常好@tim_yates Thanks使用“sql查询”安全吗?因为sql查询本身使用“字符串值”@JSantos您可以用“-来包装sql语句,即使它在Groovy中是一种特殊的动态字符串类型,也可以在没有动态替换的情况下工作