Soapui属性转移JSON if语句

时间:2017-04-24 06:05:31

标签: json groovy soapui

我是soapui的新手,我正在尝试在列表选项中进行属性转移,其中ha selected = true。响应是JSON,我可以选择代码为$.response.optionList[0].options[1].id的元素,而是给出我想要选择的元素编号= true。这是用groovy脚本做的吗?有没有人有任何建议?

{    
    "response": {

        "optionList": [
        {
            "options": [
            {
                "id": 10,
                "selected": false
            },
            {
                "id": 11,
                "selected": true
            }
            ]  
        },
        {
            "options": [            
            {
                "id": 12,
                "selected": false
            }]
        }
        ]
    }
}       

1 个答案:

答案 0 :(得分:1)

您是否在休息请求步骤后使用了属性转移测试步骤?

您可以使用Script Assertion进行剩余请求步骤,以实现和删除属性转移测试步骤。

使用以下脚本:

//check if there is response
assert context.response, 'response is empty or null'
def json = new groovy.json.JsonSlurper().parseText(context.response)
def id
json.response.optionList.each{ optionItem ->
   optionItem.options.each { option ->
     if (option.selected == true) {
        id = option.id
     }
   }
}
log.info "id value when selected is true : ${id}"
context.testCase.setPropertyValue('ID', id?.toString())

如果您需要从之前的步骤响应中访问上述id并在以后的步骤中使用它,请使用属性扩展说${#TestCase#ID}

您可以在线快速尝试上述脚本 Demo