Skip to content

17. REST API. Пишем автотесты с Rest assured

Daniil Shatukhin edited this page Jun 5, 2022 · 1 revision

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.

Содержание
Командная строка
Кодировка UTF-8 в Java
Список полезных книг для автоматизаторов тестирования на языке Java
Список полезных книг для автоматизаторов тестирования на языке Python Структура проекта Github README.md

Java:
1. Вводное занятие. Сразу к практике.
2. Git. GitHub. Погружаемся.
3. Погружаемся в инструментарий и библиотеки
4. Основы Java
5. Продолжаем разрабатывать автотесты. PageObjects
6. JUnit 5
7. Allure Reports
8. Работа с файлами
9. Selenide #1
10. Jenkins. Создаем первую задачу
11. Управляем параметрами в коде и в Jenkins
12. Отправляем уведомления о результатах прохождения автотестов
13. Учимся быстро разрабатывать проекты для тестовых заданий
14. Selenoid
15. Библиотека Owner
16. REST API. Пишем автотесты с Rest assured
17. REST API. Декомпозируем UI тесты. Подключаем отчетность
18. REST API. Продолжаем изучать
19. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack
20. Allure TestOps
21. Переезд на собственную инфраструктуру Java

Python:
1. Вводное занятие. Сразу к практике!
2. Погружаемся в инструментарий и библиотеки
3. Git. GitHub. Погружаемся.
4. Основы Python
5. Selene #1
6. Основы Python. Часть II
7. Основы Python. Часть III
8. Page Object
9. Allure Reports
10. Работаем с файлами Python
11. Jenkins. Создаем первую задачу и управляем параметрами Python
12. Телеграм бот. Отправляем уведомления о результатах прохождения тестов
13. Pytest
14. Selenoid
15. Pytest. Часть II
16. Venv, Poetry и управление зависимостями проекта
17. REST API. Часть I. Пишем автотесты с Requests
18. REST API. Часть II. Продолжаем изучать
19. Мобильная автоматизация #1. Разрабатываем автотесты с Browserstack
20. Мобильная автоматизация #2. Разрабатываем автотесты с эмулятором Android устройства
21. Allure TestOps
22. Переезд на собственную инфраструктуру Python

Clone this wiki locally