Перейти к основному содержимому

Практикум Java — JUnit и REST Assured

Тестировщику Разработчику
Теория данных (раздел 3)

Практикум №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-проект можно расширить:

Page Object и явные ожидания (WebDriverWait) — те же принципы, что в Проверка пользовательского сценария.


Типичные ошибки

ОшибкаРешение
Connection refusedПроверьте URL, VPN, доступ к стенду
Тест зависит от порядка запускаИзолируйте данные, не шарьте state между тестами
Хардкод токена в кодеПеременные окружения или @BeforeAll из CI secrets
Дублирование HTTP-логикиВынесите given() в helper или базовый класс

Что дальше

  1. Интеграционное тестирование — стыки сервисов и БД.
  2. Selenium на Java — UI-автоматизация.
  3. Git для QA — хранение тестов в репозитории.
  4. Запуск mvn test в CI/CD.

Навигация по разделу "Тестирование"