1. Обзор
В этой статье мы рассмотрим распределенное тестирование производительности с помощью JMeter .
2. Что такое распределенное тестирование производительности?
Распределенное тестирование производительности означает использование нескольких систем с конфигурацией ведущий-ведомый для тестирования веб-приложения или производительности сервера.
В этом процессе мы будем использовать локальный клиент в качестве мастера, который обрабатывает выполнение теста с использованием нескольких удаленных клиентов, и каждый удаленный клиент, выступающий в роли подчиненного, будет выполнять тест на нашем целевом сервере.
Каждая ведомая система выполняет нагрузочные тесты в точном соответствии с условиями, заданными ведущей. Таким образом, распределенное тестирование производительности помогает нам достичь большего числа одновременных пользователей, запрашивающих целевой сервер.
Проще говоря, схема распределенного тестирования производительности с использованием JMeter будет выглядеть так:
3. Настройка
3.1. Предпосылки
Мы должны следовать нескольким предварительным условиям для плавной настройки и тестового запуска:
- Несколько компьютеров с установленным JMeter на каждом
- Брандмауэры в системах отключены или открыты необходимые порты для подключения
- Все системы (ведущие/ведомые) находятся в одной подсети.
- JMeter в каждой системе может получить доступ к целевому серверу
- Используйте одну и ту же версию Java и JMeter во всех системах (главной и подчиненной)
- Для простоты отключите SSL для RMI
Теперь, когда у нас есть готовые системы, давайте настроим подчиненную и главную системы.
3.2. Настройка ведомой системы
В подчиненной системе мы перейдем в каталог jmeter/bin
и запустим файл jmeter-server.bat
в Windows. Или мы можем запустить файл jmeter-server
в Unix.
3.3. Настройте основную систему
В главной системе мы перейдем в каталог jmeter/bin
и отредактируем свойство remote_hosts в файле
jmeter.properties
, чтобы добавить IP-адреса (через запятую) подчиненных систем:
remote_hosts=192.165.0.10,192.165.0.20,192.165.0.30
Здесь мы добавили три подчиненные системы.
Итак, запустив JMeter (мастер) в режиме графического интерфейса, мы можем подтвердить все подчиненные устройства, перечисленные в опции Run > Remote Start :
Вот и все! Мы готовы запустить главную систему JMeter для выполнения тестов на целевом сервере с использованием нескольких клиентов.
4. Удаленное тестирование
Для удаленного тестирования мы можем запустить JMeter в режиме графического интерфейса для простоты. Однако мы должны запускать его в режиме CLI при выполнении реальных тестов.
Во-первых, мы создадим простой план тестирования в главной системе, который содержит сэмплер HTTP-запроса
для запроса нашего сервера foreach.com и прослушиватель View Results Tree
.
4.1. Запуск одного подчиненного устройства
Затем мы можем выбрать, какую подчиненную систему запускать в режиме графического интерфейса, используя параметр « Выполнить»> «Удаленный запуск
»:
4.2. Запуск всех подчиненных
Точно так же мы можем выбрать запуск всех подчиненных систем, используя параметр « Выполнить»> «Удаленный запуск всех
»:
Кроме того, доступно несколько опций для управления выполнением тестов на подчиненных системах, таких как Remote Stop
, Remote Stop All
и Remote Shutdown All.
4.3. Результаты теста
Наконец, мы можем увидеть результаты теста в локальном JMeter (главном) после завершения выполнения теста:
Также на удаленных системах JMeter (slave) мы можем найти логи о старте/остановке выполнения теста:
Starting the test on host 192.165.0.10 @ Sun Oct 25 17:50:21 EET 2020
Finished the test on host 192.165.0.10 @ Sun Oct 25 17:50:25 EET 2020
5. Вывод
В этом кратком руководстве мы увидели, как начать распределенное тестирование производительности с использованием JMeter.
Во-первых, мы рассмотрели несколько предварительных условий для беспрепятственной настройки и тестового запуска. Затем мы настроили наши подчиненные и главные системы для распределенной среды тестирования производительности.
Наконец, мы запустили подчиненные системы, выполнили тесты на главной системе и наблюдали за результатами.