2

在 SoapUI 中,通过testRunner.runTestStepByName (" Soap Request Name ")执行一个肥皂请求测试步骤(在测试套件 -> 测试用例下)

并在肥皂请求执行testRunner.getStatus()返回RUNNING status后等待 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())
}

输出如下

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...

理想情况下,由于执行了上述测试步骤,它应该返回FINISHED

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

4

1 回答 1

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()

此外,由于对 runTestStepByName 的调用是同步的,因此没有“正在运行”状态,只有“CANCELED”、“FAILED”、“OK”或“UNKNOWN”。

请参阅此处的文档

于 2013-04-23T12:00:41.643 回答