Soapui测试步骤groovy脚本调用存储过程并返回结果

时间:2016-04-12 02:31:34

标签: stored-procedures groovy soapui

我使用soapui5.1.3 groovy脚本测试步骤执行MS SQL存储过程" find"使用begin,end和id参数作为存储过程的输入。

下面是我的语法,我想用列名" empName"打印所有行。但是当我执行以下语法时,结果值为0.

任何人都可以帮助正确的语法吗?

def result = sql.call("{call find @begin = '01/01/2016 10:00' @end = '01/02/2016 10:00', @id = '1'}")
log.info(result)

1 个答案:

答案 0 :(得分:1)

您可以按照以下方式执行此操作:

def rowsAffected = sql.call("{call find('01/01/2016 10:00','01/02/2016 10:00','1')}")
println rowsAffected

或者传递参数:

def rowsAffected = sql.call("{call find(?,?,?)}",['01/01/2016 10:00','01/02/2016 10:00','1'])
println rowsAffected

但是,如果您想获得一些结果而不是仅查看受影响的行,则可以执行此操作:

 sql.call("{? = call find(?,?,?)}", [Sql.VARCHAR, '01/01/2016 10:00','01/02/2016 10:00','1'], 
 { empName->
     println empName
 })

在最后一个示例中,注意params数组中的第一个元素是返回变量的类型,我想它是VARCHAR但是如果你的PROCEDURE会相应地改变}返回不同的类型。

请查看groovy.sql.Sql API,因为Sql.call methods有很好的样本。

注意:要与 SOAPUI 一起使用,请记住将数据库供应商特定库放在$SOAPUI_HOME/bin/ext文件夹中,然后重新启动 SOAPUI 为了加载DB .jar