在SoapUI Groovy步骤

时间:2016-03-04 11:54:30

标签: groovy soapui status

我有以下TestCase设置:

Datasource
 Soap Request
 Groovy Script
Datasource loop

我想使用Groovy Script测试步骤获取SoapRequest测试步骤的状态。

可以如下所示:

myTestStepResult = testRunner.runTestStepByName("Soap Request")
myStatus = myTestStepResult.getStatus()

但我不想通过脚本运行TestStep,而只是使用soapui testrunner。 在数据链测试步骤中,我可以使用:

${=testRunner.results[testRunner.results.size()-1].status}

不幸的是,上面的内容在GroovyScript TestStep

中不起作用

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

可以在不使用测试步骤名称的情况下运行测试步骤,并根据需要获取状态。并且假设测试步骤序列没有变化,即Soap Request步骤始终是Groovy Script步骤的前一步骤,并且两者之间没有其他步骤。

Groovy脚本:

log.info testRunner.runTestStep(context.testCase.testStepList[context.currentStepIndex - 1]).status

答案 1 :(得分:0)

为避免再次运行测试步骤,请尝试以下操作:

results = testRunner.getResults()
status = results.get(results.size() - 1).getStatus()
log.info status

运行测试用例之后,脚本日志应显示上一个测试步骤的状态。

请注意,在运行测试用例时,必须执行包含代码的Groovy脚本测试步骤。如果仅运行测试步骤,则会出现以下错误:

(java.lang.ArrayIndexOutOfBoundsException)

这是正常的,因为如果列表为空,则无法获得results.size()。