Lesson 4

Lesson 4
Тестирование API
Тестирование API полностью отличается от тестирования графического интерфейса, так как для тестировании API практически не нужен. Вместо стандартных видов ввода пользовательских данных (заполнение форм),  для передачи данных с помощью API уже используется определенное программное обеспечение. 

Тестирование API (API Testing) - это процесс проверки соответствия  разработанного API  ожиданиям по функциональности и требованиям которые описаны спецификации.

 Основные преимущества тестирования API:

  • Тестирование на ранних стадиях -  тестирование API обеспечивает доступ к программе без графического интерфейса, а это в свою очередь  помогает  заранее выявить значительные проблемы, которые можно легко исправить, пока правки не стали более громоздкими уже на стадии тестирования графического интерфейса пользователя;
  • Временная эффективность -  API Testing требует меньше затрат времени, чем функциональное тестирование графического интерфейса (GUI testing). С помощью инструментов тестирования и написанных тестов, возможно проверять как валидные так и не валидные данные.
  • Независимость от языка программирования - в тестировании API (API Testing) данные обмениваются с помощью XML или JSON формата передачи данных. Эти форматы передачи являются полностью независимыми от определенного языка программирования, что позволяет выбрать любой язык для автоматизации тестирования API.
  • Простая интеграция с GUI - тесты API могут быть легко интегрированы, что особо полезно, если Вы хотите выполнять функциональные тесты графического интерфейса пользователя после тестирования API. Например, простая интеграция позволит создать новые учетные записи пользователей в программе перед запуском теста GUI.
Что тестируется в каждом из составляющих запроса?
Что тестируется в каждом из составляющих запроса:
  • запрос состоит из метода, URL, header (если необходим) и body (если необходимо):
что тестируется в методе и URL:
  • корректность обработки запроса с корректным методом на соответствующий URL;
  • некорректный метода на соответствующий URI;

что тестируется в header, если header в запросе является обязательным:
  • корректность обработки запроса с корректным header;
  • корректность обработки запроса без заголовка - в ответе от сервера, должно быть указано корректное сообщение;
  • корректность обработки запроса с header, который указан в uppercase, lowercase, camelcase (первый символ заглавный).

что тестируется в header , если заголовок не обязателен:
  • корректность обработки запроса с header - так как header не обязателен, сервером они должны просто игнорироваться;
  • корректность обработки запроса без header.
что тестируется в теле запроса:
  • корректность обработки запроса с валидным телом запроса;
  • некорректное тело: отсутствие обязательных параметров, невалидные типы передаваемых данных, перестановка данных в теле запроса;

ответ состоит из status code, header (если необходим) и body (если необходимо):
  • соответствие status code и тела сообщения;
  • соответствие header в ответе и данным в спецификации;
  • соответствие передаваемых данных в теле ответа, данным в спецификации;
  • корректность текста ошибок и их вариации.

  • Logic
Список полезных статей и литературы по API
Литература для дальнейшего погружения и развития
Полезные разделы в книгах, статьи, блоги.
Enjoy

https://www.goodreads.com/book/show/33831267-autom...
http://shop.oreilly.com/product/0636920021575.do
(или уже с возможностью читать онлайн
https://books.google.com.ua/books?id=4lZcsRwXo6MC&...)
в целом о web сервисах, можно ознакомиться, по глубине погружения - только вам решать http://shop.oreilly.com/product/9780596529260.do
https://www.kobo.com/us/en/ebook/restful-web-apis?...
best practices в автоматизации тестирования API, но они актуальны и для manual
https://www.quora.com/What-are-the-best-practices-...
https://www.sisense.com/blog/rest-api-testing-stra...
https://www.programmableweb.com


Практическое задание
  1. Составить check list для проверки запросов: Upload images (Get and Delete) и Favourites, по спецификации, которая размещена здесь - https://thecatapi1.docs.apiary.io/
  2. Составить bug report.

Генерация x-api-key для TheCatApi

Перейти на страницу https://thecatapi.com/signup и пройти регистрацию. После регистрации, на почту придет письмо, в котором будет указан ваш персональный API key. Данный API key необходимо будет подставить в x-api-key header всех запросов.

Коллекцию и все сопутствующие материалы можно найти по кнопке Download

Подгрузить коллекцию можно нажав на кнопку Upload file и выбрав папку со своим именем.



Вопросы и ответы для самостоятельной подготовки к собеседованию по теории тестирования API. Совершенно не означает, что вас будут спрашивать все вопросы, мы хотели показать разносторонность потенциальных вопросов.

Скачать вопросы можно по кнопке Download ниже
Final API for QA
Вы стали стоить дороже, как перевести ваш опыт в денежное выражение?

Внизу подсказки как подать ваш опыт так, чтобы это был не просто "курс который вы прошли", а показать объем работы который вы проделали до курса:

- когда выявили необходимость изучения REST API testing;
- когда определили, что в вашем проекте будет очень полезно тестирование API;
- когда прокачались, тем самым увеличили качество и глубину тестирования в новом проекте или компании, которой посчастливится вас заполучить.

Фразы и предложения которые вы можете включить в письмо на пересмотр вашей компенсации (зп)
или озвучить во время обсуждения вашего пересмотра:

Option 1:
I have upgraded myself to intermediate REST API testing.
Have tested statically and dynamically 2 different REST APIs.

Option 2:
I have researched through our projects/applications and discovered that we have necessity in REST API testing, so I have started learning and practising.
1) Found practical course and tested statically and dynamically 2 different REST APIs.

OR
2) Found 2 different REST APIs and tested them starting from specification to validation responses and requests.

So I have knowledge and skills to test REST API in our current/our future projects.
As a team member I will be able to improve our testing process and increase test coverage, which will provide us ability to start testing earlier accordingly find issues earlier as well.

Включить в свое CV, посмотрите на пункты ниже, переиначьте их и используйте!

REST API testing experience:
  • Static testing of API specification (Apiary);
  • Specification review;
  • Creation, execution and upgrade tests and collection in POSTMAN;
  • Validation of the requests and responses two APIs;
  • Dynamically tested two different REST APIs with POSTMAN;
  • Bug reports while tests execution.


Пусть все получится! Всегда на связи!