🤖 Академия QA-автоматизации
← Основы QA-автоматизации: курс для начинающих
Этап 4. Знакомство с инструментами тестировщика

Postman: что такое API и как проверить работу сервера без написания программ

Зачем это знать?

Представьте, что вы заказываете пиццу по телефону. Вы говорите оператору: «Хочу пиццу "Маргарита", размер большой, доставка на улицу Ленина, 5». Оператор принимает заказ, передаёт его на кухню, а потом сообщает вам номер заказа и примерное время доставки. Вы не видите кухню, не знаете, как готовится пицца, — вы просто общаетесь через оператора.

Именно так работает API в мире программ. И именно это QA-инженеры проверяют каждый день — ещё до того, как пользователь увидит красивую кнопку на экране.

В этом уроке вы узнаете:

  • что такое API простыми словами,
  • как программы «разговаривают» друг с другом,
  • как инструмент Postman позволяет тестировать это общение без единой строки кода.

Теория

Что такое программа и сервер?

Прежде чем говорить об API, давайте разберёмся с двумя базовыми понятиями.

Программа (или приложение) — это набор инструкций, которые компьютер выполняет, чтобы решить какую-то задачу. Например, приложение банка на вашем телефоне показывает баланс счёта, позволяет переводить деньги и т.д.

Сервер — это мощный компьютер, который постоянно включён, подключён к интернету и хранит данные. Когда вы открываете приложение банка, ваш телефон «спрашивает» сервер банка: «Какой баланс у счёта номер 12345?» — и сервер отвечает.

💡 Аналогия: Сервер — это склад магазина. Приложение на вашем телефоне — это витрина. Витрина не хранит товар сама, она запрашивает его со склада.


Что такое API?

API (читается «эй-пи-ай», расшифровывается как Application Programming Interface, то есть «Интерфейс программирования приложений») — это набор правил, по которым одна программа может обращаться к другой.

Проще говоря, API — это договорённость о том, как спрашивать и как отвечать.

Вернёмся к аналогии с пиццей:

  • Вы — это приложение (клиент).
  • Оператор — это API.
  • Кухня — это сервер.

Оператор принимает заказы строго по определённым правилам: нужно назвать блюдо, размер и адрес. Если вы скажете что-то непонятное — оператор не поймёт и откажет. Точно так же API принимает запросы строго в определённом формате.


Как выглядит общение через API?

Когда программа обращается к серверу через API, это называется запрос (от английского request — «просьба»). Сервер отвечает — это называется ответ (response — «ответ»).

Каждый запрос состоит из нескольких частей:

1. Метод запроса

Метод — это «тип просьбы». Самые распространённые методы:

Метод Что означает Пример из жизни
GET Получить данные «Скажи мне мой баланс»
POST Создать что-то новое «Зарегистрируй нового пользователя»
PUT Обновить существующее «Измени мой адрес доставки»
DELETE Удалить что-то «Удали мой аккаунт»

2. URL — адрес запроса

URL (читается «у-эр-эл») — это адрес ресурса в интернете. Вы видите URL каждый день в адресной строке браузера. Например: https://api.example.com/users/42

Разберём этот адрес по частям:

  • https:// — протокол (способ передачи данных, «язык» общения)
  • api.example.com — доменное имя сервера (как адрес дома)
  • /users/42 — путь к конкретному ресурсу (как номер квартиры — здесь «пользователь с номером 42»)

3. Тело запроса (Body)

Некоторые запросы передают дополнительные данные — например, при создании нового пользователя нужно передать его имя, email и пароль. Эти данные помещаются в тело запроса.

Тело запроса чаще всего записывается в формате JSON (читается «джейсон», JavaScript Object Notation — «нотация объектов JavaScript»). JSON — это просто способ записать структурированные данные в виде текста. Выглядит он вот так:

{
  "name": "Анна Иванова",
  "email": "[email protected]",
  "age": 28
}

Фигурные скобки {} обозначают объект (набор данных), каждая пара "ключ": значение — это одно поле. Всё просто!

4. Код ответа (Status Code)

Когда сервер отвечает, он всегда присылает специальный код состояния — трёхзначное число, которое сообщает, как прошёл запрос.

Код Что означает Аналогия
200 Всё хорошо, вот данные «Да, ваш баланс — 5000 рублей»
201 Успешно создано «Ваш аккаунт зарегистрирован»
400 Ошибка в запросе (вы что-то неправильно спросили) «Вы не назвали адрес доставки»
401 Не авторизован (вы не представились) «Назовите пароль»
403 Доступ запрещён «У вас нет прав на это действие»
404 Не найдено «Такого пользователя не существует»
500 Ошибка на сервере «На кухне что-то пошло не так»

