Jmeter выполняет стресс-тестирование протокола WebSocket
Jmeter выполняет стресс-тестирование протокола WebSocket

Справочная информация

На рынке существует множество типов протоколов. Мы можем добавлять плагины через Jmeter для реализации сценариев. В качестве примера мы возьмем бизнес-стресс-тест протокола WebSocket.

Существует множество плагинов для WebSocket. В этой статье в качестве примера для проведения стресс-тестирования используются JMeter WebSocket Samplers. Сэмплеры JMeter WebSocket имеют следующие функции:

  • Предоставляет 6 различных сэмплеров WebSocket.
  • Сэмплер не создает дополнительных потоков, поэтому можно использовать большое количество потоков JMeter.
  • Поддержка wss (WebSocket через TLS)
  • Поддержка wss полностью совместима с SSLManager JMeter, включая клиентские сертификаты.
  • Поддержка двоичных файлов WebSocket рамка
  • Утверждения для проверки двоичных ответов
  • Просмотр двоичных результатов в разделе «Посмотреть дерево результатов»
  • Интеграция с менеджером заголовков JMeter для установки дополнительных HTTP-заголовков в запросах на обновление WebScoket.
  • При каждом запросе на обновление (т. е. инициированном WebSocket соединятьиз HTTP запрошен) отправляется JMeter из Cookie Manager Определение cookie
  • Агентская поддержка
  • предоставляет возможность отбраковки и проверки неактуальных и фильтраций фильтров
  • много примеров JMeter План испытаний, иллюстрирующий различные функции.

подробныйиллюстрировать Пожалуйста, обратитесь кJMeter WebSocket Samplers Знакомство с плагином

Шаг 1. Установите плагин JMeter WebSocket Samplers.

  1. Скачать адрес:JMeter WebSocket Samplers,Рекомендуется скачать последнюю версию.
  2. Скачаю плагин из .jarПакет хранится в<JMeterКаталог установки>/lib/extпо пути。
  3. Откройте инструмент JMeter и проверьте, успешно ли установлен плагин:

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

Имя коллекционера

иллюстрировать

WebSocket Close

Используется для корректного закрытия соединений веб-сокета.

WebSocket Open Connection

Для явной установки соединения через веб-сокет

WebSocket Ping/Pong

Используется для отправки пинг-запросов и получения запросов на понг.

WebSocket Single Read Sampler

Используется для получения (текстового или двоичного) кадра WebSocket.

WebSocket Single Write Sampler

Используется для отправки (текстового или двоичного) кадра WebSocket.

WebSocket request-response Sampler

Используется для выполнения базовых запросов-ответов.

Шаг 2: Использование коллектора

Ниже для JMeter WebSocket Samplers каждый сборщик конфигурации и использования иллюстрировать

  1. Предпочтительно создать группу потоков, добавить в план тестирования,добавить в->нить(пользователь)->группа потоков
  2. Добавить веб-сокет Open ConnectionКоллекционер,группа потоков->добавить в->пробоотборник->WebSocket Open Connection,Этот сборщик создан для WebSocketсоединять.

Соответствующая конфигурация иллюстрировать:

Элементы конфигурации

иллюстрировать

протокол

протокол может быть WS или WSS,WSS зашифрован.

Server name or IP

Доменное имя или IP-адрес

Port

номер порта

Path

путь, может быть пустым

Connection timeout(ms)

Таймаут установления соединения

Read timeout(ms)

Таймаут ожидания ответа сервера

3. Добавить веб-сокет Ping/PongКоллекционер,группа потоков->добавить в->пробоотборник->WebSocket Ping/Pong,Этот коллектор используется для отправки пингов и получения запросов на понг.

Соответствующая конфигурация иллюстрировать:

Элементы конфигурации

иллюстрировать

ping/pong(send ping,expect pong)

Используется для отправки пингов и приема понгов.

pong(just send pong)

Отправляйте только нежелательные понг

pong(read) timeout(ms)

Указывает, что если JMeter не получит сообщение Pong в течение 20 секунд, сэмплер выйдет из строя. Этот сэмплер будет повторно использовать существующие соединения.

4. Добавить веб-сокет Single Read SamplerКоллекционер,группа потоков->добавить в->пробоотборник->WebSocket Single Read Sampler,Используется для получения (текстового или двоичного) кадра WebSocket.

Элементы конфигурации

иллюстрировать

use existing connection

Повторное использование существующих соединений

setup new connection

Создать новое соединение

Response (read) timeout (ms)

Тайм-аут ответа

