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

list of test step results in groovy script

我正在尝试找出一种方法来获取失败测试步骤的(名称)列表,目前下面的代码为我提供了所有名称

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

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

您可以使用以下方法:获取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 testStep 中或用作测试用例的 tear down script

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

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

testStepResult 是 com.eviware.soapui.model.testsuite.TestStepResult 的一个实例,您可以查看 api 以获取更多信息。

希望这对您有所帮助,