Коллекция API-тестов в Postman для публичного REST API reqres.in — бэкенда специально для тренировки тестировщиков (регистрация не нужна, всегда онлайн).
Коллекция: reqres-collection.json (формат Postman Collection v2.1) — 8 запросов, 24 проверки в Tests.
| # | Метод | Эндпоинт | Что проверяем |
|---|---|---|---|
| 1 | GET | /api/users?page=2 |
200, есть поле data, это непустой массив, page == 2, у каждого юзера есть id/email |
| 2 | GET | /api/users/2 |
200, data.id == 2, набор полей юзера |
| 3 | GET | /api/users/23 |
404, тело — пустой объект {} |
| 4 | POST | /api/users {name, job} |
201, есть id, эхо name/job, есть createdAt |
| 5 | PUT | /api/users/2 {name, job} |
200, есть updatedAt, job обновился |
| 6 | DELETE | /api/users/2 |
204, тело пустое |
| 7 | POST | /api/login (валидные данные) |
200, есть непустой token |
| 8 | POST | /api/login (без пароля) |
400, есть error == "Missing password" |
С 2024 года reqres.in закрыл все /api/* за заголовком x-api-key. Без него прилетит 401, и абсолютно все тесты покраснеют — а большинство старых туториалов по reqres про это молчат. Если коллекция вдруг падает 401 на ровном месте — почти всегда дело именно в ключе.
В этой коллекции ключ уже зашит:
- На уровне коллекции стоит Authorization → API Key:
key = x-api-key,value = {{apiKey}},in = header. Postman сам подставляет его в каждый запрос — руками в каждый реквест добавлять не нужно. - Переменные коллекции:
{{baseUrl}} = https://reqres.in,{{apiKey}} = reqres-free-v1(публичный бесплатный ключ).
- Postman → Import → перетащи
reqres-collection.json. - Слева появится коллекция reqres-api-tests.
- Run collection (кнопка ▶ → Run) — должно быть 24/24 passed.
Переменные уже лежат внутри коллекции, отдельное окружение заводить не обязательно. Нужен свой ключ — поменять apiKey в Variables коллекции.
Newman — CLI-раннер Postman. Удобно гонять коллекцию без GUI и втыкать в CI.
# нужен Node.js 18+
npm install # ставит newman локально (см. package.json)
npm test # = newman run reqres-collection.jsonИли глобально, без package.json:
npm install -g newman
newman run reqres-collection.jsonОжидаемый итог — все 8 запросов и 24 ассерта зелёные.
- reqres ничего не сохраняет. POST/PUT/DELETE возвращают «успех» (201/200/204) и эхо данных, но в базе ничего не меняется — это мок. Поэтому после
DELETE /api/users/2тот же юзер поGET /api/users/2всё ещё на месте. Не баг. - Пароль на
/api/loginпо сути не проверяется. Токен отдаётся под любой email/пароль; единственный негативный кейс, который reqres реально валидирует, — отсутствие пароля (→ 400). Поэтому тест №8 проверяет именно пропуск поля, а не «неверный пароль». - 204 No Content — тело пустое,
pm.response.json()на нём упадёт. Поэтому в тесте №6 проверяетсяpm.response.text(), а не.json(). data.id— число, аidпри создании — строка. reqres отдаётid: "482"(строкой) на POST, ноdata.id: 2(числом) на GET. Поэтому в ассертах для создания не проверяется типid, только наличие.