Ответ
Контекст: На проекте регрессионное тестирование REST API выполнялось вручную после каждого билда, что занимало у QA-инженера 2-3 часа.
Инициатива: Предложил и самостоятельно реализовал прототип набора автотестов для критического модуля, чтобы автоматизировать рутину.
Действия:
- Исследование: Сравнил инструменты (RestAssured, Postman Newman, Karate) и выбрал RestAssured за интеграцию с JUnit и читаемость кода.
- Реализация: Написал базовый класс для работы с аутентификацией и набор ключевых тестов.
import io.restassured.RestAssured; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; import org.junit.Test;
public class UserApiAutomatedTest { private String authToken = "eyJhbG...";
@Test
public void getExistingUser_Returns200AndCorrectBody() {
given()
.header("Authorization", "Bearer " + authToken) // Автоматизация заголовка
.when()
.get("/api/users/123")
.then()
.statusCode(200) // Автоматическая проверка статуса
.body("id", equalTo(123)) // Автоматическая проверка тела ответа
.body("username", equalTo("john_doe"));
}
}
3. **Демонстрация:** Показал команде, как эти тесты запускаются из CI/CD пайплайна за 5 минут.
**Результат:**
* Время регресса для модуля сократилось **на 90%**.
* Команда приняла решение включить автотесты в пайплайн и масштабировать подход.
* Уменьшилось количество ошибок, «утекавших» в релиз.