Обмен технологиями

распределенный jmeter (4)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. графический интерфейс

Графический интерфейс jmeter в основном используется для отладки скриптов

1. Сначала создайте скрипт с помощью графического интерфейса.

Сначала создайте сценарий
Демо: Как написать сценарий смешанной сцены?
Используйте бизнес-коэффициент 211.

①Запустите службу базы данных.

Службы баз данных: включая MySQL, Redis
порт mysql по умолчанию 3306

netstat -lntp | grep 3306
  • 1

В состоянии прослушивания порт Redis по умолчанию — 6379.

netstat -lntp | grep 6379
  • 1

Сервисный порт проекта 18089

netstat -lntp | grep 18089
  • 1

②Доступ к интерфейсу документа

211 можно преобразовать в две службы стресс-тестирования

Один — зарегистрироваться, другой — зарегистрироваться и войти в систему, чтобы добавлять продукты.
Оба по 50%

③Добавить группу потоков

jmeter — добавить группу потоков-добавить группу потоков-пользователей-потоков

Преобразование двух сервисов стресс-тестирования

④Добавить контроллер пропускной способности

jmeter — контроллер добавления логики — контроллер пропускной способности

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

Вставьте сюда описание изображения

50% каждый
Вставьте сюда описание изображения

⑤Добавить HTTP-запрос сэмплера

jmeter-add-sampler-http-request
Преобразование двух сервисов стресс-тестирования
Вставьте сюда описание изображения

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

Вставьте сюда описание изображения

Вставьте сюда описание изображения

Второе дело — регистрация

Пишите согласно регистрации swagger, вводите параметры
Вставьте сюда описание изображения
Как правило, вам не нужно заполнять идентификатор при его вставке.
Addtime также не нужно заполнять
Скопируйте и вставьте данные параметра в jmeter.
Вставьте сюда описание изображения

путь на основе URL
Вставьте сюда описание изображения

Вставьте сюда описание изображения

Вставьте сюда описание изображения

⑥Добавить менеджер заголовков http,

Они все передают json
Вставьте сюда описание изображения

Вставьте сюда описание изображения

⑦Добавить значение по умолчанию HTTP-запроса.

Заполните IP и порт в соответствии с документом интерфейса.
Вставьте сюда описание изображения
Вставьте сюда описание изображения

⑧Добавьте прослушиватель и просмотрите дерево результатов.

Вставьте сюда описание изображения

⑨Добавить утверждение

Лучше всего добавить утверждения

Вставьте сюда описание изображенияВставьте сюда описание изображения

2. Не графический интерфейс

-nВыполнить jmeter в режиме без графического интерфейса
-t выполняет местоположение тестового файла. Указывает сценарий для запуска jmeter. Его нет в текущем пути. Вам необходимо записать полный путь.
-l указывает сгенерированный файл результатов, который является файлом jtl.
-e После завершения теста создать отчет о тестировании
-o указывает место хранения HTML-отчета о тестировании.
-r удаленный запуск

1. Пресс с одной машиной

①Подать заявку на прессу

Установите jdk и jmeter на Linux Press
Установить под us/local
Непосредственно загрузите jmeter на окне в линукс-пресс, потому что плагины, задействованные в скрипте отладки, также доступны.
Вставьте сюда описание изображения

②Загрузить сценарий в прессу

Примечание. Если в сценарии используется файл параметров csv, вам необходимо загрузить файл параметров csv в каталог bin jmeter в Linux.
Перед загрузкой необходимо отключить агрегированные отчеты и прослушиватели.

5 потоков, добавляйте по одному каждые 30 секунд, то есть 150

Длительность должна быть больше, чем время звонка, равное 150. Если оно длится еще 50 секунд, установите значение 200.
Вставьте сюда описание изображения

После успешной загрузки jmeter проверьте версию jmeter и ее доступность.

Вставьте сюда описание изображения

③Инициализация

Есть два места
Во-первых, путь для хранения тестового сценария должен создать каталог для хранения отчета в формате html.

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

④Выполнить сценарий

Вставьте сюда описание изображения

⑤Просмотр результатов

результат
Выполнено 548 запросов за 13 секунд.

Вставьте сюда описание изображения
Вставьте сюда описание изображения

Открыть сводный отчет
Количество невыполненных запросов

Вставьте сюда описание изображения
время ответавремя ответа
Вставьте сюда описание изображения

тпс

Вставьте сюда описание изображения

Как просмотреть jtl-файлы?
jtl можно открыть в любом прослушивателе, например, для просмотра дерева результатов, совокупного отчета, tps, времени ответа.
Если вы открыли сводный отчет, нажмите «Обзор».
Вставьте сюда описание изображения

Вставьте сюда описание изображения
Например, tps, время отклика
Давайте сначала посмотрим на tps
Добавить ТПС
Нажмите, чтобы просмотреть

Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения

Вставьте сюда описание изображения

Время откликаВставьте сюда описание изображения

Вставьте сюда описание изображения

2. Распределенный

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

2.1 Принцип распределения

Официальный веб-сайт:https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

Серверная машина служит управляющей машиной
Остальные машины используются в качестве погрузочных машин.
Услуга, запрошенная целью
Контроллер удаленно управляет запуском и остановкой погрузочной машины, отправляя сигналы, и в то же время собирает данные погрузочной машины и сводную информацию.
Загрузочная машина в основном запускает потоки для доступа к серверу и нацелена на сервер, проходящий стресс-тест.
Обычно рабочий запускает управляющую машину jmeter-server для удаленного управления загрузочной машиной. Загрузочная машина запускает поток и запрашивает цель для получения данных, а затем отправляет их обратно на управляющую машину.

