Этот проект содержит автотесты для API учебного сервиса Яндекс Самокат, реализованные с использованием pytest, allure, requests и faker.
Реализованы проверки следующих ручек:
POST /api/v1/courier— создание курьераPOST /api/v1/courier/login— авторизация курьераPOST /api/v1/orders— создание заказаGET /api/v1/orders— получение списка заказов
-
Клонируйте репозиторий:
git clone https://github.com/yourusername/Sprint_7.git cd Sprint_7 -
Создайте виртуальное окружение (рекомендуется):
- Для Windows:
python -m venv venv venv\Scripts\activate
- Для macOS/Linux:
python3 -m venv venv source venv/bin/activate
- Для Windows:
-
Установите зависимости:
pip install -r requirements.txt
-
Для запуска всех тестов:
pytest -v --alluredir=target/allure-results
-
Для просмотра отчёта Allure:
allure serve target/allure-results
Sprint_7/
├── conftest.py # фикстуры
├── urls.py # базовый URL
├── endpoints.py # относительные пути к ручкам
├── generator.py # генерация данных для тестов
├── data.py # статичные данные
├── test_create_courier.py # тесты на создание курьера
├── test_login_courier.py # тесты на авторизацию курьера
├── test_create_order.py # тесты на создание заказа
├── test_list_orders.py # тесты на список заказов
├── requirements.txt # зависимости проекта
└── .gitignore # исключённые из репозитория файлы
Тестами покрыты следующие сценарии:
- успешное создание курьера
- невозможность создать двух одинаковых
- валидация обязательных полей (
login,password) - корректные коды ответов (201, 400, 409)
- успешная авторизация (возвращается
id) - ошибки при неправильных/неполных данных
- ошибки при попытке авторизации несуществующего курьера
- заказ с одним, двумя, без цветов
trackв теле ответа
- в теле ответа возвращается список заказов
- Добавлена фикстура
new_courierсyieldдля автоматического удаления созданного курьера. - Используется библиотека
fakerдля генерации уникальных данных. - Использована параметризация тестов там, где это целесообразно.
Для коммита отчёта Allure в репозиторий (если target в .gitignore):
git add -f ./target/allure-results/.
git commit -m "add allure report"
git pushВключены типичные исключения для Python-проектов и папки с отчётами Allure:
# Python
__pycache__/
*.pyc
.venv/
# Allure
target/