Извлечь значения из строки json с помощью Regex

Я получаю ниже ответ от одного веб-запроса HTTP. и я хочу сохранить значение ConnectionToken, значения ConnectionId в отдельных переменных, используя один постпроцессор извлечения регулярных выражений в jmeter.

Есть ли способ или альтернатива сделать это?

{"Url":"/Administration/signalr","ConnectionToken":"/75qb328dXVeojvZYoX34bkWCnji55Zp5+eGEMbas4q0+qdcLNwTRMGHjZVwXgKIgixUc0sxhF659A6ttgg3xPkGOXQquii1sOscozYeEaBpcMmVFPQkeKnxwTf2Yjp007gbag==","ConnectionId":"1dc235ed-6f1f-41eb-bdfd-d0b8625aead6","KeepAliveTimeout":4.0,"DisconnectTimeout":6.0,"ConnectionTimeout":110.0,"TryWebSockets":true,"ProtocolVersion":"1.5","TransportConnectTimeout":5.0,"LongPollDelay":0.0}

person Dingo    schedule 04.10.2019    source источник
comment
используйте 1_   -  person Mobrine Hayde    schedule 04.10.2019


Ответы (2)


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

В вашем случае соответствующее выражение JsonPath будет таким же простым, как:

$.ConnectionToken

Демо (предполагается, что "JsonPath Tester" больше слушателя View Tree Results)

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

person Dmitri T    schedule 04.10.2019

Вы можете добиться этого, используя 2 постпроцессора JSON Extractor. Добавьте оба JSON Extractor PostProcessor в качестве дочерних элементов вашего HTTP-запроса.

  1. Чтобы извлечь ConnectionID: используйте следующее выражение

$.ConnectionId

  1. Чтобы извлечь ConnectionToken : используйте следующее выражение

$.ConnectionToken

  1. После этого вы можете получить доступ к идентификатору и токену из переменной ${ID} and ${Token} соответственно.

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

person SAIR    schedule 04.10.2019