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

如何在SoapUI中通过脚本断言实现请求失败时终止测试用例执行

停止SoapUI测试用例在SOAP请求非200状态时继续执行

刚好碰到过类似的需求,给你一个完美的解决方案——直接把Groovy代码放到目标SOAP请求的Script Assertion里,不用额外添加测试步骤,就能实现当请求返回非HTTP/1.1 200 OK状态时,立即终止当前测试用例,不再运行后续步骤。

具体实现代码

把这段代码粘贴到你的SOAP请求的Script Assertion中(右键请求 → Add Assertion → 选择Script Assertion):

// 获取当前请求的响应状态头
def headers = context.response.responseHeaders['#status#']
// 检查响应状态是否为200 OK
if (!headers.contains("HTTP/1.1 200 OK")) {
    // 标记测试用例失败并输出提示
    testRunner.fail("请求失败,返回状态:${headers}")
    testRunner.fail("当前测试用例的后续步骤将不再执行...")
}

代码说明

  • 用context.response直接获取当前请求的响应,比通过测试步骤名称查找更简洁,也避免了硬编码测试步骤名的问题
  • 当状态不符合预期时,testRunner.fail()不仅会标记测试用例为失败状态,还会自动停止当前测试用例中后续所有步骤的执行,完全满足你的需求
  • 整个逻辑嵌入在请求的断言里,不需要额外增加独立的Groovy测试步骤,保持测试结构的简洁性

更灵活的状态码判断方式

如果你的环境中状态头格式可能有差异(比如部分场景返回HTTP/1.1 200而不带OK),可以直接判断状态码,这样兼容性更好:

// 获取响应状态码
def statusCode = context.response.statusCode
// 检查状态码是否为200
if (statusCode != 200) {
    testRunner.fail("请求失败,状态码:${statusCode}")
    testRunner.fail("当前测试用例的后续步骤将不再执行...")
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:04:55