> For the complete documentation index, see [llms.txt](https://superqa.gitbook.io/qa/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://superqa.gitbook.io/qa/api/postman.md).

# Postman

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

**Возможности продукта:**

· Создание и отправка запросов

· Изменение параметров запросов.

· Сохранение созданных запросы в коллекции и папках.

· Запуск автоматических тестов на основе коллекций при помощи Collection Runner.

· Изменение окружения для одинаковых запросов.

· Добавление контрольных точек к вызову API.

### Создание метода Postman

Стоит отметить, что тестирование при помощи API возможно только при наличии самого API и документации от разработчика. Это позволит точно понимать функции продукта без противостояния инженера QA и программиста на вечную тему: «Это баг!» & «Нет, это фича!».

В статье для начинающих мы рассмотрим ручное тестирование по 4 основным запросам:

· **POST** – создание ресурса на сервисе, т. е. отправку данных на сервер.

· **GET** – получение ресурса с сайта.

· **PUT** – обновление данных на сервере.

· **DELETE** – удаление ресурса с сайта.

Речь пойдёт об архитектуре REST, часто использующейся для взаимодействия сайтов и приложений. При этом активно применяется JSON (JavaScript Object Notation – текстовый формат обмена данными на языке JavaScript). Практиковать составление запросов можно, используя ресурс[ reqres.in](https://reqres.in/). Здесь представлены разные Request и ожидаемые результаты (Response). Это и будет тренировочным API с документацией.

При работе с Postman стоит знать о статусах и классах состояний сервера:

![Классы состояний сервера](https://media.proglib.io/posts/2020/12/09/8e5267722dc3a9a31aee356637ad2a4e.jpg)Классы состояний сервера

В примерах рассмотрим статус **200 ОК**, который информирует об успешности выполнения операции, т.е. пользователь когда получает ожидаемый результат – страницу с запрашиваемой информацией.

### Примеры запросов в Postman для быстрого обучения тестировщика

После запуска в Postman стоит создать папку с коллекцией запросов. Для этого нужно во вкладке Collections нажать на New Collection.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/5bca478dd4abdb3399fd5b43bade778f.jpg)

Указываем название коллекции.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/47fe0892082a1e98b09b2af80fc0ea33.jpg)

Создаем запрос нажатием на Add requests.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/c5b31a8c9e682a2f7555f399a182c835.jpg)

#### POST

Рассмотрим регистрацию пользователя, поэтому указываем соответствующее название и нажимаем на Save to \[Collections name].

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/071cb54f7bc6c4509f818ef00a73f5bc.jpg)

Выбираем **POST**.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/afc837db765d266e4e50cd5dceda8455.jpg)

Указываем url тестируемого сайта.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/99b0c63e8b7eb32ada977bca66d64a8e.jpg)

Прописываем название соответствующего API, в данном случае api/register.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/da3e81edaafb4a98d6d9841178562781.jpg)

Во вкладке Body выбираем raw.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/0493c7b6108702c364c2f7009f82e1fb.jpg)

Далее выбираем формат текста JSON.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/c29d8310ae5d3b55644374d598833477.jpg)

Нажатием на Send отправляем данные.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/e859dacb44c7c164c92edfd47964a283.jpg)

В соответствующем поле видим ожидаемый результат, указанный в документации и статус **200 ОК**.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/33218a98fd8042a2e4554292195b2704.jpg)

#### GET

Выполним запрос на получение данных о созданном пользователе, выбираем GET.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/d5a53077abe344aaa450b578afeba3a5.jpg)

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

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/0a91fc75ac5081f01ff5be69eae5b42c.jpg)

#### PUT

Попробуем обновить данные пользователя, для этого создаём update\_user.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/cbe3d5f7741d7923fdee3ff108a09588.jpg)

Выбраем PUT.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/039730bf22936eb823db71da30b2bd2b.jpg)

Указываем ссылку с url и API, открываем окно для кода.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/59dc85b09f0271c80bcc34e71dc8cbf1.jpg)

Отправляем новые данные.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/2d65a7a39bb8a409b2fc5b620ff99dce.jpg)

В результате указана обновленная информация и время, когда были внесены изменения. Дополнительно успешность операции подтверждает ответ 200 от сервера.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/8355dc0506abf712d35006f8dc6695c9.jpg)

#### DELETE

Создаём запрос на удаление пользователя.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/866fc1f295bcc25135d08f9c6b4dcf82.jpg)

Выбираем DELETE.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/76ed9f451be8af5d4867f62d513720bb.jpg)

Указываем полную ссылку на страницу пользователя и отправляем.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/37a48be576cfd8da7e896b13b42802da.jpg)

Получаем от сервера в ответ статус **204 No Content**, информирующий об успешности запроса, но без содержимого, т. е. данные были успешно удалены.

![👨‍🔧️ API для QA: учимся тестированию ПО без доступа к коду](https://media.proglib.io/posts/2020/12/09/b768fc9c6039cdd07a5e18439e71cd1d.jpg)

### Документация, необходимая тестировщику для обучения

Ознакомиться со всеми функциями инструмента можно в[ документации](https://learning.postman.com/docs/publishing-your-api/documenting-your-api/) от разработчиков Postman. В информационном центре представлена инструкция по составлению ручных и автоматизированных запросов, настройке коллекций, использованию cookies, сбору данных, а также по составлению запросов для устранения ошибок и прочее.
