📮 Postman

Запросы, переменные, окружения, тесты на JavaScript, коллекции и Newman.

Шпаргалки · Тестирование · #testing #api #postman #http

Основное

Postman отправляет HTTP-запросы и проверяет ответы. Структура: Workspace → Collection → Folder → Request.

Запрос

Метод и URL ({{baseUrl}}/users), вкладки Params, Authorization, Headers, Body (raw JSON, form-data, x-www-form-urlencoded), Scripts (Pre-request и Post-response / Tests).

Переменные

Область Видимость
Global везде
Collection в коллекции
Environment выбранное окружение (dev, stage, prod)
Local только в скрипте запроса

Использование: {{baseUrl}}, {{token}}. Секреты храните как secret тип или в хранилище, не в общей коллекции.

Pre-request script

pm.environment.set('timestamp', Date.now());
pm.variables.set('requestId', pm.variables.replaceIn('{{$guid}}'));

Тесты (Post-response)

pm.test('Статус 200', () => pm.response.to.have.status(200));

pm.test('Быстрый ответ', () => pm.expect(pm.response.responseTime).to.be.below(500));

pm.test('Тело корректно', () => {
  const json = pm.response.json();
  pm.expect(json).to.have.property('id');
  pm.expect(json.email).to.eql('anna@x.ru');
});

pm.test('Заголовок JSON', () =>
  pm.response.to.have.header('Content-Type', /application\/json/));

// Сохранить токен для следующих запросов
pm.environment.set('token', pm.response.json().accessToken);

Цепочки запросов

Логин сохраняет token → следующие запросы используют Bearer {{token}}. Порядок запуска: Collection Runner, команда pm.setNextRequest('Имя запроса').

Авторизация

Вкладка Authorization: Bearer Token, Basic, API Key, OAuth 2.0 (получение токена из UI).

Data-driven прогон

Collection Runner с CSV или JSON: каждая строка подставляется в {{переменные}} (например {{email}}, {{password}}).

Newman (CLI) и CI

npm i -g newman
newman run collection.json -e stage.json --reporters cli,junit

Запуск в GitHub Actions, GitLab CI, Jenkins.

Приёмы

  • Import из OpenAPI и экспорт коллекции в JSON.
  • Mock server по примерам ответов.
  • Monitors запускают коллекции по расписанию.
  • Проверку схемы делайте через tv4 или ajv (pm.response.to.have.jsonSchema(schema)).