Выполнил Калямов Ильфат
Эта консольная программа выполняет проверку доступности сайтов по HTTP протоколу, замеряет время выполнения запроса и выводит статистику по скорости ответа сервера.
-
Принимает в качестве аргумента командной строки ключ –H/--hosts со значением хоста, на который будут выполняться запросы. Можно указать несколько адресов через запятую без пробелов;
-
Есть возможность указать ключ –C/--count со значением количества запросов, которые будут отправлены на каждый хост для выведения среднего значения (по умолчанию 1);
-
Осуществляется вывод итоговой статистики по выполненным запросам для каждого хоста отдельно. В выводе отображаются такие значения, как:
- Host – имя тестируемого хоста;
- Success – количество успешных запросов;
- Failed – количество запросов, на которые сервер ответил ошибкой (400 или 500);
- Errors – количество запросов, во время которых сервер был недоступен;
- Min – минимальное время выполнения запроса;
- Max – максимальное время выполнения запроса;
- Avg – среднее время выполнения запроса.
-
Есть возможность указать ключ –F/--file – путь до файла со списком адресов разбитый на строки. Одновременно может быть указан только один из ключей –F или -H
-
Есть возможность указать ключ –O/--output – путь до файла куда нужно сохранить вывод. Если не указан, то вывод отправляется в консоль.
-
Клонировать репозиторий:
https://github.com/for-what-or/server_acess_test.gitИли скачать архив:
https://github.com/for-what-or/server_acess_test/archive/refs/heads/main.zip -
Создать и запустить виртуальное окружение:
python -m venv venvvenv/scripts/activate -
Установить зависимости:
pip install -r requirements.txtДля обращений к серверам используется библиотека
requests, которую и необходимо установить. -
Запустить программу со следующими аргуемнтами:
-H или -F (Обязателен один из них) -H - Если в программу передаются хосты на проверку через запятую без пробелов. -F - Если в программу передается путь к файлу со списком хостов. -C - Если передается количество запросов к каждому хосту, по умолчанию 1. -O - Если передается путь к файлу вывода полученной статистике, если аргумент не передан вывод происходит в консоль.Примеры запуска:
python bench.py -H https://example.com,https://ya.ru -C 10 -O result.txtpython bench.py -F input.txt -C 20Работают как относительные пути
.\result.tx, так и абсолютныеX:\Projects\result.txt
- Команда:
Вывод в консоли:
python bench.py -H https://example.com,https://ya.ru -C 10 -O result.txtСодержимое файла result.txt:Результат успешно записан в файл: result.txtHost: https://example.com Success: 10 Failed: 0 Errors: 0 Min: 0.366 s Max: 0.487 s Avg: 0.397 s -------------------------------------------------- Host: https://ya.ru Success: 10 Failed: 0 Errors: 0 Min: 0.680 s Max: 1.201 s Avg: 0.837 s -------------------------------------------------- - Команда:
Содержимое файла input.txt:
python bench.py -F input.txt -C 20Вывод в консоль:https://ya.ru https://google.com https://example.com https://career.infotecs.ru https://menyanetu.ruHost: https://ya.ru Success: 20 Failed: 0 Errors: 0 Min: 0.668 s Max: 1.998 s Avg: 0.897 s -------------------------------------------------- Host: https://google.com Success: 20 Failed: 0 Errors: 0 Min: 0.926 s Max: 1.397 s Avg: 1.056 s -------------------------------------------------- Host: https://example.com Success: 20 Failed: 0 Errors: 0 Min: 0.370 s Max: 0.811 s Avg: 0.478 s -------------------------------------------------- Host: https://career.infotecs.ru Success: 0 Failed: 20 Errors: 0 Min: 0.477 s Max: 0.674 s Avg: 0.529 s -------------------------------------------------- Host: https://menyanetu.ru Success: 0 Failed: 0 Errors: 20 Min/Max/Avg: нет успешных запросов --------------------------------------------------