«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 (мастер) в режиме GUI, мы можем подтвердить все подчиненные устройства, перечисленные в опции Run \u003e Remote Start:

Вот и все! Мы готовы запустить главную систему JMeter для выполнения тестов на целевом сервере с использованием нескольких клиентов.

4. Удаленное тестирование

Для удаленного тестирования мы можем запустить JMeter в графическом режиме для простоты. Однако мы должны запускать его в режиме CLI при выполнении реальных тестов.

Во-первых, мы создадим простой план тестирования в основной системе, который содержит сэмплер HTTP-запроса для запроса нашего сервера baeldung.com и прослушиватель View Results Tree.

4.1. Запуск одного подчиненного устройства

Затем мы можем выбрать, какое подчиненное устройство запускать в режиме графического интерфейса, используя опцию «Выполнить» \u003e «Удаленный запуск»:

4.2. Запуск всех ведомых систем

Точно так же мы можем выбрать запуск всех ведомых систем с помощью параметра «Выполнить» \u003e «Удаленный запуск всех»: Все и Удаленное выключение всех.

4.3. Результаты тестирования

Наконец, мы можем увидеть результаты тестирования в локальном JMeter (главном) после завершения выполнения теста:

Кроме того, в удаленных системах JMeter (ведомых) мы можем найти журналы о запуске/остановке выполнение теста:

5. Заключение

В этом кратком руководстве мы увидели, как приступить к распределенному тестированию производительности с использованием JMeter.

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

Во-первых, мы рассмотрели несколько предварительных условий для беспрепятственной настройки и тестового запуска. Затем мы настроили наши подчиненные и главные системы для распределенной среды тестирования производительности.

Наконец, мы запустили подчиненные системы, выполнили тесты на главной системе и наблюдали за результатами.

«

Last, we started the slave systems, ran tests from a master system, and observed the results.