Какой у вас опыт работы с REST Assured для тестирования API?

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

Ответ

REST Assured — это Java-библиотека для тестирования REST API. Мой опыт включает:

  • Создание и поддержка автоматизированных тестов для эндпоинтов (GET, POST, PUT, DELETE, PATCH).
  • Валидацию ответов: проверка статус-кодов, заголовков и тел ответов в форматах JSON/XML с использованием Hamcrest-матчеров.
  • Работу с аутентификацией: настройка Basic Auth, OAuth 1/2, токенов.
  • Параметризацию тестов через Data Providers (TestNG) для запуска с разными наборами данных.
  • Интеграцию с TestNG/JUnit для управления тестами и Allure для построения отчетов.
  • Использование JsonPath и XmlPath для навигации и проверки сложных структур данных.
  • Настройку логгирования запросов и ответов с помощью фильтров.

Пример теста для проверки GET-запроса:

import static io.restassured.RestAssured.given;
import static org.hamcrest.Matchers.equalTo;

@Test
public void verifyGetUserReturnsCorrectData() {
    given()
        .baseUri("https://api.example.com")
        .auth().basic("username", "password")
    .when()
        .get("/users/{id}", 1)
    .then()
        .statusCode(200)
        .body("id", equalTo(1))
        .body("name", equalTo("John Doe"));
}

Почему REST Assured? Библиотека предоставляет DSL, похожий на Gherkin (given/when/then), что делает тесты читаемыми и легко поддерживаемыми.