Skip to content

timkazy/HTTP_Benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

HTTP Benchmark

Консольная утилита для тестирования доступности серверов по HTTP/HTTPS протоколам.

Возможности

  • Проверка доступности хостов
  • Замер времени ответа сервера
  • Статистика: Success, Failed, Errors, Min, Max, Avg
  • Асинхронное выполнение запросов
  • Поддержка HTTP/2
  • Валидация входных данных
  • Вывод в консоль или файл

Установка

Windows

cd app
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt

Linux / macOS

cd app
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Аргументы командной строки

Аргумент Описание По умолчанию
-H, --hosts Хосты через запятую
-F, --file Файл со списком хостов
-C, --count Количество запросов 1
-T, --timeout Таймаут в секундах 10
-O, --output Файл для вывода консоль

-H и -F взаимно исключающие аргументы (нельзя одновременно применить два флага)

Использование

Тестирование одного хоста

python bench.py -H https://ya.ru -C 5

Тестирование нескольких хостов

python bench.py -H https://ya.ru,https://google.com -C 5

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

python bench.py -H https://ya.ru -C 3 -T 5

Загрузка хостов из файла

python bench.py -F hosts.txt -C 3

Вывод результатов в файл

python bench.py -H https://ya.ru -O result.txt

Пример вывода

=== https://ya.ru ===
Success: 5
Failed: 0
Errors: 0
Min: 45.234ms
Max: 67.891ms
Avg: 52.156ms

=== https://google.com ===
Success: 5
Failed: 0
Errors: 0
Min: 23.456ms
Max: 34.567ms
Avg: 28.901ms

Запуск модульных тестов

python -m pytest -v tests/

Структура проекта

app/
├── bench.py              # точка входа
├── core/
│   ├── models.py         # HostStats, RequestResult
│   └── validator.py      # валидация данных
├── utils/
│   ├── requester.py      # HTTP-запросы
│   └── printer.py        # вывод результатов
└── tests/
    ├── test_validator.py
    ├── test_models.py
    └── test_requester.py

Просмотр документации (docstring)

Пример просмотра

python -c "import core.models; help(core.models)"

About

Console utility for testing server availability via HTTP/HTTPS with response time measurement and statistics

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages