Перейти к основному содержимому

Распределенное тестирование производительности с помощью JMeter

· 3 мин. чтения

Задача: Сумма двух чисел

Напишите функцию twoSum. Которая получает массив целых чисел nums и целую сумму target, а возвращает индексы двух чисел, сумма которых равна target. Любой набор входных данных имеет ровно одно решение, и вы не можете использовать один и тот же элемент дважды. Ответ можно возвращать в любом порядке...

ANDROMEDA

1. Обзор

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

2. Что такое распределенное тестирование производительности?

Распределенное тестирование производительности означает использование нескольких систем с конфигурацией ведущий-ведомый для тестирования веб-приложения или производительности сервера.

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

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

Проще говоря, схема распределенного тестирования производительности с использованием JMeter будет выглядеть так:

./74902b1f42af75bdb80a76d808fd9a15.png

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 :

./6d5e831e818cd51e258476d9ad4c79d1.png

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

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

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

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

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

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

./ce52e4a25abf3801aef168750634a4f5.png

4.2. Запуск всех подчиненных

Точно так же мы можем выбрать запуск всех подчиненных систем, используя параметр « Выполнить»> «Удаленный запуск всех »:

./7b6afc8e6b69847f80255898274d9f03.png

Кроме того, доступно несколько опций для управления выполнением тестов на подчиненных системах, таких как Remote Stop , Remote Stop All и Remote Shutdown All.

4.3. Результаты теста

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

./3a9457cfe0f5bcb9e281ec23255f9bcd.png

Также на удаленных системах 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.

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

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