Где размещаются сценарии при распространении?
Один контроллер, несколько работников
При выполнении негуи скрипт передается на сервер. Теперь, когда он разослан, куда следует передать скрипт?
Скрипт будет передан в контроллер. Во время выполнения скрипт будет отправлен на каждую загрузочную машину, то есть каждому воркёру. После того, как нагрузка получит скрипт, он приступит к выполнению скрипта. После выполнения будут переданы данные. на управляющую машину для получения сводки.

2.2 Меры предосторожности при испытании распределенным давлением

(https://img-blog.csdnimg.cn/e3de7b8b65a1447db3bc3618876f62d3.png)
Брандмауэр необходимо закрыть. Если брандмауэр не закрыт, порт необходимо открыть.
Все клиенты должны находиться в одной подсети.
Убедитесь, что jmeter имеет доступ к серверу
Убедитесь, что версии jmeter и java одинаковы.
отключить SSL

2.3 Подготовка среды

Требуется 3 виртуальные машины
Используйте 181 в качестве контроллера (управляющей машины)
Используйте 182 183 в качестве рабочего (загрузочная машина)
В то же время на этих трех виртуальных машинах должны быть установлены jdk и jmeter.
Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения
Вставьте сюда описание изображения
Посмотреть версию JDK
Вставьте сюда описание изображения
Установите jmeter на три виртуальные машины
jmeter локальной машины переносится в каталог usr/local виртуальной машины.
Проверьте версию jmeter после загрузки
Вставьте сюда описание изображения

2.4 Распределенная конфигурация

①Рабочий

182、182
Сначала создайте резервную копию файла конфигурации jmeter.properties.
Вставьте сюда описание изображения

server_port может быть изменен или не изменен. Значение по умолчанию — 1099.
Вставьте сюда описание изображения

отключить SSL
server.rmi.ssl.disable=false, измените false на true
Вставьте сюда описание изображения

Начать работу
./jmeter-сервер
Вставьте сюда описание изображения
Проверьте порт 182, чтобы узнать, находится ли он в состоянии прослушивания.

Вставьте сюда описание изображения

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

②Контроллер

Прежде чем настраивать управляющую машину, выполните отладку jmeter в окне.
победа: для отладки
Сначала создайте резервную копию файла конфигурации jmeter.properties.
Вставьте сюда описание изображения
По умолчанию эта машина используется в качестве загрузочной машины.
Текущая загрузочная машина является удаленной загрузочной машиной, измените Remote_hosts=127.0.0.1 на Remote_hosts=192.168.117.182:1099.
Здесь необходимо указать IP и порт устройства удаленной загрузки. Если их несколько, разделите их запятыми.
Вставьте сюда описание изображения
Вставьте сюда описание изображения
отключить SSL
Измените server.rmi.ssl.disable=false на server.rmi.ssl.disable=true.
Вставьте сюда описание изображения

Сначала отладьте его через эту машину
Перезапустите jmeter и перечитайте файл конфигурации.
Вставьте сюда описание изображения
После отладки в окне перейдите в Linux для настройки.

Настроить на 181
Сначала создайте резервную копию файла конфигурации jmeter.properties.

Вставьте сюда описание изображения

Текущая загрузочная машина является удаленной загрузочной машиной, которая будетremote_hosts=127.0.0.1Изменить наremote_hosts=192.168.117.182:1099
Здесь необходимо указать IP и порт устройства удаленной загрузки. Если их несколько, разделите их запятыми.

Вставьте сюда описание изображения

Вставьте сюда описание изображения

сервер.rmi.ssl.disable=false
Воляserver.rmi.ssl.disable=falseИзменить наserver.rmi.ssl.disable=true
Вставьте сюда описание изображения
Когда сценарий передается на управляющую машину, он автоматически распространяется на каждую загрузочную машину.
Отдельный тестовый вход в один сценарий
Вставьте сюда описание изображения
После загрузки скрипта выполните скрипт
Выполнить через удаленную загрузку

/usr/local/apache-jmeter-5.1.1/bin/jmeter -n -r -t test.jmx
  • 1

Вставьте сюда описание изображения

Каждая машина рабочей нагрузки (пресс) имеет 5 нитей, а машина общего контроля — 10 ниток.
Вставьте сюда описание изображения

Экологическая подготовка
Две виртуальные машины. Есть один главный и два подчиненных. Машина Windows выступает в качестве одного главного, а подчиненный использует виртуальную машину.
Источник: https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

Возникающие проблемы:
java.rmi.RemoteException: Невозможно запустить. localhost.localdomain — это адрес обратной связи

Создан удаленный объект: UnicastServerRef2 [liveRef: [endpoint:127.0.0.1:43474,objID:[-5a8dd143:17e2852fe88:-7fff, 3673082414768940798]]]
Не удалось запустить сервер: java.rmi.RemoteException: Невозможно запустить. localhost.localdomain — это адрес обратной связи.
Произошла ошибка: Невозможно запустить. localhost.localdomain — это адрес обратной связи.
Вставьте сюда описание изображения
Информация об исключении: Исключение при запуске сервера: исключение при удаленном вызове метода Java: невозможно запустить службу. localhost.localdomain — это локальный адрес обратной связи.

Имя хоста, полученное с помощью команды hostname, — localhost.
Проверьте конфигурацию хостов с помощью команды cat /etc/hosts. localhost localhost.localdomain localhost4... указывает на 127.0.0.1.
Вставьте сюда описание изображения
Решение:
Укажите IP-адрес хоста удаленного сервера (rmi.server.hostname).
Начните с указания команды терминала
./jmeter-server -Djava.rmi.server.hostname=192.168.2.2
Вставьте сюда описание изображенияВставьте сюда описание изображения