Регулярное выражение для извлечения цифр идет после 36-го символа в строке - PullRequest
0 голосов
/ 18 марта 2019

В jmeter мне нужно извлечь цифры, которые идут после 36-го символа.

Пример

Response:  {"data":{"paymentId":"DOM1234567890111243"}}

Мне нужно извлечь: 11243 (иногда это будет только 1 или 2 или 3или 4 цифры)

Правая граница: DOM12345678901 Также продолжает изменяться. Но длина правой границы будет всегда составлять 36 символов.

Любая помощь будет высоко оценена.

Ответы [ 2 ]

2 голосов
/ 18 марта 2019

Ваши данные ответа кажутся JSON , поэтому я бы не стал полагаться на эти "36 символов", поскольку их формат может отличаться.

Я бы предложил сначала извлечь это значение paymentId, а затем применить регулярное выражение к этому биту DOMxxx.

  1. Добавить JSR223 PostProcessor как дочерний элемент запроса, который возвращает вышеуказанные данные
  2. Поместить следующий код в область «Сценарий»:

    def dom = new groovy.json.JsonSlurper().parse(prev.getResponseData()).data.paymentId
    log.info("DOM: " + dom)
    def myValue = ((dom =~ ".{14}(\\d+)")[0][1]) as String
    log.info("myValue: " + myValue)
    
    vars.put("myValue", myValue)
    
  3. Вот и все, вы должны иметь доступ к извлеченным данным как ${myValue}, где это необходимо.

    enter image description here

Дополнительная информация:

1 голос
/ 18 марта 2019

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

.{36}(\d+)

Первой группой этого регулярного выражения будет искомое число.

Тест и объяснение: https://regex101.com/r/iDOO8T/2

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