Ответ
REST Assured — это популярная Java-библиотека с DSL (предметно-ориентированным языком) для тестирования RESTful API. Она превращает написание HTTP-запросов и проверку ответов в читаемый код, похожий на естественный язык (given/when/then).
Для чего используется:
- Автоматизация тестов REST API вместо ручных проверок в Postman.
- Интеграционное и end-to-end тестирование бэкенд-сервисов.
- Валидация JSON/XML-ответов, статус-кодов, заголовков.
- Работа с аутентификацией (Basic, OAuth, JWT).
Ключевые возможности и синтаксис:
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
// 1. Простой GET-запрос с проверкой статуса и поля в JSON
Given().
baseUri("https://api.example.com").
When().
get("/users/1").
Then().
statusCode(200).
body("name", equalTo("Leanne Graham")).
body("address.city", equalTo("Gwenborough"));
// 2. POST-запрос с телом в формате JSON и извлечением данных из ответа
String userId =
Given().
contentType(ContentType.JSON).
body("{"name": "John", "job": "Engineer"}").
When().
post("/users").
Then().
statusCode(201).
extract().
path("id"); // Извлекаем ID созданного пользователя
// 3. Сложная валидация JSON-массива с помощью Groovy Path
When().
get("/posts").
Then().
body("findAll { it.userId == 1 }.size()", is(10)); // Проверяем, что у userId=1 ровно 10 постов
Преимущества:
- Читаемый DSL.
- Мощная поддержка JSON и XML (с помощью Groovy GPath или XmlPath).
- Интеграция с тестовыми фреймворками (JUnit, TestNG).
- Поддержка спецификаций (Serenity BDD).