Как обрабатывать несколько совпадений экстракторов в Jmeter - PullRequest
0 голосов
/ 19 сентября 2019

Я использовал экстрактор пути json, чтобы найти несколько совпадений из ответа json.и получил вывод:

IDType_Extract_1={"contentType":"LIVE","id":103}
IDType_Extract_2={"contentType":"CATCH_UP","id":6441631}
IDType_Extract_3={"contentType":"MOVIES","id":129}

Теперь я хочу разделить эти два значения и передать любую случайную пару (contentType,id) в следующем HTTP-запросе jmeter.

Какой постпроцессор я должен использовать и какизвлекать значения.

Я использовал утверждение бобовой оболочки и постпроцессор бобовой оболочки, но не смог его извлечь.

string [] value = vars.get {"IDType_Extract_1"};

  string[] type = value.split{","};

В отладочном сэмплере значение не указывается в переменных.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2019
  1. Ваш синтаксис неправильный, он должен быть

    string [] value = vars.get ("IDType_Extract_1");

  2. Ваш подход неверен, начиная с JMeter 3.1 вы должны использовать JSR223 Test Elements и язык Groovy для сценариев , а Groovy предоставляет класс JsonSlurper , что удобнодля разбора JSON.

Принимая все вышеперечисленное

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

    def randomNumber = org.apache.commons.lang3.RandomUtils.nextInt(1, (vars.get('IDType_Extract_matchNr') as int) + 1)
    def entry = new groovy.json.JsonSlurper().parseText(vars.get('IDType_Extract_' + randomNumber))
    vars.put('contentType', entry.contentType)
    vars.put('id', entry.id as String)
    
  • Вот и все, отнесите случайные извлеченные значения как ${contentType} и ${id}, где это необходимо:

Демонстрация:

enter image description here

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

0 голосов
/ 19 сентября 2019

Вы должны использовать JSON Extractor , либо получить конкретные значения в оригинальном JSON Extractor, добавив к суффиксу выражения .contentType

Другой вариант, чтобы создать новый JSON Extractor, используя существующую переменную JMeter и$.contentType как выражение:

JSON PostProcessor позволяет извлекать данные из ответов JSON с использованием синтаксиса JSON-PATH.Этот постпроцессор очень похож на экстрактор регулярных выражений.Он должен быть размещен как дочерний элемент HTTP Sampler или любого другого сэмплера с ответами.

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