API test automation with Java 21, OkHttp, REST Assured and Retrofit.
В проекте один набор операций с пользователями Reqres проверяется тремя способами обращения к API. Это позволяет сравнить ручное построение HTTP-запросов, декларативные спецификации REST Assured и типизированный Retrofit-интерфейс.
- GET: получение пользователя и обработка отсутствующего ресурса.
- POST: создание пользователя.
- PUT: обновление пользователя.
- DELETE: удаление пользователя.
- Статусы HTTP, содержимое ответов и сценарии без API-ключа.
- 12 тестовых классов — по четыре на каждый клиент.
Reqres — внешний демонстрационный API. Проверки описывают ожидаемый контракт, зафиксированный в коде; доступность сервиса, тариф и требования к ключу могут меняться. POST/PUT в демонстрационном API не следует считать доказательством долговременного сохранения данных.
Java 21 · Gradle 9.3.0 · JUnit 5.10.2 · AssertJ 3.27.3
OkHttp 4.12.0 · REST Assured 5.5.7 · Retrofit 2.11.0 · Jackson/Gson · Lombok
| Каталог | Назначение |
|---|---|
| src/main/java/reqres/clients | OkHttp-клиент |
| src/main/java/reqres/models | DTO запросов и ответов |
| src/main/java/reqres/restassured/models | Модели Java Record |
| src/main/java/reqres/retrofit | Retrofit-сервис и фабрика клиента |
| src/test/java/reqres | Тесты и базовые классы |
Установите JDK 21. Gradle загружается через Wrapper. Для сетевых тестов нужен действующий ключ Reqres с доступом к используемым endpoints.
git clone https://github.com/rootofevi1/api-testing-reqres.git
cd api-testing-reqres
./gradlew testClasses
export REQRES_API_KEY='<ваш ключ>'
./gradlew testWindows PowerShell:
$env:REQRES_API_KEY = '<ваш ключ>'
.\gradlew.bat testКлюч не входит в репозиторий. Также поддерживается Gradle-свойство apiKey, например в личном ~/.gradle/gradle.properties.
Выбор клиента:
./gradlew test --tests 'reqres.tests.*'
./gradlew test --tests 'reqres.restassured.tests.*'
./gradlew test --tests 'reqres.retrofit.tests.*'HTML: build/reports/tests/test/index.html. XML: build/test-results/test/.
Автоматическая CI-проверка компилирует код без ключа. Сетевые тесты запускаются вручную в Actions с включённым run_api_tests и настроенным Repository Secret REQRES_API_KEY. Результат компиляции не является результатом сетевых тестов.
Опубликованы код решения и необходимая конфигурация. Тексты учебных заданий, материалы курса и история исходного учебного репозитория не включены.