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

soapUI中如何从测试步骤提取请求?Groovy脚本报错求解

soapUI提取测试步骤请求内容的实现方案

报错原因

运行脚本报MissingPropertyException由三个问题直接导致:

  • 脚本中写的test step存在空格,Groovy无法识别这个带空格的非法标识符
  • 没有通过soapUI内置的上下文对象获取测试步骤,脚本运行上下文里不存在直接可用的testStep对象
  • 原脚本直接取properties["Request"].value的写法不符合soapUI的属性调用规范,容易触发空指针

正确实现代码

你的目标测试步骤名称为RESTRequest,如果执行脚本的Groovy步骤和该REST请求步骤在同一个测试用例下,直接使用以下脚本即可:

// 按名称获取目标测试步骤对象
def restStep = testRunner.testCase.getTestStepByName("RESTRequest")
// 提取步骤配置的请求模板内容
def extRequest = restStep.getPropertyValue("Request")
// 打印结果到日志控制台方便校验
log.info "提取到的请求模板内容:{}", extRequest

如果需要提取实际发送时替换完所有参数、属性占位符的真实请求内容,使用以下写法:

def restStep = testRunner.testCase.getTestStepByName("RESTRequest")
// 获取实际发起请求时的完整报文内容
def realRequest = restStep.testRequest.requestContent
log.info "实际发送的请求内容:{}", realRequest

注意事项

  • 如果目标测试步骤和当前Groovy脚本不在同一个测试用例,需要先定位到对应测试用例再取步骤:
    // 先获取目标测试用例,再获取步骤
    def targetCase = testRunner.testCase.testSuite.getTestCaseByName("目标测试用例名称")
    def restStep = targetCase.getTestStepByName("RESTRequest")
    
  • 所有属性取值优先使用getPropertyValue()方法,不要直接操作properties集合,避免属性不存在时抛出空指针异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:06:23