Jmeter - Использование JSON Extractor для получения переменных с тем же именем - PullRequest
0 голосов
/ 06 марта 2020

Это мое JSON:

[
{
    "rooms": [
        {
            "name": "Name1",
            "id": 148,
            "isActive": true,
            "properties": {
            }
        },
        {
            "name": "Name 2",
            "id": 149,
            "isActive": true,
            "properties": {
            }
        },
        {
            "name": "Name 3",
            "id": 150,
            "isActive": true,
            "properties": {
            }
        }
    ],
    "timezone": "America\/New_York",
    "name": "AnotherName",
    "id": 88,
    "isActive": false,
    "properties": {
    }
}]

Чтобы извлечь поле "часовой пояс", я использую: "$ .. часовой пояс" и в ответ получаю: Результат [0] = America / New_York

Использование "$ .. id" вернет:

Результат [0] = 88

Результат [1] = 148

Результат [2] = 149

Результат [3] = 150

Вопрос в том, какой синтаксис использовать для извлечения только Результат [0] = 88 ? Я пробовал несколько доступных вариантов, но безуспешно. Есть идеи?

Ответы [ 2 ]

1 голос
/ 09 марта 2020

Вы используете оператор .. , что означает глубокое сканирование , поэтому JMeter находит все атрибуты id и возвращает все их значения.

Если вам нужен только идентификатор верхнего уровня для первой записи в ответе JSON Массив , вам необходимо явно указать путь к нему, например:

$.[0].id

если вам нужно получить id, где timezone равно America/New_York - соответствующий JSON запрос пути будет:

$..[?(@.timezone == 'America/New_York')].id

Дополнительная информация: JMeter's JSON Path Extractor Плагин - расширенный сценарий использования ios

0 голосов
/ 06 марта 2020

Вы можете использовать $.[*]id, чтобы получить Результат [0] = 88

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