在 JSONPath SoapUI 中检索信息

Retrieve information in JSONPath SoapUI

我在 SoapUI 中有一个 JSON 响应,如下所示:

{
  "civilite" : "1" ,
  "nom" : "Fitz",
  "prenom" : "Quinn",
  "dateN" : "07/10/1953"
}

但我只想使用 JsonPath 检索此数据的一部分,所以我可以这样:

{
  "nom" : "Fitz",
  "prenom" : "Quinn"
}

有没有办法应用 JsonPath 表达式来检索此信息?

试试这个

input = {
  "civilite" : "1" ,
  "nom" : "Fitz",
  "prenom" : "Quinn",
  "dateN" : "07/10/1953"
}

output ={};

 input.reduce(function (result, currentObject) {
            output = {
                    nom: currentObject.nom,
                    prenom: currentObject.prenom
                };

                return output;
            }, output);

对于第一个请求步骤,添加 Script Assertion 并使用以下脚本。该脚本提取 nomprenom 值,并使用给定的 属性 名称在测试用例级别自定义属性中设置它们。使用 Script Assertion,可以避免额外的 Groovy Script 测试步骤。

然后在接下来的测试步骤中,使用属性扩展,这样soapui会自动将这些值替换为实际值。

脚本断言:

//Check if the response is non empty or null
assert context.response

//Parse Json
def parsedJson = new groovy.json.JsonSlurper().parseText(context.response)
log.info "Nom: ${​parsedJson.nom}"
log.info "Prenom: ${parsedJson.prenom​}"

//assert if nom and prenom are not empty
assert parsedJson.nom, "nom is null or empty in the response"
assert parsedJson.prenom, "prenom is null or empty in the response"

//Set the retrieved values at test case level properties NOM, PRENOM
context.testCase.setPropertyValue('NOM', parsedJson.nom as String)
context.testCase.setPropertyValue('PRENOM', parsedJson.prenom as String)

属性 Expansion

改变第二步请求内容如下
{
  "nom" : "${#TestCase#NOM}",
  "prenom" : "${#TestCase#PRENOM}"
}