Параметризация тела POST в JMeter HTTP POST

Я использую Apache JMeter для запуска нескольких тестов производительности RESTFUL API для приложения, которое мы разработали. У меня есть конечная точка «api / create / empListJob», которая в основном добавляет одну или несколько записей сотрудников в MongoDB. Полезные данные для вызова POST выглядят следующим образом:

{
        "employeeList": [
            {
                "first_name": "josh",
                "last_name": "don",
                "age": "25",
                "address": {
                    "street1": "xyz",
                    "street2": "apt-10",
                    "city" : "def",
                    "state" : "CA",
                    "zip" : "95055"
                },
                "deptType": {
                    "deptID": "1",
                    "deptName": "R&D"
                }
            },
            {
                "first_name": "mary",
                "last_name": "jane",
                "age": "22",
                "address": {
                    "street1": "zzz",
                    "street2": "apt-15",
                    "city" : "yyy",
                    "state" : "CA",
                    "zip" : "95054"
                },
                "deptType": {
                    "deptID": "2",
                    "deptName": "HR"
                }
            }
        ]
    }

Как видите, полезная нагрузка принимает список данных о сотрудниках, и в нем должна быть хотя бы одна запись о сотруднике. У меня есть требование, в котором я хочу, чтобы группа потоков JMeter имела 10 потоков, и каждый из этих потоков должен выполнять параллельный POST для "api / create / empListJob", чтобы в теле было 10 уникальных записей о сотрудниках, таким образом создавая в общей сложности 100 записей. . Как лучше всего параметризовать полезную нагрузку?


person Varun    schedule 24.08.2017    source источник


Ответы (1)


Взгляните на функции JMeter, например:

  • __threadNum () - возвращает номер текущего потока (виртуального пользователя)
  • __Random () - возвращает случайное число в заданном диапазоне.
  • __RandomString () - возвращает случайную строку из указанных входных символов.
  • __UUID () - возвращает случайный структура GUID

Так, например, если вы измените свою полезную нагрузку JSON, чтобы она выглядела так:

"employeeList": [
  {
      "first_name": "josh-${__threadNum}",
      "last_name": "don-${__threadNum}",
      "age": "25",
      "address": {
          "street1": "xyz",
          "street2": "apt-10",
          "city" : "def",
          "state" : "CA",
          "zip" : "95055"
      },
      "deptType": {
          "deptID": "1",
          "deptName": "R&D"
      }
  },
  {
      "first_name": "mary-${__threadNum}",
      "last_name": "jane-${__threadNum}",
      "age": "22",
      "address": {
          "street1": "zzz",
          "street2": "apt-15",
          "city" : "yyy",
          "state" : "CA",
          "zip" : "95054"
      },
      "deptType": {
          "deptID": "2",
          "deptName": "HR"
      }
  }
]
}

JMeter создаст:

- `josh-1` for 1st virtual user
- `josh-2` for 2nd virtual usre
- etc.

См. Функции Apache JMeter - Введение, чтобы ознакомиться с концепцией функций JMeter. .

person Dmitri T    schedule 24.08.2017
comment
Как я буду обрабатывать сценарий передачи фактических данных? Я не могу полагаться на генерацию случайных чисел - person Varun; 24.08.2017