- Вызовы GET, POST, DELETE (3 объектов), PUT на корректность проверки базовой работоспособности;
- Вызов HEAD при GET-запросе для проверки передаваемых Headers;
- Вызов всех объектов в БД через GET и проверка корректности (путём добавления 3х герояв и сравнения состояния до/после);
- Проверка всех объектов на идентичные сущности;
- Негативные тесты на недоступные операции с объектами;
- Проверки кодов возврата (200, 400, 401, 404, 500), используя различные методы;
- Проверки ответов сервера при повторном удалении персонажа, создании существующего и тд.;
- Проверка условий мин/макс длины полей и выхода за эти условия;
- Создание персонажа лишь с требуемым полем и без него;
- Валидация полученных схем персонажей и ответов сервера по типам данных и некоторым символьным ограничениям;
- Прикручен Allure.
`--login_auth=<login> --password_auth=<password>`
`../test_ticket/source/`
-
test_http_functional: Start of tests covering standard HTTP methods
-
test_objects_api: Start of tests covering the correctness of objects in the database
-
test_negative_cases: Start of tests covering negative cases
`rand_user@rand_os:(venv).../source$ pytest -vvs --login_auth=<login> --password_auth=<password> -m test_http_functional`
`rand_user@rand_os:(venv).../source$ pytest -vv --login_auth <login> --password_auth <password> --alluredir=/tmp/allure`
`rand_user@rand_os:(venv).../source$ .../allure-2.7.0/bin/allure serve /tmp/allure/`
При вызове набора/тестового модуля/теста, выполняется вызов source.helpers.work_with_api
, где организуется URL запрос
с требуемым HTTP методом (используя библиотеку requests
), запрос выполняется, а его результат приходит в
source.helpers.work_with_asserting_respose
. В последнем классе выполняется "разбиение" HTTP ответа на нужные части и
их возврат тестам по требованию.
На тесты накладываются декораторы аллюра и валидация полученных полей JSON.
-
../source/data/ - данные, необходимые для работы с объектами в БД, ответами от API и JSON схемки
-
../source/helpers/work_with_api.py - организация HTTP запросов
-
../source/helpers/work_with_asserting_respose.py - дробление HTTP ответа на нужные части, assert'ing в тесты
-
../source/helpers/work_with_fields.py - логика работы с полями объектов
-
../source/tests/test_api - тестовый набор
-
../source/conftest.py - фикстуры
-
../source/pytest.ini - custom марки