JSON извлечь уникальные данные - Jmeter - PullRequest
1 голос
/ 18 марта 2019

У меня есть набор запросов в моей группе потоков, в котором первый запрос будет вводить данные для второго запроса.Я использую JSON Extractor (матч № 0), чтобы извлечь значение из списка.Я хочу убедиться, что те же данные, извлеченные в потоке 1, не были получены в последующих запусках потока.Подскажите, пожалуйста, как с этим справиться.

1 Ответ

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

Согласно документации JSON Extractor

Если запрос JSON Path приводит ко многим результатам, вы можете выбрать, какие из них извлечь в качестве переменных:

0: означает случайный (значение по умолчанию)

«Случайный» не гарантирует уникальность, поэтому, если вам нужны уникальные данные, рассмотрите возможность увеличениязначение в этом поле «Match No».

Пример настройки:

  1. Учитывая следующее JSON

    {
        "store": {
            "book": [
                {
                    "category": "reference",
                    "author": "Nigel Rees",
                    "title": "Sayings of the Century",
                    "price": 8.95
                },
                {
                    "category": "fiction",
                    "author": "Evelyn Waugh",
                    "title": "Sword of Honour",
                    "price": 12.99
                },
                {
                    "category": "fiction",
                    "author": "Herman Melville",
                    "title": "Moby Dick",
                    "isbn": "0-553-21311-3",
                    "price": 8.99
                },
                {
                    "category": "fiction",
                    "author": "J. R. R. Tolkien",
                    "title": "The Lord of the Rings",
                    "isbn": "0-395-19395-8",
                    "price": 22.99
                }
            ],
            "bicycle": {
                "color": "red",
                "price": 19.95
            }
        },
        "expensive": 10
    }
    
  2. Предположим, вы хотите использовать уникальный заголовок книги,т.е.

    • Sayings of the Century - для 1-й итерации
    • Sword of Honour - для 2-й итерации
    • и т. д.
  3. Изменить значение поля «Match No», чтобы оно выглядело следующим образом:

    ${__intSum(${__jm__Thread Group__idx},1,)}
    

    , где __jm__Thread Group__idx - это предварительно определенная переменная, доступная с JMeter 4.0 , которая возвращает текущий ThreadГруппа итерация и __ intSum () - это функция JMeter, которая добавляет 1 к номеру итерации (поскольку он начинается с нуля)

    полная конфигурация JSON Extractor будет выглядеть примерно так:

    enter image description here

  4. Вот и все, теперь вы уверены, что новое значение выбирается для каждой итерации группы потоков, это можно проверить с помощью то есть View Results Tree listener.

    enter image description here

...