SoapUI如何获取TestStep的状态

1. 作自动化测试的时候,须要模拟一些界面上的操做场景,有时就会碰到须要根据上一步的测试步骤状态选择下一步须要跳转的步骤,这个时候就须要获取上个TestStep的运行状态,我的理解的状态应该有:html

Successapi

Failed测试

Cancelledui

Disabledspa

因而在SoapUI Groovy Script中注入的三个对象“log”, "context"和“testRunner”中各类尝试,看是否存在一个属性,表示TestStep的状态。htm

2. 试了不少次,终于在testRunner的方法中看到了一个带有Status的方法“getStatus()”,因而欣喜的想知道这个方法获取到的是什么值:对象

log.info testRunner.status接口

log.info testRunner.getStatus()ip

上面这两条语句都打印了"RUNNING",因而去查了API,发现TestRunner的Status是一个枚举值:rpc

Enum Constants:

CANCELLED

FAILED

FINISHED

INITIALIZED

PENDING

RUNNING

WARNING

可是这个状态的值表示的是当前TestRunner的状态,并非某个TestStep的状态。

3. 因而查了不少SoapUI API中的其余类,发现TestStepResult这个接口里面有一个方法“getStatus()”,专门用来获取TestStep的运行状态(TestStepStatus)。

这个TestStepStatus也是枚举值:

CANCELLED

FAILED

OK

UNKNOWN

4. 实现这个TestStepResult接口的类不少:

AMFTestStepResultJdbcTestStepResultManualTestStepResultPropertyTransfersTestStep.PropertyTransferResultRestRequestStepResultWsdlMessageExchangeTestStepResultWsdlSingleMessageExchangeTestStepResultWsdlTestRequestStepResultWsdlTestStepResultXmlRpcTestStepRequestResult

可是Groovy Script中注入的三个对象"log", "context", "testRunner"都不是实现TestStepResult的类的实例。(包括Script Assertion中注入的“messageExchange”也不是以上这些类的实例)

messageExchange属于:RestResponseMessageExchange类的实例

testRunner属于:MockTestRunner类的实例

5. 因而就想着怎样经过"log", "context", "testRunner" 和"messageExchange"这四个对象来获取到一个TestStepResult对象呢?

查了它们四个的API之后,发现:

testRunner.runTestStep(TestStep testStep) 和

testRunner.runTestStepByName(String name)

这两个方法返回的是一个TestStepResult实例。

因此就在Groovy Script里面调用了以下方法:

log.info testRunner.runTestStepByName("GetHoldingsReturn").getStatus()

等这个"GetHoldingsReturn"方法运行完了之后,状态栏输出"OK".

6. 综上所述:

SoapUI在获取某个TestStep的运行状态时有很是大的局限性

只有在Groovy Script里面调用testRunner的 "runTestStep" 和 "runTestStepByName" 方法去运行某个TestStep,才能获取该TestStep的状态。

相关文章
相关标签/搜索