Проект по автоматизации тестирования API учебного сервиса Яндекс.Самокат. Реализован в рамках финального задания 7-го спринта курса по автоматизации тестирования на Java.
| Технология | Назначение | Версия |
|---|---|---|
| Java | Язык программирования | 11 |
| JUnit 4 | Фреймворк для тестирования | 4.13.2 |
| RestAssured | Работа с HTTP-запросами | 4.4.0 |
| Allure | Генерация отчетов о тестировании | 2.24.0 |
| Lombok | Сокращение шаблонного кода (POJO) | 1.18.30 |
| Java Faker | Генерация случайных тестовых данных | 1.0.2 |
Sprint_7
├── src
│ ├── main/java
│ │ ├── base # Базовая настройка спецификаций (BaseMethod)
│ │ ├── client # API-клиенты (CourierClient, OrderClient)
│ │ └── model # POJO-модели и Генератор данных (CourierGenerator)
│ └── test/java
│ ├── courier # Тесты создания и логина курьера
│ └── order # Тесты создания и получения списка заказов
├── target/allure-report # Сгенерированный статический отчет Allure
├── pom.xml # Зависимости и настройки сборки Maven
└── README.md # Описание проекта
- Создание курьера:
- Успешное создание с валидными данными.
- Запрет создания дубликатов (ошибка 409).
- Валидация обязательных полей (логин, пароль).
- Логин курьера:
- Успешная авторизация и получение ID.
- Обработка неверных учетных данных и несуществующих пользователей.
- Очистка данных: Автоматическое удаление созданных курьеров в методе
@After.
- Создание заказа (Parameterized):
- Проверка выбора цветов:
BLACK,GREY, оба цвета, отсутствие цвета.
- Проверка выбора цветов:
- Список заказов:
- Проверка получения JSON-ответа со списком всех заказов.
1. Запуск всех автотестов:
mvn clean test
- Архитектура Client-Server: Вся логика запросов вынесена в классы-клиенты, что делает тесты читаемыми и легкими в поддержке.
- BaseMethod: Использование общего базового класса для настройки
RequestSpecificationи логирования всех запросов/ответов. - ValidatableResponse: Использование цепочек проверок в клиентах для сокращения кода тестов.
- Allure Steps: Шаги тестов обернуты в аннотации
@Stepдля детальной визуализации в отчетах. - Изоляция данных: Реализовано автоматическое удаление тестовых сущностей по окончании каждого теста.
Проект выполнил: Nikita Makoveev