在groovy soapui中,在testcase级别存储的是Null值,而不是正确的值

在groovy soapui中,在testcase级别存储的是Null值,而不是正确的值,groovy,soapui,Groovy,Soapui,嗨,我一直试图通过groovy在测试用例级别存储值。我也知道这种情况;我是for和if循环,因为它是许多相似的块 以下是答复: "planDetailsList": [ { "ComponentId": "63026", "TypeCode": "P", "SubTypeCode": "A", }, { "ComponentId": "63027",

嗨,我一直试图通过groovy在测试用例级别存储值。我也知道这种情况;我是for和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
}
import groovy.json.JsonSlurper
def ResponseMessage=messageExchange.response.responseContent
def jsonSlurper=new jsonSlurper().parseText(ResponseMessage)
对于(i=0;i

它没有在TestCase级别为ComponentId存储任何(null)值。您能告诉我这里发生了什么错误吗?

您应该能够使用:

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)
}