💡 Совет: Запомните три главные группы: коды 2xx — успех, 4xx — ошибка на стороне того, кто спрашивает, 5xx — ошибка на сервере. Это очень поможет при тестировании.


Зачем тестировщику проверять API?

Представьте: вы тестируете мобильное приложение банка. На экране написано «Ваш баланс: 10 000 рублей», но на самом деле на счёте 15 000 рублей. Где ошибка?

Вариантов два:

  1. API работает правильно — сервер присылает верную сумму (15 000), но приложение отображает её неверно. Это ошибка в интерфейсе.
  2. API работает неправильно — сервер присылает неверную сумму (10 000). Это ошибка на сервере.

Тестируя API отдельно от интерфейса, тестировщик может быстро определить, где именно находится проблема. Это экономит часы работы.


Что такое Postman?

Postman — это программа (инструмент), которая позволяет отправлять запросы к API и смотреть ответы сервера. Название буквально переводится как «почтальон» — Postman доставляет ваши запросы серверу и приносит обратно ответы.

Главное достоинство Postman для начинающих: не нужно писать код. Вы просто заполняете поля в удобном интерфейсе, нажимаете кнопку «Send» («Отправить») и видите, что ответил сервер.

Postman — бесплатный инструмент, его можно скачать на сайте postman.com или использовать прямо в браузере.


Интерфейс Postman: основные элементы

После установки и запуска Postman вы увидите главное окно. Разберём его ключевые части:

