groovy脚本中的测试步骤结果列表
我正试图找出一种方法来获取失败测试步骤的列表(名称),目前下面的代码给出了所有名称groovy脚本中的测试步骤结果列表,groovy,automated-tests,soapui,Groovy,Automated Tests,Soapui,我正试图找出一种方法来获取失败测试步骤的列表(名称),目前下面的代码给出了所有名称 def TestCase = testRunner.getTestCase() def StepList = TestCase.getTestStepList() StepList.each { log.info (it.name) } 现在我不知道如何从这里开始,并获取列表中每个步骤的失败状态。您可以使用以下方法:获取testSteps的断言状态,然后检查状态是否为failed、UNKNOWN或VAL
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都有断言状态(例如groovy testStep,这就是我检查上述代码中属性的原因)
此代码可以简单地用于groovy测试步骤
,或者作为测试用例的分解脚本
如果您需要一种不同的方法来处理所有测试步骤,而不是只处理具有assertionStatus
属性的测试步骤,那么您可以使用下面的代码。但是请注意,第一种方法的优点是,如果需要,可以将其用作groovy测试步骤,另一种对应方法是,以下脚本只能用作tearDownScript
,并且只能在整个测试执行过程中正常工作,因为结果只能在该上下文中使用:
testRunner.results.each{ testStepResult ->
log.info "${testStepResult.testStep.name} ${testStepResult.status}"
}
testStepResult是的一个实例
希望这有帮助,Ohhh,你是对的-我一直在查看测试步骤状态,而实际上它是我需要查看的断言状态。这非常有帮助-我将在接下来的24小时内再次使用代码时尽快将其设置为已回答。感谢you@MistaWizard很高兴能帮助您:)
,问题是当您直接使用groovy testStep中的run
方法运行testStep时,您只能获得testStepResult
。。。如果您想在执行所有测试时执行此操作,我认为这是一种简单的方法:)
。太棒了!我将你的代码复制/粘贴到一个拆卸脚本中,瞧:)我现在在脚本中得到一个“信息状态”log@MistaWizar很高兴能帮助你。:)
@Elaine我为你的案例更新了我的答案,希望这也符合你的要求。