Начало работы с тестированием API - что вы должны знать

Если вы начинаете тестирование API и автоматизацию тестирования API, что вам следует знать? Если вы какое-то время занимались автоматизацией пользовательского интерфейса (Selenium / Cypress), вы обнаружите, что тестирование API для начала немного пугает.

Во-первых, нет интерфейса, с которым можно было бы взаимодействовать. В отличие от тестирования пользовательского интерфейса, при котором вы можете визуализировать действия и взаимодействовать с интерфейсом, тестирование API сводится к простым HTTP-запросам и ответам.

Например, рассмотрим простую функцию входа в систему:


При тестировании из пользовательского интерфейса все, что вам нужно сделать, это перейти на страницу входа, ввести имя пользователя и пароль и нажать кнопку отправки. Вы взаимодействуете с формой на странице.

Как тестировщик, вы можете не знать, что на самом деле происходит за кулисами, когда вы нажимаете кнопку отправки.


Если вы хотите протестировать ту же функциональность входа в систему на уровне API, с чего начать?

Вам нужно знать url адрес конечная точка что вам нужно отправить POST запрос к.

Вам нужно знать, в каком формате вам нужно отправить свой полезная нагрузка . Это JSON, Multipart, данные формы?

Вам также нужно знать, что заголовки вам необходимо предоставить с вашим запросом.


Что тогда после отправки запроса?

Вам нужно знать, что код состояния ответа ожидается вместе с тело ответа . Не только это, но и как извлечь различную информацию из ответа.



Тестирование API - что нужно знать

Я составил список элементов, которые должен знать каждый тестировщик, занимающийся тестированием API и автоматизацией тестирования API.

Этот список ни в коем случае не является исчерпывающим, но представляет собой минимум, необходимый, чтобы знать, хотите ли вы изучать тестирование API:


  • Возможность создать исполняемый исполняемый проект со всеми необходимыми библиотеками для поддержки тестирования API.
  • Понимание конечных точек и взаимодействие с ними через почтальона
  • Создавайте коллекции и шаблоны запросов в почтальоне
  • Знайте HTTP в полном контексте
  • Запросы [структуры запроса, заголовок, метод, тело]
  • Различные методы запроса, GET, POST, PUT, PATCH, DELETE
  • Отправка данных формы через JSON, Multipart, URL-кодирование, параметры запроса
  • Ответы [коды состояния ответов, заголовки ответов, тела ответов]
  • Использование соответствующих библиотек для анализа тела ответа и извлечения значений
  • Цепочка запросов / ответов, извлечение тела ответа и передача его в качестве запроса к следующему вызову
  • Механизм аутентификации, OAuth2, OpenID, JWT, токены доступа
  • REST, JSON, Управление сеансом, Авторизация

Дальнейшее чтение: