Я использую JMeter для тестирования настроенного сервера Apache2. Я хотел бы проверить, может ли сервер обрабатывать 200 HTTP-запросов, поступающих полностью каждую секунду, многократно в течение большого количества секунд (например, 1 минута или даже больше). Я прочитал документацию JMeter, но немного потрудился в понимании функционирования таймеров. Я настроил тест сОтправка HTTP-запроса с точными временными интервалами с помощью JMeter
- Numbers of Threads 200
- Ramp-up period 1
- Loop Count 100
Теперь, насколько я понял, и заметил, поведение JMeter, чтобы попытаться поднять 200 нитей в 1 секунду, а затем выполнить 200 * 100 = 20000 запросов так быстро, как возможно (или, по крайней мере, это поведение, которое я испытываю на своем сервере), в кусках 200 запросов за раз. Это означает, что сервер может (на самом деле) получать более 200 запросов в секунду. Поведение, которое я хотел бы воспроизвести, состоит в том, чтобы иметь 200 запросов ровно каждую секунду. Меня не волнует, что они собираются вместе в начале второго, или они рандомизированы, распределяют второе окно (один раз каждые 5 миллисекунд или что-то еще). Поэтому я пробовал несколько таймеров, но безуспешно. Я пробовал:
Constant Timer
с задержкой резьбы 5 миллисекунд. Выполняя математику, он должен отправить запрос каждые 5 миллисекунд и стать 200 потоками, он должен отправить 200 запросов/секунду (200 * 5 = 1000 мс).Constant Throughput Timer
с целевой пропускной способностью 12000,0. Возможно, я ошибаюсь здесь, но это должны быть образцы в минуту, поэтому 200 запросов за 60 секунд составляют 200 * 20 = 12000 (если образец является запросом). Я не понял параметр «Рассчитать пропускную способность на основе», и я попробовал как «этот поток только» (какой?), Так и «все активные потоки».
В любом случае, ни одна из этих конфигураций не действует по мере необходимости.
Попробуйте использовать 'Constant Timer' с 1000 миллисекунды. Каждый поток должен делать запрос каждую секунду, для 200 запросов в секунду. – RowlandB
Чтобы вызвать 200 соединений в общей сложности за одну секунду, вы должны попробовать использовать [Синхронизирующий таймер] (http://jmeter.apache.org/usermanual/component_reference.html#Synchronizing_Timer). Цель SyncTimer заключается в блокировке потоков до тех пор, пока не будет заблокировано количество потоков N, а затем все они будут выпущены сразу. Таким образом, SyncTimer может создавать большие мгновенные нагрузки в разных точках плана тестирования. – Adnan