evgsid / hlcup_tank

Simple python script to test solution for highloadcup

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

hlcup_tank

Неофициальный тестер для проверки решений 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-коде или теле ответа.

About

Simple python script to test solution for highloadcup


Languages

Language:Python 100.0%