Консольная утилита для тестирования доступности серверов по HTTP/HTTPS протоколам.
- Проверка доступности хостов
- Замер времени ответа сервера
- Статистика: Success, Failed, Errors, Min, Max, Avg
- Асинхронное выполнение запросов
- Поддержка HTTP/2
- Валидация входных данных
- Вывод в консоль или файл
cd app
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txtcd 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 5python bench.py -H https://ya.ru,https://google.com -C 5python bench.py -H https://ya.ru -C 3 -T 5python bench.py -F hosts.txt -C 3python 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
python -c "import core.models; help(core.models)"