JMeter передает значение ответа JSON на следующий запрос

Я использую JMETER для тестирования веб-приложения.

Сначала я выполняю запрос http GET, который возвращает массив JSON, например:

[
  {
    "key1": 
    {
      "subKey": 
      [
        9.120968,
        39.255417
      ]
    },
    key2 : 1

  },
  {
    "key1": 
    {
      "subKey": 
      [
        9.123852,
        39.243237
      ]
    },
    key2 : 10
  }

]

В основном я хочу случайным образом взять один элемент, взять элементы key1 и создать 2 переменные в JMeter, которые будут использоваться для следующего запроса (если случайным образом это невозможно, чем только 1-й элемент).

Я попытался использовать JSON Extractor со следующими настройками (в примере показан случай с одной переменной):

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

и в следующем HTTP-запросе GET, ссылающемся на параметр как ${var1}.

Как установить JSON Extractor для извлечения значения, сохранить его в переменной JMeter для использования в следующем HTTP-запросе GET?


person Francesco Boi    schedule 30.11.2018    source источник


Ответы (2)


  1. Правильный запрос JSON Path будет выглядеть примерно так:

    $..key1.subKey[${__Random(0,1,)}]
    
  2. Вам нужно переключить значение Apply to либо на Main sample only, либо на Main sample and sub-samples

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

В приведенной выше настройке:

  • Match No: 0 — указывает JMeter получить случайное значение из подраздела key1
  • ${__Random(0,1,)} — получает случайный элемент из массива, т.е. 9.120968 или 39.255417

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

person Dmitri T    schedule 03.12.2018
comment
Извините, возможно, мой вопрос был недостаточно ясен. Я хочу выбрать случайный элемент из самого внешнего массива, чтобы он выглядел как { "key1": { "subKey": [ 9.120968, 39.255417 ] }, key2 : 1 . }, и отсюда извлечь оба значения из subKey - person Francesco Boi; 03.12.2018
comment
Тогда переходите только к $..key1.subKey - person Dmitri T; 03.12.2018
comment
Я оставил 0, чтобы извлечь случайный элемент, и это кажется правильным. - person Francesco Boi; 03.12.2018

Параметр «Имя переменной JMeter для использования», который вы там включили, означает, что вы будете проверять содержимое этой переменной ВМЕСТО результата выборки.

Таким образом, исправление очевидно: если вы собираетесь извлечь то, что вы извлекаете из результата Sample, измените его обратно на него.

PS Если вы намерены наоборот (обработать содержимое переменной, а не образец результата) - дайте мне знать, пожалуйста.

person Yuri G    schedule 30.11.2018