5. Добавить веб-сокет Single Write SamplerКоллекционер,группа потоков->добавить в->пробоотборник->WebSocket Single Write Sampler,Используется для отправки (текстового или двоичного) кадра WebSocket.

Элементы конфигурации

иллюстрировать

use existing connection

Повторное использование существующих соединений

setup new connection

Создать новое соединение

Request data

Заполните данные запроса

6. Добавить веб-сокет request-response SamplerКоллекционер,группа потоков->добавить в->пробоотборник->WebSocket request-response Sampler,Используется для выполнения базовых запросов-ответов.

Элементы конфигурации

иллюстрировать

use existing connection

Повторное использование существующих соединений

setup new connection

Создать новое соединение

Request data

Заполните данные запроса

Response (read) timeout (ms)

Тайм-аут ответа

7. Добавить веб-сокет CloseКоллекционер,группа потоков->добавить в->пробоотборник->WebSocket Close,Используется для корректного закрытия соединений веб-сокета.

Элементы конфигурации

иллюстрировать

Close Status

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

Response (read) timeout (ms)

Тайм-аут ответа

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

Шаг 3: Выполнение сценария

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

Проверьте, правильно ли работает сценарий, просмотрев дерево результатов. В левом дереве навигации выберите «Просмотреть дерево результатов», чтобы проверить, соответствуют ли результаты запроса ожидаемым. Если запрос не выполнен, необходимо перенастроить скрипт согласно шагу 2.

boy illustration
На основе языка Go мы шаг за шагом научим вас внедрять структуру системы управления серверной частью.
boy illustration
Эффективное управление журналами с помощью Spring Boot и Log4j2: подробное объяснение конфигурации
boy illustration
Что делать, если telnet не является внутренней или внешней командой [легко понять]
boy illustration
php-объект для анализа json_php json
boy illustration
Введение в принцип запуска Springboot, процесс запуска и механизм запуска.
boy illustration
Высокоуровневые операции Mongo, если данные не существуют, вставка и обновление, если они существуют (pymongo)
boy illustration
Проектирование и внедрение системы управления электронной коммерцией на базе Vue и SpringBoot.
boy illustration
Статья длиной в 9000 слов знакомит вас с процессом запуска SpringBoot — самым подробным процессом запуска SpringBoot в истории — с изображениями и текстом.
boy illustration
Как настроить размер экрана в PR. Учебное пособие по настройке размера видео в PR [подробное объяснение]
boy illustration
Элегантный и мощный: упростите операции ElasticSearch с помощью easy-es
boy illustration
Проект аутентификации по микросервисному токену: концепция и практика
boy illustration
【Java】Решено: org.springframework.http.converter.HttpMessageNotWritableException.
boy illustration
Изучите Kimi Smart Assistant: как использовать сверхдлинный текст, чтобы открыть новую сферу эффективной обработки информации
boy illustration
Начало работы с Docker: использование томов данных и монтирования файлов для хранения и совместного использования данных
boy illustration
Использование Python для реализации автоматической публикации статей в публичном аккаунте WeChat
boy illustration
Разберитесь в механизме и принципах взаимодействия потребителя и брокера Kafka в одной статье.
boy illustration
Spring Boot — использование Resilience4j-Circuitbreaker для реализации режима автоматического выключателя_предотвращения каскадных сбоев
boy illustration
13. Springboot интегрирует Protobuf
boy illustration
Примечание. Инструмент управления батареями Dell Dell Power Manager
boy illustration
Общая интерпретация класса LocalDate [java]
boy illustration
[Базовые знания ASP.NET Core] -- Веб-API -- Создание и настройка веб-API (1)
boy illustration
Настоящий бой! Подключите Passkey к своему веб-сайту для безопасного входа в систему без пароля.
boy illustration
Руководство по настройке Nginx: как найти, интерпретировать и оптимизировать настройки Nginx в Linux
boy illustration
Typecho отображает использование памяти сервера
boy illustration
Как вставить элемент перед указанным ключом в ассоциативный массив в PHP
boy illustration
swagger2 экспортирует API как текстовый документ (реализация Java) [легко понять]
boy illustration
Выбор фреймворка nodejs Express koa egg MidwayJS сравнение NestJS
boy illustration
Руководство по загрузке, установке и использованию SVN «Рекомендуемая коллекция»
boy illustration
Интерфейс PHPforwarding_php отправляет запрос на получение
boy illustration
Создавайте и защищайте связь в реальном времени с помощью SignalR и Azure Active Directory.