在groovy soapui中,在测试用例级别存储了空值而不是适当的值

时间:2018-07-03 09:45:56

标签: groovy soapui

嗨,我一直在尝试通过常规在测试用例级别存储价值。我也知道情况。而我赞成和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存储任何(空)值。你能告诉我这里出了什么问题吗?

1 个答案:

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