groovy脚本中的测试步骤结果列表

时间:2015-06-13 20:48:36

标签: groovy automated-tests soapui

我试图找出一种获取失败测试步骤的(名称)列表的方法,目前下面的代码给了我所有的名字

def TestCase = testRunner.getTestCase()
def StepList = TestCase.getTestStepList()
StepList.each
{
    log.info (it.name)
}

现在我不确定如何从这里继续前进并获得该列表中每个步骤的失败状态

1 个答案:

答案 0 :(得分:6)

您可以使用以下方法:获取testSteps的断言状态,然后检查状态是FAILED,UNKNOWN还是VALID。您可以使用以下groovy代码执行此操作:

import com.eviware.soapui.model.testsuite.Assertable.AssertionStatus

def TestCase = testRunner.getTestCase()
def StepList = TestCase.getTestStepList()
StepList.each{
    // check that testStep has assertionStatus 
    // (for example groovy testSteps hasn't this property since
    // there is no asserts on its)
    if(it.metaClass.hasProperty(it,'assertionStatus')){
        if(it.assertionStatus == AssertionStatus.FAILED){
            log.info "${it.name} FAIL..."
        }else if(it.assertionStatus == AssertionStatus.VALID){
            log.info "${it.name} OK!"
        }else if(it.assertionStatus == AssertionStatus.UNKNOWN){
            log.info "${it.name} UNKNOWN (PROBABLY NOT ALREADY EXECUTED)"
        }
    }
}

请注意,并非所有testSteps都有assertionStatus(例如groovy testStep,这就是为什么我在上面的代码中检查属性)。

此代码只能在groovy testSteptear down script用于testCase。

如果您需要使用不同的方法来处理所有testSteps而不是仅针对具有assertionStatus属性的testSteps,则可以使用以下代码。但请注意,第一种方法优势是,如果您希望将其用作简单的groovy testStep,则替代对应方是,以下脚本只能用作tearDownScript,并且只能正常使用整个测试执行,因为results仅在此上下文中可用:

testRunner.results.each{ testStepResult ->
    log.info "${testStepResult.testStep.name} ${testStepResult.status}"
}

testStepResult是com.eviware.soapui.model.testsuite.TestStepResult you can take a look at api to get more info.

的一个实例

希望这有帮助,