2015-04-15 3 views
1

Я использую jmeter для тестирования REST. Я сделал запрос HTTP, и это данные ответа:Regex HTTP Response Body Message

{"id":11,"name":"value","password":null,"status":"ACTIVE","lastIp":"0.0.0.0","lastLogin":null,"addedDate":1429090984000} 

мне нужно только идентификатор (который является 11) в

{"id":11,.... 

Я использую ниже REGEX:

([0-9].+?) 

Он работает отлично, но это будет проблемой, если мой идентификатор более 2 цифр. Мне нужно изменить REGEX на:

([0-9][0-9].+?) 

Есть ли какой-либо динамический REGEX для моей проблемы. Спасибо за Ваше внимание.

С уважением, Stefio

+0

Зачем использовать регулярное выражение? это ограничение jmeter (я с ним никогда не работал)? ответ находится в JSON, у вас есть данные, готовые в парах ключ-значение, обработчик JSON будет намного более подходящим – cypherabe

ответ

2

Если вы хотите любое целое число между {"id": и , с помощью следующей Регулярное выражение:

{"id":(\d+), 

Однако более разумный способ иметь дело с данными JSON может быть JSON Path Extractor (доступно через JMeter Plugins), идя вперед th вариант может быть намного проще использовать против сложного JSON.

См. Руководство Using the XPath Extractor in JMeter (прокрутите вниз до «Разбор JSON»), чтобы узнать больше о синтаксисе и вариантах использования.

0

Вы можете использовать квантор, как это:

([0-9]{2,}.+?) 

Он будет поймать 2 или более цифр, а затем любой символ, 1 или более раз. Если вы хотите, чтобы никакие другие символы после цифр, используйте * вместо +:

([0-9]{2,}.*?) 

Regex demo

1

Я предлагаю использовать следующее регулярное выражение:

"id":([^,]*), 

Это первая будет найти «ID»: а затем искать что-нибудь, что не запятая, пока он не найдет запятой. Обратите внимание, что группировка символов находится только вокруг значения идентификатора.

Это будет работать для ЛЮБОЙ длины ID.

Edit: Та же концепция работает практически в любых данных в формате JSON, например, где указана стоимость:

"key":"([^"]*)" 

Это регулярное выражение будет извлекать значение из данного ключа, если значение цитируются и не содержит кавычек. Сначала он находит «ключ»: и затем сопоставляет все, что не является цитатой, до следующей цитаты.