Неофициальный тестер для проверки решений highload cup. Тестер умеет проверять код ответа, а также содержимое ответа вашего сервера.
Тестер написан с использованием Python 2.7. Из дополнительных пакетов используется requests, который можно установить как:
pip install requests
Возможно, эту команду нужно будет выполнить с привилегией суперпользователя (через sudo)
Чтобы запустить тестер, нужно выполнить следующую минимальную команду:
python tank.py --ammo_dir=/path/to/ammo/root
При выполнении приведенной выше команды тестер начнет последовательно отправлять запросы к вашему серверу, запущенному по адресу http://localhost:8080, и проверять валидность ответов. Запросы и ответы берутся из патронов/ожидаемых ответов танка. Последовательно будет запущена фаза 1, потом фаза 2, и фаза 3.
Тестер поддерживает следующие параметры:
--host - хост, на котором запущен ваш сервер, по-умолчанию http://localhost:8080
--ammo_dir - корень директории, в которой лежат патроны к танку и ответы, т.е. путь до директории, в которой расположены ammo и answers
--all - запустить все тесты (фаза 1, фаза 2, фаза 3) последовательно. Это условие по-умолчанию.
С помощью следующих флагов можно выбирать фазу, которую хочется запустить:
--phase1, --phase2, --phase3 Эти фазы можно комбинировать, например, --phase1 --phase2 или --phase2 --phase3. Очевидно, что --phase1 phase3 не имеет смысла, потому что не была проведена фаза 2, которая модифицирует данные для фазы 3, но запустить такие тесты все равно можно. Независимо от порядка переданных флагов --phaseX, они всегда выполняются в порядке 1 - 2 - 3.
--all и --phaseX взаимоисключающие флаги, можно использовать либо --all, либо комбинацию флагов --phaseX.
--ignore_results - отключает проверку ответов. В этом случае тестер будет просто обстреливать решение, но не будет проверять правильность ответов. Может быть полезно для тестирования сервера на падения.
--fail_on_error - прерывать работу тестера сразу после нахождения ошибки, в http-коде или теле ответа.