Что такое библиотека REST Assured и для чего она используется?

«Что такое библиотека REST Assured и для чего она используется?» — вопрос из категории API тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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).