是否有可能/如何从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?的重复,因为该问题与存储属性有关,而不是与重用脚本有关。
答案 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
方法执行。