嗨,我一直在尝试通过常规在测试用例级别存储价值。我也知道情况。而我赞成和if循环,因为它是许多类似的块。
以下是响应:
"planDetailsList": [
{
"ComponentId": "63026",
"TypeCode": "P",
"SubTypeCode": "A",
},
{
"ComponentId": "63027",
"TypeCode": "P",
"SubTypeCode": "B"
},
{
"ComponentId": "63029",
"TypeCode": "P",
"SubTypeCode": "C"
},
{
"ComponentId": "63030",
"TypeCode": "P",
"SubTypeCode": "D"
}
]
我正在使用以下脚本:
import groovy.json.JsonSlurper
def ResponseMessage = messageExchange.response.responseContent
def jsonSlurper = new JsonSlurper().parseText(ResponseMessage)
for(i=0; i < jsonSlurper.planDetailsList.size(); i++){
if(jsonSlurper.planDetailsList[i].SubTypeCode == "C"){
def x = context.testCase.setPropertyValue('CmpnntId_H', jsonSlurper.planDetailsList[i].ComponentId.toString())
log.info x
}
它不在TestCase级别为ComponentId存储任何(空)值。你能告诉我这里出了什么问题吗?
答案 0 :(得分:0)
您应该可以使用:
def json = messageExchange.response.responseContent
def id = new JsonSlurper().parseText(json).planDetailsList.find { it.SubTypeCode == "C" }?.ComponentId
if (id) {
context.testCase.setPropertyValue('CmpnntId_H', id)
}