Выберите случайное имя из ответа JSON в JMeter

#jmeter

Вопрос:

В теле ответа у меня есть следующий JSON, который содержит и идентификатор, и в качестве дочернего элемента имя, и я хочу выбирать случайное имя и соответствующий ему идентификатор каждый раз, когда я запускаю свой тест, как это сделать?

Возможно, через постпроцессор или экстрактор json, я новичок в JMeter.

  {
    "entities": {
        "chairs": {
            "a99a921e-9ced-43eb-8521-a8e972c5afee": {
                "id": "a99a921e-9ced-43eb-8521-a8e972c5afee",
                "accountId": "02a39418-2936-4696-9f3f-02f503128ac7",
                "description": null,
                "isActive": true,
                "pmsId": "5079767850816079897",
                "name": "PranayOP",
                "createdAt": "2021-03-18T17:46:53.253Z",
                "updatedAt": "2021-03-18T17:46:53.253Z",
                "deletedAt": null
            },
            "eb125d3a-739f-479c-b803-dbffb6a871d0": {
                "id": "eb125d3a-739f-479c-b803-dbffb6a871d0",
                "accountId": "02a39418-2936-4696-9f3f-02f503128ac7",
                "description": null,
                "isActive": true,
                "pmsId": "-3332289498024566266",
                "name": "OVERFLOW",
                "createdAt": "2021-03-16T00:42:35.115Z",
                "updatedAt": "2021-03-16T00:42:35.115Z",
                "deletedAt": null
            },
            "36891051-1edf-46ea-a167-68d39a8a70f5": {
                "id": "36891051-1edf-46ea-a167-68d39a8a70f5",
                "accountId": "02a39418-2936-4696-9f3f-02f503128ac7",
                "description": null,
                "isActive": true,
                "pmsId": "-4453494259576621766",
                "name": "OP55",
                "createdAt": "2021-03-20T02:19:00.494Z",
                "updatedAt": "2021-03-20T02:19:00.494Z",
                "deletedAt": null
            },
            "85a2564e-7cd1-4e69-be5d-a979b5e56cd5": {
                "id": "85a2564e-7cd1-4e69-be5d-a979b5e56cd5",
                "accountId": "02a39418-2936-4696-9f3f-02f503128ac7",
                "description": null,
                "isActive": true,
                "pmsId": "8283273375660346038",
                "name": "OP02",
                "createdAt": "2021-03-16T00:42:34.832Z",
                "updatedAt": "2021-03-16T00:42:34.832Z",
                "deletedAt": null
            }
        }
    },
    "result": [
        "a99a921e-9ced-43eb-8521-a8e972c5afee",
        "eb125d3a-739f-479c-b803-dbffb6a871d0",
        "36891051-1edf-46ea-a167-68d39a8a70f5",
        "85a2564e-7cd1-4e69-be5d-a979b5e56cd5"
    ]
}
 

Ответ №1:

  1. Добавьте JSON JMESpath Extractor в качестве дочернего элемента запроса, который возвращает указанный выше JSON
  2. Настройте его следующим образом:

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

    вот текстовое представление запроса JMESpath на всякий случай:

     entities.chairs.*.[name,id]
     
  3. Вот и все, каждый раз он будет получать случайную комбинацию имени/идентификатора в виде ["OP55","36891051-1edf-46ea-a167-68d39a8a70f5"]

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

    на которые ${nameAndId} при необходимости можно ссылаться

Дополнительная информация: JMeter JSON JMESpath Экстрактор и утверждение: Руководство

Комментарии:

1. Спасибо, Дмитрий, но результат приходит с [«OP55″,»36891051-1edf-46ea-a167-68d39a8a70f5»], как получить только значения ? пробовал с ${}, но мне нужны только OP55 и 36891051-1edf-46ea-a167-68d39a8a70f5