Тестирование производительности нескольких API одновременно с помощью Jmeter

В моем проекте около 100 RESTful API.

По определенной причине я хочу запустить все 100 API за один раз, каждый из которых, скажем, со случайным числом 'n'.

Возможно ли это. Как мне это сделать. Может быть, написать сценарий или что-то в этом роде?

Одним из предложений было: Используя конфигурацию набора данных CSV, мы можем протестировать несколько экземпляров одного API (скажем, тестирование API входа для 1000 пользователей).

Но в моем случае я хочу протестировать 100 API за один раз. И для каждого API параметры HTTP-запроса, такие как метод (GET/POST/GET и т. д.), данные пути и тела, будут разными.

Я не вижу никакого способа установить эти параметры HTTP-запроса с помощью конфигурации набора данных CSV.


person Naveen Kumar    schedule 08.09.2017    source источник
comment
где у вас есть все API в CSV? вы можете использовать конфигурацию набора данных CSV вместе с контроллерами цикла   -  person Prakash Palnati    schedule 08.09.2017
comment
@PrakashPalnati: используя конфигурацию набора данных CSV, мы можем протестировать несколько экземпляров одного API (скажем, тестирование API входа для 1000 пользователей). Но в моем случае я хочу протестировать 100 API за один раз. И для каждого API - Method, Path и Body Data будут разными. Я не вижу способа установить эти параметры HTTP-запроса с помощью конфигурации набора данных CSV.   -  person Naveen Kumar    schedule 08.09.2017
comment
Я думаю, что этот вопрос слишком велик для SO и слишком неясен. Вы хотите запустить 100 потоков с разными HTTP-запросами? или вы хотите запустить 1000 пользователей/потоков для каждого из 100 API? и вам нужна динамическая конфигурация для HTTP-запроса, но насколько разные запросы отличаются? какой у них ответ и так далее. Я предлагаю вам разделить его на 2 отдельных вопроса: дизайн с динамическим HTTP и выполнение, а также предоставить более четкое описание ваших ожиданий и того, что вы пробовали до сих пор.   -  person Kiril S.    schedule 08.09.2017


Ответы (1)


  1. Чтобы выполнить ваши запросы произвольное количество раз, вы можете использовать функцию __Random(). . Функцию можно поместить непосредственно в раздел "Счетчик циклов" группы тем или в Контроллере цикла
  2. Если вы хотите параметризовать разные пробоотборники с разными данными, было бы логично использовать разные экземпляры конфигурации набора данных CSV. Как и другие элементы конфигурации, конфигурация набора данных CSV следует правилам определения области, поэтому, если вы поместите это дочерний элемент сэмплера - он будет применен к этому сэмплеру, поэтому вы сможете иметь столько элементов конфигурации набора данных CSV, сколько захотите:

    Конфигурация набора данных JMeter CSV

  3. И, наконец, вам не нужно держать тестовые сценарии, тестирующие разные конечные точки API, в одной и той же группе потоков, вы можете использовать разные группы потоков, чтобы хранить тестовые сценарии для разных конечных точек API. Кроме того, вы можете использовать отдельные тестовые фрагменты или даже отдельные файлы .jmx для хранения тестов для разных конечных точек API. .

Если приведенное выше не отвечает на ваш вопрос, вам нужно будет изменить его, чтобы четко указать, чего вы пытаетесь достичь, чтобы мы могли подобрать наиболее подходящую конфигурацию JMeter.

person Dmitri T    schedule 11.09.2017