Testing 如何从SOAPUITestSuite拆卸脚本获取测试运行断言结果(状态和名称)?

Testing 如何从SOAPUITestSuite拆卸脚本获取测试运行断言结果(状态和名称)?,testing,groovy,soapui,Testing,Groovy,Soapui,我很难从SOAP UI中testsuite拆卸级别的测试步骤中获得断言结果。我查看了Javadoc并尝试使用getAssertionList(),但是调用它会导致错误。到目前为止,我的Groovy脚本如下: def failedTestCases = 0 def successTestCases = 0 def failedTestSteps = 0 def successTestSteps = 0 runner.results.each { testCaseResult ->

我很难从SOAP UI中testsuite拆卸级别的测试步骤中获得断言结果。我查看了Javadoc并尝试使用
getAssertionList()
,但是调用它会导致错误。到目前为止,我的Groovy脚本如下:

def failedTestCases = 0
def successTestCases = 0
def failedTestSteps = 0
def successTestSteps = 0

runner.results.each { testCaseResult ->
    def caseName = testCaseResult.testCase.name
        def caseStatus = testCaseResult.status.toString()
        if(caseStatus == 'FAILED'){failedTestCases ++}
     else {successTestCases ++}

     log.info "Test Case: $caseName $caseStatus" 

     testCaseResult.results.each{ testStepResults ->
        testStepResults.messages.each() { msg -> log.info msg }
        def stepName = testStepResults.testStep.name
        def stepStatus =  testStepResults.status.toString()
        if(stepStatus == 'FAILED'){failedTestSteps ++}
        else{successTestSteps ++}

        log.info "Test Step: $stepName $stepStatus"

        def testStep = testStepResults.testStep
        log.info "XX" + testStep.name
        testStep.getAssertionList().each{
            log.info "$it.label - $it.status"   
        }
    }
}

log.info "Total test cases:" + (successTestCases + failedTestCases).toString()
log.info "Total succeeded: $successTestCases"
log.info "Total failed: $failedTestCases"
log.info "Total test step count:" + (successTestSteps + failedTestSteps).toString()
log.info "Total succeeded: $successTestSteps"
log.info "Total failed: $failedTestSteps"
我能够看到XX[TestStepName],但没有来自日志项的断言或结果,但我得到了以下错误:


2015年11月6日星期五10:13:36美国东部时间:错误:发生错误[没有方法签名:com.eviware.soapui.impl.wsdl.teststeps.wsdlPropertiestStep.getAssertionList()适用于参数类型:()值:[],有关详细信息,请参阅错误日志。

对于SOAP UI测试步骤,步骤的类型很重要。我对soapuiapi不太熟悉,但有些测试用例似乎不支持
getAssertionList()
调用。因此,我们在得到断言之前检查测试类型,这似乎效果良好

这是我最后的剧本。看来情况不错。现在,我可以获得一个自制报告的测试用例、测试步骤和断言。我使用的是SOAPUI免费版,所以我将使用它来输出XML报告

def failedTestCases = 0
def successTestCases = 0
def failedTestSteps = 0
def successTestSteps = 0
def failedAssertions = 0
def successAssertions = 0

runner.results.each { testCaseResult ->
    def caseName = testCaseResult.testCase.name
        def caseStatus = testCaseResult.status.toString()
        if(caseStatus == 'FAILED'){failedTestCases ++}
     else {successTestCases ++}

     log.info "Test Case: $caseName $caseStatus" 

     testCaseResult.results.each{ testStepResults ->
        testStepResults.messages.each() { msg -> log.info msg }
        def stepName = testStepResults.testStep.name
        def stepStatus =  testStepResults.status.toString()
        if(stepStatus == 'FAILED'){failedTestSteps ++}
        else{successTestSteps ++}

        log.info "Test Step: $stepName $stepStatus"

          //Some test steps don't have assertions, so calling getAssertionList() blows up
          //We want WSDLTestStep (request)
        if (testStepResults.testStep.config.type == 'request')
        {
            testStepResults.testStep.getAssertionList().each{
                def assertLabel = it.label
                def assertStatus = it.status
                if (assertStatus == 'VALID') { successAssertions ++ }
                else {failedAssertions ++ }
                    log.info "$it.label - $it.status"   
            }
        }
    }
}

log.info "Total test case count:" + (successTestCases + failedTestCases).toString()
log.info "Total test cases succeeded: $successTestCases"
log.info "Total test cases failed: $failedTestCases"

log.info "Total test step count:" + (successTestSteps + failedTestSteps).toString()
log.info "Total test steps succeeded: $successTestSteps"
log.info "Total test steps failed: $failedTestSteps"

log.info "Total test assertion count:" + (successAssertions + failedAssertions).toString()
log.info "Total test assertions succeeded: $successAssertions"
log.info "Total test assertions failed: $failedAssertions"

对于soapui测试步骤,步骤的类型很重要。我对soapuiapi不太熟悉,但有些测试用例似乎不支持
getAssertionList()
调用。因此,我们在得到断言之前检查测试类型,这似乎效果良好

这是我最后的剧本。看来情况不错。现在,我可以获得一个自制报告的测试用例、测试步骤和断言。我使用的是SOAPUI免费版,所以我将使用它来输出XML报告

def failedTestCases = 0
def successTestCases = 0
def failedTestSteps = 0
def successTestSteps = 0
def failedAssertions = 0
def successAssertions = 0

runner.results.each { testCaseResult ->
    def caseName = testCaseResult.testCase.name
        def caseStatus = testCaseResult.status.toString()
        if(caseStatus == 'FAILED'){failedTestCases ++}
     else {successTestCases ++}

     log.info "Test Case: $caseName $caseStatus" 

     testCaseResult.results.each{ testStepResults ->
        testStepResults.messages.each() { msg -> log.info msg }
        def stepName = testStepResults.testStep.name
        def stepStatus =  testStepResults.status.toString()
        if(stepStatus == 'FAILED'){failedTestSteps ++}
        else{successTestSteps ++}

        log.info "Test Step: $stepName $stepStatus"

          //Some test steps don't have assertions, so calling getAssertionList() blows up
          //We want WSDLTestStep (request)
        if (testStepResults.testStep.config.type == 'request')
        {
            testStepResults.testStep.getAssertionList().each{
                def assertLabel = it.label
                def assertStatus = it.status
                if (assertStatus == 'VALID') { successAssertions ++ }
                else {failedAssertions ++ }
                    log.info "$it.label - $it.status"   
            }
        }
    }
}

log.info "Total test case count:" + (successTestCases + failedTestCases).toString()
log.info "Total test cases succeeded: $successTestCases"
log.info "Total test cases failed: $failedTestCases"

log.info "Total test step count:" + (successTestSteps + failedTestSteps).toString()
log.info "Total test steps succeeded: $successTestSteps"
log.info "Total test steps failed: $failedTestSteps"

log.info "Total test assertion count:" + (successAssertions + failedAssertions).toString()
log.info "Total test assertions succeeded: $successAssertions"
log.info "Total test assertions failed: $failedAssertions"

我们可以得到实际值和期望值吗?我们可以得到实际值和期望值吗?