Skip to content

VarvaraYurchenko/QA_Python_API_testing_sprint_7

Repository files navigation

Sprint_7

Автотесты для API сервиса «Яндекс.Самокат»

Ссылки

Структура проекта

Проект реализован по принципам модульности и повторного использования.
Все вспомогательные компоненты вынесены в отдельные файлы.

  • data — папка с константами и тестовыми данными
    • URL — базовый URL и эндпоинты API
    • Message — тексты ошибок из API
    • TestData — тестовые данные (например, несуществующие логин и пароль)
  • generators — генераторы тестовых данных
    • generate_fake_courier() — возвращает данные нового курьера
    • generate_order_data() — возвращает тело заказа
  • helpers — вспомогательные функции
    • modify_order_data(key, value) — изменяет поле в теле заказа
  • methods — методы API
    • CourierMethods — создание, логин, удаление курьера
    • OrderMethods — создание заказа, получение списка заказов
  • tests — папка с автотестами
    • test_create_courier.py — тесты на создание курьера
    • test_login_courier.py — тесты на авторизацию курьера
    • test_create_order.py — тесты на создание заказа
    • test_get_orders.py — тесты на получение списка заказов
  • conftest.py — фикстуры для подготовки и очистки данных
  • requirements.txt — зависимости
  • target — папка с готовым Allure-отчётом

Инструкция по запуску:

1. Установите зависимости:

pip install -r requirements.txt

2. Запустить все тесты и записать отчет:

pytest --alluredir=./allure-results

3. Посмотреть отчет по прогону html

allure serve ./allure-results

Описание реализованных тестов

Создание курьера (test_create_courier.py)

Тесты проверяют корректность регистрации курьера и обработку ошибок.

  • test_create_courier_success
    • Проверяет, что можно создать курьера с валидными данными.
    • Ожидаемый результат: статус 201, {"ok": true}.
  • test_create_courier_with_existing_login_conflict
    • Проверяет, что нельзя создать двух курьеров с одинаковым логином.
    • Ожидаемый результат: статус 409, сообщение об ошибке.
  • test_create_courier_without_required_field_error (параметризованный)
    • Проверяет, что нельзя создать курьера без обязательных полей: login, password.
    • Ожидаемый результат: статус 400, сообщение об ошибке.

Авторизация курьера (test_login_courier.py)

Тесты проверяют логику входа в систему.

  • test_login_courier_success
    • Проверяет, что зарегистрированный курьер может авторизоваться.
    • Ожидаемый результат: статус 200, в ответе есть id.
  • test_login_courier_without_login_error, test_login_courier_without_password_error
    • Проверяют, что нельзя авторизоваться без логина или пароля.
    • Ожидаемый результат: статус 400, сообщение об ошибке.
  • test_login_courier_invalid_login_error, test_login_courier_invalid_password_error
    • Проверяют, что нельзя авторизоваться с несуществующим логином или паролем.
    • Ожидаемый результат: статус 404, сообщение об ошибке.

Создание заказа (test_create_order.py)

Тесты проверяют создание заказа с разными цветами самоката.

  • test_create_order_with_different_colors_success (параметризованный)
    • Проверяет, что можно создать заказ с цветами: ["BLACK"], ["GREY"], ["BLACK", "GREY"], без цвета.
    • Ожидаемый результат: статус 201, в ответе есть track.

Получение списка заказов (test_get_orders.py)

Тесты проверяют доступ к списку заказов.

  • test_get_order_list_success
    • Проверяет, что можно получить список всех заказов.
    • Ожидаемый результат: статус 200, в ответе есть ключ orders, значение — список.

Фикстуры

  • create_and_delete_courier
    • Создаёт курьера перед тестом, удаляет после.
    • Используется в тестах, где нужен существующий курьер.
  • delete_courier
    • Позволяет добавить учётные данные для удаления после теста.
    • Используется в тестах, где курьер создаётся вручную.

About

API-автотесты для сервиса Яндекс.Самокат

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages