Отчёт о нагрузочном тестировании сайта с использованием Locust
2.28M
Category: programmingprogramming

Отчёт о нагрузочном тестировании сайта с использованием Locust

1. Отчёт о нагрузочном тестировании сайта с использованием Locust

Преподаватель: Қалман Г.
Выполнил: Карибаев И.Г.
Группа: иск-231 уск

2.

Цель теста: Нагрузочное тестирование веб-сайта https://shokan.edu.kz/ru/ с использованием
инструмента Locust, чтобы определить производительность сервера при различных уровнях
нагрузки.
Инструмент для тестирования: Locust — это инструмент для нагрузочного тестирования,
который позволяет моделировать сценарии поведения пользователей и отслеживать
производительность веб-приложений под нагрузкой.
1. Установка Locust. Открываем терминал (командную строку) и вводим:
pip install locust
2. Создание тестового сценария. Создаем файл, например, locustfile.py и пишем туда код (код на
след. стр.).
3. Запуск Locust. Запускаем в терминале:
locust -f locustfile.py --host=https://shokan.edu.kz
После этого: Откроется браузер на странице http://localhost:8089,
Вводим количество пользователей и скорость. Нажимаем "Start Swarming".

3.

from locust import HttpUser, task, between
class ShokanWebsiteUser(HttpUser):
wait_time = between(1, 3)
@task
def load_main_page(self):
self.client.get("/ru/")
@task
def load_about_university(self):
self.client.get("/ru/about/")
@task
def load_rectorate(self):
self.client.get("/ru/rectorate/")
@task
def load_corporate_governance(self):
self.client.get("/ru/corporate-governance/")
@task
def load_academic_council(self):
self.client.get("/ru/academic-council/")

4.

НАГРУЗИТЬ САЙТ 100 ПОЛЬЗОВАТЕЛЯМИ ЗА 100 СЕКУНД

5.

6.

7.

8.

9.

НАГРУЗИТЬ САЙТ 1000 ПОЛЬЗОВАТЕЛЯМИ ЗА 10 СЕКУНД

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

Тип ошибки
Описание
Сервер не справляется с
500 Server Error (HTTPError) запросами и выдает
внутреннюю ошибку.
SSLError (SSLEOFError)
SSL-соединение обрывается
некорректно (EOF).
RemoteDisconnected
Сервер закрыл соединение без
ответа.
ConnectionAbortedError
Локальная программа (клиент
или система) закрыла
соединение.
ConnectionResetError
Сервер принудительно сбросил
соединение.
Что это значит:
•Сервер перегружен: он не выдерживает
такую нагрузку (1000 запросов за 10
секунд).
•Проблемы с SSL: сервер или
промежуточные устройства (например,
балансировщик нагрузки) некорректно
управляют шифрованием при большом
потоке.
•Обрывы соединений: либо сервер
закрывает соединения, чтобы не упасть
окончательно, либо лимиты (например, на
количество соединений) выбиваются.
•Ошибки 500: код указывает на внутренние
ошибки в логике сервера — либо сервер не
успевает обработать все запросы, либо
приложение на нем нестабильно при
нагрузке.

23.

Причины
•Маленький пул подключений на сервере.
•Недостаточные ресурсы сервера (CPU, RAM).
•Плохая обработка параллельных запросов (нет
оптимизации под высокую нагрузку).
•Проблемы на уровне SSL-прокси, балансировщиков или
конфигурации сервера.
Что проверить
Как исправить
Логи сервера
Смотреть ошибки в логах (например, /var/log/nginx/error.log,
/var/log/apache2/error.log, или логи вашего веб-приложения).
Настройки сервера
Увеличить лимиты на количество одновременных соединений, воркеров,
таймауты.
SSL-конфигурацию
Проверить конфиги TLS/SSL. Возможно, сервер не держит много
параллельных SSL-сессий.
Код приложения
Проверить, нет ли мест, где сервер может падать при перегрузке
(например, неэффективные обращения к БД).
Масштабирование
Если это часто повторяется, подумать об установке балансировщика или
увеличении серверов.
English     Русский Rules