JMeter — извлечение данных из ответа с условием (JSON)

#json #jmeter

#json #jметр

Вопрос:

Мне нужно извлечь определенное значение из ответа JSON (или текста) с условием (другое значение JSON):

У меня есть такой ответ:

 {
    "availabilityPercentage": "0.7713",
    "availability": [
        {
            "date": "2021-03-05",
            "estimators": [
                {
                    "skills": [
                        "Non-Driveable"
                    ],
                    "estimatorId": "99999999-0000-0000-9999-000000000002",
                    "timeSlots": [
                        {
                            "timeFrom": "08:00",
                            "isAvailable": false,
                            "timeTo": "08:30",
                            "slot": "MjAyMS0wMy0wNSUwODowMDowMCUwODozMDowMA"
                        },
                        {
                            "timeFrom": "08:30",
                            "isAvailable": true,
                            "timeTo": "09:00",
                            "slot": "MjAyMS0wMy0wNSUwODozMDowMCUwOTowMDowMA"
                        },
                        {
                            "timeFrom": "09:00",
                            "isAvailable": false,
                            "timeTo": "09:30",
                            "slot": "MjAyMS0wMy0wNSUwOTowMDowMCUwOTozMDowMA"
                        }
                        }
                    ]
                }
            ]
        }
    ] }
 

И я хочу извлечь только значение «slot», когда значение «isAvailable» равно true.

Как я могу это сделать с помощью JMeter?

Заранее благодарю.

С уважением

Ответ №1:

Вы можете использовать JSON JMESpath Extractor который позволяет выполнять произвольные запросы JMESpath что вероятно является наиболее мощным способом получения данных из ответов JSON

Пример запроса JMESpath:

  availability[*].estimators[*].timeSlots[?isAvailable==`true`].slot | [0] | [0]
 

ДЕМОНСТРАЦИЯ:

введите описание изображения здесь

Дополнительная информация: JMeter JSON JMESpath Extractor и Assertion: руководство

Комментарии:

1. Спасибо @Dmitri T, который также сработал для меня.

Ответ №2:

Пожалуйста, попробуйте следующее, используйте JSON extractor и поставьте это условие.

$..[?(@.isAvailable == true)].slot

введите описание изображения здесь

Также, пожалуйста, проверьте, что ваш JSON неправильно отформатирован