You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SoapUI的TearDown脚本中获取TestCase状态?

解决SoapUI TestCase TearDown脚本获取状态的问题

你之前方法失效的原因

  • 方法1:WsdlTestCase确实没有getTestStepCollection()方法,正确获取步骤集合的方式是testRunner.testCase.testSteps
  • 方法2:TearDown执行阶段,TestCase的状态还未完成最终更新,所以testRunner.status始终返回RUNNING
  • 方法3:RestTestRequestStep本身不提供getStatus()方法,必须通过执行结果对象获取步骤状态

可行解决办法

方法1:直接获取TestCase的最终执行结果状态

// 获取当前TestCase的最新执行结果
def testCaseResult = testRunner.results[-1]
// 提取状态并转为字符串
def testCaseStatus = testCaseResult.status.toString()
log.info "当前TestCase状态:${testCaseStatus}"

此方法直接从执行结果集中取最终状态,能准确拿到PASSED/FAILED等结果。

方法2:遍历TestStep结果判断整体状态

如果需要通过检查每个步骤的执行结果来判定用例状态:

def hasFailed = false
// 遍历当前TestCase的所有步骤
testRunner.testCase.testSteps.each { step ->
    // 获取该步骤的执行结果
    def stepResult = testRunner.getResult(step)
    if (stepResult && stepResult.status == com.eviware.soapui.model.testsuite.TestStepResult.Status.FAILED) {
        hasFailed = true
    }
}
// 根据是否有失败步骤判定用例状态
def testCaseStatus = hasFailed ? "FAILED" : "PASSED"
log.info "当前TestCase状态:${testCaseStatus}"

方法3:SoapUI Pro专属方式(免费版不支持)

如果使用SoapUI Pro,可直接调用TestCase的状态属性:

def testCaseStatus = testRunner.testCase.status.toString()
log.info "当前TestCase状态:${testCaseStatus}"

内容的提问来源于stack exchange,提问作者rAJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 00:48:13