Как извлечь несколько значений JSON из ответа JSON - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь извлечь несколько значений из ответа JSON на моем скрипте jmeter.Ниже приведен пример моего ответа:

{"startDate": "2018-12-10T15: 36: 34.400 + 0000", "userId": "7211111-2fa90", "creationBy": "TEST","note": {"content": "Application Submitted"}, "Type": "SUBMITTED"},

    "currentEventState": "CLOSED",
     {
        "Xxxx": "test",
        "Loc": null,
        "Zipcode": [],
        "Locality": 82,
        "Address": {
            "Add": 12302,
            "Add2": "place",
            "Zip": {
                "Phone": "home",
                "Email": "test@test.com"
            }
        },
        "state": "MD",
        "Cost": "E  "
    },
    "AppID": "cd8d98e6-c2a79",
    "Status": "CLOSED",

}

Я пытаюсь извлечь userid и AppID для случая, если TYPE передан, иСтатус закрыт. Я пытался использовать Json-экстрактор с $. [? (@. Type == "SUBMITTED")]. [*].? (@. Status == "CLOSED"). Userid, APPID, но не смогне получить ожидаемый результат.Кто-нибудь может направить меня в этом.

1 Ответ

0 голосов
/ 11 декабря 2018

Вам нужно использовать встроенный предикат , чтобы объединить 2 предложения и точку с запятой, чтобы сохранить результаты в 2 отдельных переменных JMeter.

  1. Добавить JSON Extractor как дочерний элемент запроса, который возвращает JSON
  2. Настройте его следующим образом:

    • Имена созданных переменных: userid;appid
    • Выражения пути JSON: $..[?(@.Type=='SUBMITTED' && @.Status == 'CLOSED')].userId; $..[?(@.Type=='SUBMITTED' && @.Status == 'CLOSED')].AppID
    • Значения по умолчанию: NA;NA

Здесьдемо одиночного выражения, работающего нормально:

enter image description here

А вот извлеченные значения, сообщаемые Debug Sampler :

enter image description here

...