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

У меня есть ответ JSON, из которого я хочу извлечь значение «id транзакции», т. Е. (3159184), и использовать его в моем следующем сэмплере.Может кто-нибудь дать мне регулярное выражение, чтобы извлечь значение для того же.Я искал некоторые решения, но это не похоже на работу

{
    "lock_release_date": "2021-04-03T16:16:59.7800000+00:00",
    "party_id": "13623162",
    "reservation_id": "reserve-1-81b70981-f766-4ca7-a423-1f66ecaa7f2b",
    "reservation_line_items": [
        {
            "extended_properties": null,
            "inventory_pool": "available",
            "lead_type": "Flex",
            "line_item_id": "1",
            "market_id": 491759,
            "market_key": "143278|CA|COBROKE|CITY|FULL",
            "market_name": "143278",
            "market_state_id": "CA",
            "product_name": "Local Expert",
            "product_size": "SOV30",
            "product_type": "Postal Code",
            "reserved_quantity": 0,
            "transaction_id": 3159174
        }
    ],
    "reserved_by": "user1@abc.com"
}

Вот что я пытаюсь в Jmeter

setting

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

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

"transaction_id"\s?:\s?(\d+)

Демо:

enter image description here

где:

  • \s? обозначает необязательный пробел - вот почему ваше выражение не работает
  • \d+ обозначает число

См. Регулярные выражения главу Руководства пользователя JMeter для более подробной информации.


Имейте в виду, что синтаксический анализ JSON с использованием регулярных выражений не самый лучшийидея, рассмотрите возможность использования JSON Extractor вместо этого.Он позволяет извлекать «интересные» значения из JSON с помощью простых JsonPath запросов, которые легче создавать / читать, они более надежны и надежны.Соответствующим запросом JSON Path будет:

$.reservation_line_items[0].transaction_id

enter image description here

Дополнительная информация: Тестирование API с JMeter и JSON Extractor

0 голосов
/ 15 февраля 2019

Простейшее регулярное выражение для извлечения выше:

action_id ": (. +)

Где:

  • () используется для создания группы захвата.
  • . (Точка) соответствует любому символу, кроме разрывов строк.
  • + (плюс) соответствует 1 или более из предыдущего токена.

(. +?) может использоваться для прекращения наблюдения за первымэкземпляр найден.

т.е. ? делает предыдущий квантификатор ленивым, заставляя его соответствовать как можно меньшему числу символов. По умолчанию квантификаторы являются жадными и будут соответствовать столько символовнасколько это возможно.

0 голосов
/ 13 февраля 2019

Используйте JSON Extractor для ответа JSON, а не с помощью экстрактора регулярных выражений.

Используйте выражения пути JSON как $..transaction_id

enter image description here

Результаты:

enter image description here

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