Jmeter - Как проверить части ответа JSON - PullRequest
0 голосов
/ 18 мая 2018

У меня есть следующий json:

{
"content":
[
    {
        "id":1,
        "userId":2,
        "storeId":8,
        "userFirstName":"Max",
        "userLastName":"Mustermann",
       "city":"Berlin",
        "spendQuantity":100,

        "paymentStatus":"UNPAID",
        "userBalanceStatus":null,
        "rateObject":
        {
            "identifier":23,
            "id":"432",
            "rate":"1.9345345",
            "symbol":"USD",
            "rank":2,

        }
    },
    {
        "id":2,
        "userId":2,
        "storeId":3,
        "userFirstName":"Newman",
        "userLastName":"Mustermann",
       "city":"Berlin",
        "spendQuantity":1000,

        "paymentStatus":"UNPAID",
        "userBalanceStatus":null,
        "rateObject":
        {
            "identifier":3,
            "id":"234",
              "rate":"1.922222245345",
            "symbol":"USD",
            "rank":2,

        }
    },
    {
        "id":3,
        "userId":2,
        "storeId":3,
        "userFirstName":"Newman",
        "userLastName":"Mustermann",
       "city":"Munich",
        "spendQuantity":3000,

        "paymentStatus":"UNPAID",
        "userBalanceStatus":null,
        "rateObject":
        {
            "identifier":2332,
            "id":"234",
               "rate":"3.234234",
            "symbol":"USD",
            "rank":2,

        }
    },
    {
        "id":4,
        "userId":2,
        "storeId":3,
        "userFirstName":"Newman",
        "userLastName":"Mustermann",
       "city":"Essen",
        "spendQuantity":4000,

        "paymentStatus":"UNPAID",
        "userBalanceStatus":null,
        "rateObject":
        {
            "identifier":234,
            "id":"234",
               "rate":"333.234234",
            "symbol":"USD",
            "rank":2,

        }
    }

}

Но мне нужно проверить это частично - только поля во вложенных jsons, где город Берлин или Эссен, но безrateObject (мне не нужно проверять эту часть).Другими словами, мне нужно проверить вложенные jsons с ids-1,2,4 - все поля, без информации в rateObject.

1 Ответ

0 голосов
/ 21 мая 2018

Частичный ответ и предложение:

  1. Мы можем применить условие фильтра в запросе JSON для извлечения совпадающих данных.

Например: чтобы получить идентификаторуказанный город,

JSON-запрос:

$.content[?(@.city=="Berlin" || @.city=="Essen")].id

Вывод:

[
    1,
    2,
    4
]

Аналогично можно утверждатьвсе обязательные поля с использованием фильтра JSON Query.JMeter JSON Extractor будет предоставлять только одно значение за раз. Итак, вы можете либо добавить некоторую логику для проверки всех вхождений, либо добавить несколько проверок, указав индекс id ($ .content [? (@. City == "Berlin"|| @ .city ==" Essen ")]. id [0] -> Идентификатор первого вхождения)

Если вы хотите проверить несколько полей, то вы можете написать собственный скрипт в Bean Shell Post Processor (см. Ссылку ниже, и вы получите некоторую идею)

Извлечение JSONОтвет с использованием постпроцессора Bean Shell

Если вы используете постпроцессор Bean Shell, тогда необходимые jav-файлы jar должны быть помещены в JMeter ClassPath (папка: apache-jmeter-4.0 \ lib \ ext)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...