需要帮助 - SoapUi testRunner.getStatus()无限期地返回状态为"RUNNING"

Som*_*Som 2 groovy soapui

在执行soap请求测试步骤(在测试套件 - >测试用例下)之后通过testRunner.runTestStepByName(" Soap Request Name ")执行SoapUI

在soap请求执行testRunner.getStatus()返回RUNNING状态之后等待10秒.下面是groovy脚本(在同一测试套件下 - >测试用例)

import groovy.sql.Sql;
import com.eviware.soapui.model.testsuite.TestRunner.Status

testRunner.runTestStepByName("GetCitiesByCountry - Request 1")
sleep(10000)
log.info( "...${testRunner.getStatus()}...")

while ( testRunner.getStatus() == Status.RUNNING ) {
    log.info(testRunner.getStatus())
}
Run Code Online (Sandbox Code Playgroud)

输出如下

Wed Apr 17 21:06:22 IST 2013:INFO:RUNNING
Wed Apr 17 21:06:22 IST 2013:INFO:RUNNING
Wed Apr 17 21:06:22 IST 2013:INFO:RUNNING
Wed Apr 17 21:06:22 IST 2013:INFO:RUNNING
Wed Apr 17 21:06:22 IST 2013:INFO:RUNNING
Wed Apr 17 21:06:22 IST 2013:INFO:RUNNING
.
.
continuing for infinite time...
Run Code Online (Sandbox Code Playgroud)

理想情况下, 执行上述测试步骤后应返回FINISHED ,

高级感谢您对此提供的任何帮助

gae*_*ret 5

这听起来合乎逻辑,只要你在循环中,测试就是"正在运行".您可以通过以下方式获取状态:

import com.eviware.soapui.model.testsuite.TestStepResult.TestStepStatus
myTestStepResult = testRunner.runTestStepByName("GetCitiesByCountry - Request 1")
myStatus = myTestStepResult.getStatus()
if (myStatus == TestStepStatus.OK)
log.info "The step status is: " + myStatus.toString()
else
log.error "The step status is: " + myStatus.toString()
Run Code Online (Sandbox Code Playgroud)

此外,由于对runTestStepByName的调用是同步的,因此没有'running'状态,只有'CANCELED','FAILED','OK'或'UNKNOWN'.

请参阅此处的文档