17. REST API. Пишем автотесты с Rest assured - qa-guru/knowledge-base GitHub Wiki
REST API (Representational State Transfer API) — способ взаимодействия сайтов и веб-приложений с сервером.
Для чего нужны тесты на REST API
С помощью REST API кодовая база тестов получается более стабильной и помогает выполнять их быстрее. Также во время выполнения тестов на REST API машине не приходится каждый раз открывать окно браузера, что положительно сказывается на производительности.
Подключаем библиотеку
Для работы с REST-службами на Java используется библиотека REST Assured.
Сайт | GitHub
Для подключения библиотеки к проекту необходимо добавить в раздел dependencies
файла build.gradle
следующую строчку кода:
dependencies {
testImplementation(
"io.rest-assured:rest-assured:5.1.0"
)
}
Given-When-Then
Given-When-Then — стиль представления тестов, разработанный Дэном Нортом и Крисом Мэттсом в рамках развития управляемого поведением (BDD).
Given-When-Then можно представить в виде «Если-Когда-Тогда»:
- Given/Если: состояние перед началом выполнения сценария;
- When/Когда: сам сценарий;
- Then/Тогда: изменение состояния после выполнения сценария.
Пример:
Команда разработчиков создает фичу, позволяющую пользователям выводить деньги со счета. Свою идею они могут представить в виде Given-When-Then следующим образом:
- Given/Если: у пользователя уже есть учетная запись в приложении и баланс, к примеру, 5 000 долларов;
- When/Когда: пользователь хочет вывести 1 000 долларов;
- Then/Тогда: баланс учетной записи становится равен 4 000 долларов и в историю транзакций добавляется новая запись об операции.
Пример теста на REST API
Простой тест на REST API может выглядеть следующим образом:
public class RestTests {
@Test
void checkTotal() {
given()
.when()
.get("https://selenoid.autotests.cloud/status")
.then()
.body("total", is(20));
}
}
Коды ответа HTTP
Коды ответа HTTP помогают понять успешно ли был выполнен запрос и если произошла ошибка, то какая и на чьей стороне. Коды ответов следует знать и доступны они в документации MDN web docs.