Использование инструмента стресс-тестирования саранчовых
Использование инструмента стресс-тестирования саранчовых

представлять

Locust — инструмент для тестирования производительности с открытым исходным кодом.,Может помочь вам смоделировать большое количество пользователей, обращающихся к веб-серверу.,Отслеживайте и сообщайте время ответа каждого пользователя. Он использует язык программирования Python для написания,Позволяет тестировать Скрипт с помощью Python. Locust можно легко расширить,для поддержки любых пользовательских утверждений,преобразование ответа,моделирование,распределенные исполнения или интеграция сторонних сервисов и т. д.

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

Locust имеет мощный API Python, который позволяет вам писать собственные моделируемые поведения пользователей, не требуя каких-либо знаний по управлению тестами. Его удобный интерфейс помогает быстро проводить повторяющиеся стресс-тесты и получать полезные отчеты.

Официальный адрес сайта: https://locust.io/

представлятьиспользовать: https://docs.locust.io/en/stable/

Сравнение Locust и Jmeter

И Locust, и JMeter можно использовать для стресс-тестирования. Но между ними есть некоторые очевидные различия:

  • Locust Легче начать. он использует Python Являясь языком скриптов, существование предоставляет очень удобный интерфейс для определяемых пользователем сценариев использования, в то время как JMeter нужно вручную писать XML Скрипт Приходитьбегатьтест。
  • Locust может имитировать одновременное выполнение запросов несколькими пользователями, тогда как JMeter может одновременно инициировать только один запрос.
  • Тестирование производительности Locus существует, а нагрузочное тестирование проще реализовать.,легче отлаживать,Легче строить задачи и пользовательский скрипт.
  • Locust может передавать результаты испытаний в веб-интерфейс и диаграммы в режиме реального времени.
  • JMeter Может быть установлен в соответствии с разными параметрами, может легко моделировать различное поведение пользователя и Locust Поддерживается только моделирование поведения конкретного пользователя.
  • JMeter может эффективно обрабатывать большое количество запросов, тогда как у Locust возникают некоторые проблемы с производительностью при обработке большого количества запросов.
  • JMeter Можно настроить стресс-тест на одной машине, при этом Locust распределенный требуется развертывать для поддержки большого количества пользовательских запросов.
  • JMeter Позволяет использовать несколько протоколов на основе (например. JDBC、HTTP、FTP и SOAP) для стресс-теста, при этом Locust ограничено HTTP протокол.
  • JMeter может сохранять результаты тестов только в текстовые файлы, что требует от пользователей самостоятельного анализа данных.

Установить

адрес github: https://github.com/locustio/locust

Используйте команду pip3 Установить следующим образом:

Язык кода:javascript
копировать
pip3 install locust

Если Установить linux не удается, значит, gcc Order отсутствует.

Вы можете обратиться к решению «Установить Отладочный пакет Python».

Язык кода:javascript
копировать
sudo yum install python-devel
sudo yum install python3-devel

параметр

существоватьбегатьвперед,Давайте узнаем locust изисполняемый параметр, саранча существует 1.x версия и 2.x Параметр версии несколько отличается. Поэтому при учебе все используют locust --version Команда для проверки номера версии инструмента.

Можно использовать locust --help Параметр командной строки вывода команды. Ниже приведены некоторые часто используемые параметры выполнения:

параметр

описывать

единица

-u NUM_USERS, --users NUM_USERS

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

числоединица

-r SPAWN_RATE, --spawn-rate SPAWN_RAT

Скорость создания пользователей (пользователей в секунду). В основном используется с --headless или --autostart.

числоединица

-t RUN_TIME, --run-time RUN_TIME

В указанное время (например, 20 минут, 3 часа, 1 час 30 минут и т. д.). Только с --headless или --autostartзапускать。По умолчанию навсегдабегать。

числоединица

-H HOST, --host HOST

Адрес доменного имени интерфейса

нить

-f LOCUSTFILE

