SoapUI如何获取TestStep的状态

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

Success

Failed

Cancelled

Disabled

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

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

log.info testRunner.status

log.info testRunner.getStatus()

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

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的状态。

 

转载于:https://my.oschina.net/u/942203/blog/1506540

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值