Утилита для измерения производительности и оценки отказоустойчивости API.
-
Запуск чеков каждые t секунд (задается флагом)
-
Чеки представляют собой распараллеленные n запросов к тестируемому API
-
Сохранение результатов каждого чека в файл
-
Процент успешных/неуспешных запросов
-
Среднее время ответа
-
Диаграммы распределения кодов ответа
-
Используемый язык: Go
-
Использование горутин для распараллеливания запросов
-
Остановка чека по таймауту или отмене контекста
-
Docker контейнер для запуска утилиты
-
Хранение результатов тестов в файле внутри контейнера
-
Возможность получить результаты теста из контейнера
Пример вызова без Docker:
go run main.go -u "https://jsonplaceholder.typicode.com/posts" -n 10 -i 5s -t 30s
-
-u URL тестируемого API
-
-n Количество параллельных запросов в чеке
-
-i Интервал между чеками в секундах
-
-t Таймаут одного чека в секундах
2023/07/29 13:57:43 Тестируемый URL: https://jsonplaceholder.typicode.com/posts
2023/07/29 13:57:43 Количество параллельных запросов в чеке: 1
2023/07/29 13:57:43 Интервал между чеками: 10.00 s
2023/07/29 13:57:43 Таймаут одного чека: 10.00 s
2023/07/29 13:57:43 ------------------------------------------
2023/07/29 13:57:43 Запуск чека...
2023/07/29 13:57:43 Успешных запросов: 100.00%
2023/07/29 13:57:43 Средняя задержка: 179 мс
2023/07/29 13:57:43 Коды ответов от сервера: [200]
2023/07/29 13:57:43 Чек завершен.
2023/07/29 13:57:43 ------------------------------------------
2023/07/29 13:57:45 Получен сигнал SIGINT. Завершение чека...
- Сборка Docker-образа приложения:
make dockerBuild
- Создание внешнего Docker volume. Используется для сохранения результатов тестов между различными запусками контейнера:
make createVolume
- Запуск контейнера с использованием созданного Docker-образа:
make docker
- Копирование результатов тестов из контейнера:
make extractFiles