Скрипт-файл

абсолютный адрес

--config CONFIG

Конфигурационный файл

абсолютный адрес

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

параметр

описывать

Type

Тип запроса, например GET/POST.

Name

запрошенный путь

request

Количество отправленных запросов

fails

Количество неудачных запросов

Median

Среднее время ответа (единица: миллисекунды)

Average

Среднее время ответа (единица: миллисекунды)

Min‍

Минимальное время ответа на запросы (единица: миллисекунды)

Max

Максимальное время ответа на запросы (единица: миллисекунды)

reqs/sec

Количество запросов в секунду

бегать

locust Исполнение делится на Есть страницыиз Нет страницы, вы можете выбрать разные методы в соответствии с вашими потребностями. ‍

Есть страницы

Есть Как сказать страница locust Основной особенностью инструмента является то, что он может просматривать ситуацию с измерением давления в режиме реального времени, что лучше, чем jmeter Это лучше и больше подходит для новичков.

Используйте следующую команду:

Язык кода:javascript
копировать
locust -f locust_test.py  --host=http://10.30.30.85:9200  --web-host=127.0.0.1 --web-port=8088

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

Нет страницы

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

Язык кода:javascript
копировать
locust -f locust_test.py  --headless --host=http://10.30.30.85:9200   

Скрипт

locust Еще одна особенность написать тест Скрипт Можно использовать замену файла Python по сравнению с jmeter писать jmx Файлы будут свободнее, потому что locust основан на python Разработан на языке, поэтому идеально подходит для тех, кто уже освоил его. python Одноклассники по языку.

Демо-код выглядит следующим образом:

Язык кода:javascript
копировать
# coding=utf-8
import os
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
 # Отключить предупреждения запросов безопасности
 from locust import HttpUser, TaskSet, task

class DramaFinishTask(TaskSet):
   
    # Предварительная обработка
    def on_start(self):
         print("Начни звонить")

     # постобработка
    def on_stop(self):
        print("Хватит звонить")

    # вес, коэффициент исполнения
    @task(1)
    # Методы, подлежащие тестированию
    def test(self):
     # Запрошенный URL-адрес интерфейса
         req = self.client.head("/xxxxx", verify=False)
         if req.status_code == 200:
            print("success")
        else:
             print("fails")

 class DramaFinish(HttpUser):
    tasks = [DramaFinishTask]
    min_wait = 100
    max_wait = 800
    # Установите интервал между запросами
    # wait_time = between(1, 1)
    wait_time = constant(1)

Как видно из приведенного выше кода, саранча Скриптписать по наследству HttpUser Свойства и написание методов тестирования, self.client использовать и python requests Библиотеки относительно похожи. Окончательное выполнение осуществляется через locust -f осуществлять Скриптбегать。

распределенный

locust Он также поддерживает распределенное испытание под давлением. Особенно, когда одного генератора давления недостаточно, можно объединить несколько машин для совместного проведения испытаний под давлением. и slave испытание под давлением 。

Выполните главную команду на главной машине.

Язык кода:javascript
копировать
locust -f locust_test.py --web-host=10.30.130.91 --web-port=9088 --master

Выполните следующую команду в подчиненной команде

Язык кода:javascript
копировать
locust -f locust_test.py --worker --master-host=10.30.130.91

Если работает несколько подчиненных устройств, будут отображаться несколько номеров подчиненных клиентов.

Заключение

Эта статья в основномпредставлять Вниз Locust Использование инструмента для начинающих, если вы заинтересованы в jmeter Студентам, имеющим определенные знания, будет очень легко учиться.

