如何在REST请求步骤后通过Groovy脚本为TestCase设置自定义属性
在SoapUI中通过Groovy脚本获取上一步请求的响应并设置自定义属性
核心实现步骤
- 定位上一步Rest Request测试步骤
可以通过步骤名称或索引两种方式定位,名称方式更稳定,索引方式适合步骤顺序固定的场景。 - 提取该步骤的响应内容
通过步骤对象的内置方法获取响应文本,为后续解析做准备。 - 解析JSON并提取目标值
用你已掌握的JsonSlurper工具解析响应,提取需要的字段值。 - 设置TestCase/Test Suite自定义属性
调用你熟悉的setPropertyValue方法完成属性赋值。
完整Groovy脚本示例
import groovy.json.JsonSlurper // 方式1:通过步骤名称获取(推荐,不受步骤顺序变动影响) def restStep = testRunner.testCase.getTestStepByName("你的Rest Request步骤名称") // 方式2:通过索引获取(当前是第二步,上一步索引为0) // def restStep = testRunner.testCase.getTestStepAt(context.currentStepIndex - 1) // 非空判断,避免响应为空时报错 if (restStep.getResponse() != null) { // 获取上一步的响应文本 def responseText = restStep.getResponse().getContentAsString() // 解析JSON响应 def jsonSlurper = new JsonSlurper() def config = jsonSlurper.parseText(responseText) def someValue = config.apiVals.someJSONProperty[0].id as String // 设置TestCase的自定义属性 testRunner.testCase.setPropertyValue("someName", someValue) // 如需设置Test Suite属性,替换为下面的代码 // testRunner.testCase.testSuite.setPropertyValue("suiteSomeName", someValue) } else { log.error("上一步Rest Request未返回有效响应") }
注意事项
- 请将代码中的
你的Rest Request步骤名称替换为实际的测试步骤名称。 - 如果接口响应结构有变动,需要同步调整
config.apiVals.someJSONProperty[0].id这部分的字段路径。
内容的提问来源于stack exchange,提问作者oldcode
相关产品推荐
相关产品推荐

