📮 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)).