Кроме того, многие студенты спросят, нельзя ли использовать jmeter для стресс-тестирования? Зачем нам изучать некоторые инструменты Locust? Тогда я отвечу с нескольких сторон?

  • Себе: 1. Освоение еще одного инструмента даст определенные преимущества при поиске работы. По крайней мере, вы сможете написать больше в своем резюме. 2. Каждый инструмент имеет свои преимущества и позволяет глубже понять тестирование производительности.
  • Компании: 1. Вы сможете выполнить работу быстро. Большинство учащихся в команде могут использовать инструмент Locust. Если вы освоите его заранее, вы лучше встроитесь в работу. 2. Locust можно лучше превратить в платформу стресс-тестирования и повысить эффективность стресс-тестирования на работе.

конечно Locust тоже не новый инструмент,существование обычно используется в промышленности,Эта статья заканчивается здесь,Желаю всем счастливого Фестиваля фонарей~,Желаю вам удачной работы и крепкого здоровья в новом году.

Связанные рекомендации

Помните стресс-тест протокола MQTT.

Многосценарная практика автоматического тестирования интерфейсов - Предыдущая статья

Многосценарная практика автоматического тестирования интерфейсов - Следующая статья

Почему в Китае существует множество инструментов для тестирования интерфейсов, но нет универсальной платформы?

Платформа визуального стресс-тестирования Locust

boy illustration
сравнение строк PHP
boy illustration
9 сценариев асинхронного сбоя @Async
boy illustration
Эффективная обработка запланированных задач: углубленное изучение секретов библиотеки APScheduler на Python
boy illustration
Рекомендации по облегченному артефакту развязки внутренних компонентов Spring Event (событие Spring)
boy illustration
Go: Лесоруб-лесоруб на колесах Введение
boy illustration
Основы серверной разработки: технология кэширования, которую должен освоить каждый программист
boy illustration
Java Advanced Collections TreeSet: что это такое и зачем его использовать?
boy illustration
Оказывается, у команды go build столько знаний
boy illustration
Node.js
boy illustration
Анализ исходного кода, связанный с запланированными задачами версии ruoyi-vue (7), то есть анализ модуля ruoyi-quartz.
boy illustration
Вход в систему с помощью скан-кода WeChat (1) — объяснение процесса входа в систему со скан-кодом, получение авторизованного QR-кода для входа.
boy illustration
HikariPool-1 — обнаружено отсутствие потока или скачок тактовой частоты, а также конфигурация источника данных Hikari.
boy illustration
Сравнение высокопроизводительной библиотеки JSON Go
boy illustration
Простое руководство по извлечению аудио с помощью FFmpeg
boy illustration
Подсчитайте количество строк кода в проекте
boy illustration
Spring Boot элегантно реализует многопользовательскую архитектуру: концепции и практика
boy illustration
Как интегрировать функцию оповещения корпоративного WeChat в систему планирования xxl-job
boy illustration
SpringBoot интегрирует отправку сообщений через веб-сокет в режиме реального времени
boy illustration
Краткий анализ основных библиотек журналов в Go: узнайте, как интегрировать функции вращения и резки бревен на уровне проектирования.
boy illustration
Реализация API-шлюза с нуля-Golang
boy illustration
[Разговорный сайт] Как Springboot получает значения свойств из файлов конфигурации yml или свойств
boy illustration
Spring Boot — синхронные события приложения против асинхронных событий публикации и подписки. Практический бой
boy illustration
Spring Boot использует Swagger3 для создания документов интерфейса API.
boy illustration
[1269] Использование Gunicorn для развертывания проектов flask.
boy illustration
Краткое изложение 10 способов регистрации bean-компонентов в SpringBoot
boy illustration
Flask Learning-9. 2 способа включения режима отладки (debug mode).
boy illustration
Руководство по настройке самостоятельного сервера для Eudemons Parlu
boy illustration
40 вопросов для собеседований по SpringBoot, которые необходимо задавать на собеседованиях! При необходимости ответьте на вопросы для собеседования SpringBoot [предлагаемый сборник] [легко понять]
boy illustration
Через два года JVM может быть заменен GraalVM.
boy illustration
Разрешение циклических зависимостей Spring Bean: существует ли неразрешимая циклическая ссылка?