Практикум Java — JUnit и REST Assured
Проверка в БД — SQL для тестировщика, Основы БД, транзакции, PostgreSQL. Карта — о разделе.
Практикум №5 (Java). После pytest-практикума — тот же цикл Arrange → Act → Assert, но в экосистеме Java. Стек: JUnit 5 (запуск и assertions) + REST Assured (HTTP API). Подходит для enterprise-команд, Android-автоматизации (Espresso) и Selenium на Java.
Зачем Java тестировщику
Java часто встречается в:
- бэкенде (Spring) и микросервисах;
- Android UI-тестах (Espresso);
- корпоративной автоматизации (Selenium + TestNG/JUnit);
- API-тестах через REST Assured.
Если вы уже знаете тестирование API и интеграционные тесты, этот практикум закрепляет их на втором языке.
Подготовка окружения
Нужны JDK 17+ (LTS) и Maven или Gradle. Проверка:
java -version
mvn -version
Создайте Maven-проект или добавьте в pom.xml зависимости:
Код ITЗагрузка примера кода…
Структура:
src/
├── main/java/ # код приложения (может быть пустым в учебном проекте)
└── test/java/
└── api/
└── HealthApiTest.java
Подробнее про JUnit в каталоге инструментов.
Шаг 1 — простой JUnit-тест (unit)
Проверим чистую функцию без сети — так же, как test_calculator.py в Подготовка среды и создание первого теста:
package utils;
public class StringUtils {
public static boolean isBlank(String s) {
return s == null || s.trim().isEmpty();
}
}
Код ITЗагрузка примера кода…
Запуск:
mvn test
Шаг 2 — API-тест с REST Assured
Проверим публичный учебный API JSONPlaceholder:
Код ITЗагрузка примера кода…
Здесь Given–When–Then — аналог Arrange–Act–Assert из автоматизации.
Шаг 3 — параметризация
Связь с тест-дизайном — одна логика, несколько входов:
Код ITЗагрузка примера кода…
Связь с Selenium и Appium
Тот же Maven-проект можно расширить:
- Selenium WebDriver — см. Selenium;
- Appium Java Client — см. мобильное тестирование.
Page Object и явные ожидания (WebDriverWait) — те же принципы, что в Проверка пользовательского сценария.
Типичные ошибки
| Ошибка | Решение |
|---|---|
Connection refused | Проверьте URL, VPN, доступ к стенду |
| Тест зависит от порядка запуска | Изолируйте данные, не шарьте state между тестами |
| Хардкод токена в коде | Переменные окружения или @BeforeAll из CI secrets |
| Дублирование HTTP-логики | Вынесите given() в helper или базовый класс |
Что дальше
- Интеграционное тестирование — стыки сервисов и БД.
- Selenium на Java — UI-автоматизация.
- Git для QA — хранение тестов в репозитории.
- Запуск
mvn testв CI/CD.
Навигация по разделу "Тестирование"
- Практикум: 1011 Python · Проверка взаимодействия компонентов · Проверка пользовательского сценария · Проверка надежности под нагрузкой · 1015 Java · 1016 JS
- Бонус-модули: Дополнительные модули для тестировщика
- Маршрут: О разделе