┌─────────────────────────────────────────────────────────────────┐
│  [GET ▼]  [ https://api.example.com/users          ] [Send]     │
├─────────────────────────────────────────────────────────────────┤
│  Params | Authorization | Headers | Body                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ОТВЕТ СЕРВЕРА:                                                 │
│  Status: 200 OK    Time: 243ms    Size: 1.2 KB                  │
│                                                                 │
│  Body | Cookies | Headers                                       │
│  {                                                              │
│    "id": 1,                                                     │
│    "name": "Иван Петров"                                        │
│  }                                                              │
└─────────────────────────────────────────────────────────────────┘
  • Выпадающий список метода (GET, POST и т.д.) — выбираете тип запроса.
  • Поле URL — вводите адрес, к которому хотите обратиться.
  • Кнопка Send — отправляет запрос.
  • Вкладки под URL — здесь настраиваются дополнительные параметры запроса.
  • Нижняя часть — здесь отображается ответ сервера: код состояния, время ответа и тело ответа.

Пример: проверяем публичный API

Для практики воспользуемся бесплатным тестовым API — JSONPlaceholder (https://jsonplaceholder.typicode.com). Это специальный учебный сервис, который существует именно для практики. Он не требует регистрации и не хранит реальные данные.

Пример 1: Получить список пользователей (GET-запрос)

Задача: Попросить сервер вернуть список всех пользователей.

Шаги в Postman:

  1. Откройте Postman и нажмите кнопку «New»«HTTP» (или просто откройте новую вкладку).
  2. В выпадающем списке методов выберите GET.
  3. В поле URL введите: https://jsonplaceholder.typicode.com/users
  4. Нажмите кнопку Send.

Что вы должны увидеть в ответе:

[
  {
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "[email protected]",
    "address": {
      "street": "Kulas Light",
      "city": "Gwenborough"
    }
  },
  {
    "id": 2,
    "name": "Ervin Howell",
    "username": "Antonette",
    "email": "[email protected]"
  }
]

Квадратные скобки [] в JSON означают список (массив). Внутри — объекты с информацией о пользователях.

Что проверяет тестировщик:

  • ✅ Код ответа должен быть 200 — значит, всё прошло хорошо.
  • ✅ В теле ответа должен быть список (массив []).
  • ✅ Каждый пользователь должен иметь поля id, name, email.
  • ✅ Время ответа не должно быть слишком большим (обычно до 2–3 секунд — это приемлемо).

Пример 2: Создать новый пост (POST-запрос)

Задача: Отправить на сервер данные нового поста.

Шаги в Postman:

  1. Выберите метод POST.
  2. В поле URL введите: https://jsonplaceholder.typicode.com/posts
  3. Перейдите на вкладку Body (под полем URL).
  4. Выберите переключатель raw, а в выпадающем списке справа выберите JSON.
  5. В текстовое поле введите следующие данные:
{
  "title": "Мой первый тестовый пост",
  "body": "Это тело поста, написанного для практики",
  "userId": 1
}
  1. Нажмите Send.

Что вы должны увидеть в ответе:

{
  "title": "Мой первый тестовый пост",
  "body": "Это тело поста, написанного для практики",
  "userId": 1,
  "id": 101
}

Что проверяет тестировщик:

  • ✅ Код ответа должен быть 201 (Создано).
  • ✅ В ответе должны вернуться те же данные, что мы отправили.
  • ✅ Сервер должен был присвоить новому посту уникальный id (в данном случае 101).

💡 Обратите внимание: JSONPlaceholder — это учебный сервис-симулятор. Данные реально не сохраняются, но сервер ведёт себя так, как будто они сохранились. Это идеально для практики!


Пример 3: Запросить несуществующего пользователя (проверка ошибки)

Задача: Убедиться, что сервер корректно обрабатывает запрос на получение несуществующего ресурса.

Шаги в Postman:

  1. Выберите метод GET.
  2. В поле URL введите: https://jsonplaceholder.typicode.com/users/9999
  3. Нажмите Send.

Что вы должны увидеть:

  • Код ответа: 404 Not Found
  • Тело ответа: {} (пустой объект — пользователя не существует)

Почему это важно тестировать?

Хороший сервер должен не просто работать в «счастливых» сценариях, но и правильно реагировать на неправильные запросы. Если бы при запросе несуществующего пользователя сервер возвращал код 200 (всё хорошо) вместо 404 (не найдено) — это был бы баг!


Практика

Выполните следующие упражнения самостоятельно. Используйте Postman и сервис https://jsonplaceholder.typicode.com.

📌 Документация JSONPlaceholder (на английском, но понятная по примерам): https://jsonplaceholder.typicode.com — на главной странице перечислены все доступные адреса.


Упражнение 1: Получить список всех постов

Что делать:

  1. Отправьте GET-запрос на адрес https://jsonplaceholder.typicode.com/posts.
  2. Посмотрите на ответ.

Что проверить и записать (в блокноте или в файле):

  • Какой код ответа вернул сервер?
  • Сколько постов вернулось? (Подсказка: посмотрите на последний id в списке.)
  • Какие поля есть у каждого поста?
  • Сколько миллисекунд занял ответ? (Это указано рядом с кодом ответа в Postman.)

Упражнение 2: Получить один конкретный пост

Что делать:

  1. Отправьте GET-запрос, чтобы получить пост с id = 5.
  2. Подсказка: адрес строится так — https://jsonplaceholder.typicode.com/posts/5.

Что проверить:

  • Код ответа — ожидаем 200.
  • Убедитесь, что в ответе поле "id" равно 5.
  • Запишите заголовок поста (поле "title").

Упражнение 3: Создать нового пользователя (POST-запрос)

Что делать:

  1. Отправьте POST-запрос на адрес https://jsonplaceholder.typicode.com/users.
  2. В теле запроса (вкладка Body → raw → JSON) передайте данные:
{
  "name": "Ваше имя",
  "email": "ваш[email protected]",
  "phone": "123-456-789"
}

(Замените значения на любые придуманные данные.)

Что проверить:

  • Код ответа — ожидаем 201.
  • Вернулись ли в ответе те же поля, которые вы отправили?
  • Присвоил ли сервер новому пользователю поле "id"?

Упражнение 4 (повышенной сложности): Найти «поломанный» запрос

Что делать:
Попробуйте намеренно сделать «неправильные» запросы и посмотрите, как реагирует сервер:

  1. Отправьте GET-запрос на https://jsonplaceholder.typicode.com/posts/abc — вместо числа используйте буквы.
  2. Отправьте GET-запрос на несуществующий маршрут: https://jsonplaceholder.typicode.com/dinosaurs.

Что проверить:

  • Какой код ответа вернул сервер в каждом случае?
  • Изменилось ли тело ответа по сравнению с успешными запросами?
  • Запишите своё наблюдение: как, по-вашему, должен вести себя «правильный» сервер в таких ситуациях?

🔍 Для тех, кто хочет узнать больше: В Postman есть функция «Tests» — вкладка рядом с Body. Там можно написать простые проверки на специальном языке JavaScript. Например, автоматически проверять, что код ответа равен 200. Мы рассмотрим это в следующих уроках курса.


Итоги урока

  • API — это набор правил, по которым программы общаются друг с другом. Как оператор колл-центра: принимает запросы строго по регламенту и передаёт ответы.

  • Запрос состоит из метода (GET, POST, PUT, DELETE), URL-адреса и, при необходимости, тела с данными в формате JSON.

  • Код ответа сообщает, как прошёл запрос: 2xx — успех, 4xx — ошибка клиента, 5xx — ошибка сервера.

  • Postman — бесплатный инструмент с удобным интерфейсом, который позволяет отправлять запросы и проверять ответы API без написания кода.

  • Тестировщик проверяет API отдельно от интерфейса, чтобы быстро найти, где именно находится ошибка — в сервере или в отображении.

  • Для практики удобно использовать JSONPlaceholder — бесплатный учебный сервис с готовым API.

  • При тестировании API важно проверять не только «счастливые» сценарии (когда всё работает), но и негативные — когда запрос неправильный или ресурс не существует.

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.