在SoapUI中运行通用的Groovy脚本断言

时间:2018-11-08 18:28:00

标签: groovy soapui assertion

是否有可能/如何从SoapUI断言中运行groovy脚本,而无需将脚本复制/粘贴到需要执行相同脚本的所有测试步骤中?是否可以在断言之外编写脚本并像调用方法一样运行脚本?这样您就可以在多个测试步骤中重用断言脚本。

到目前为止,我已经尝试从断言中调用常规测试步骤,但是run()方法需要一个testRunner变量,该变量在断言中不可用。我还尝试编写一个groovy脚本作为后续测试步骤(不是断言),该脚本调用另一个groovy测试步骤脚本,但是我无法将响应从一个测试步骤转移到下一个测试步骤。 (老实说,我不想创建实际上只是断言的测试步骤。)

注意:这不是How to create variables in soapui test case that can be accessed across all test steps - groovy test step & script assertion test step?的重复,因为该问题与存储属性有关,而不是与重用脚本有关。

1 个答案:

答案 0 :(得分:0)

我终于找到了第二种方法:添加另一个常规脚本作为后续测试步骤,该步骤具有断言并传递响应。脚本是:

context.response = context.expand('${MyTestStep#Response}') // store response to context variable
Object result = testRunner.testCase.testSuite.testCases['Validate Response'].testSteps['Validate Response'].run(testRunner, context)

if(result.getError() != null) {
    log.error("error", result.getError())
    assert false
}
assert true

MyTestStep是常规脚本之前的测试步骤。 Validate Response是常规脚本测试用例的名称,该脚本也称为Validate Response,并通过run方法执行。