Как вы проводите тестирование API с помощью Postman?

«Как вы проводите тестирование API с помощью Postman?» — вопрос из категории API тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Postman — это инструмент для отправки HTTP-запросов, создания коллекций и автоматизации тестирования API.

Базовый процесс ручного тестирования:

  1. Создание запроса: Указание метода (GET, POST, PUT, DELETE), URL, заголовков (Headers) и тела запроса (Body), например, в формате JSON.
  2. Отправка и анализ: Отправка запроса и проверка статус-кода, времени ответа и тела ответа во вкладках "Body", "Headers", "Test Results".

Автоматизация и организация тестов:

  • Коллекции (Collections): Группировка связанных запросов (например, по функциональному модулю).
  • Переменные (Variables): Использование переменных на уровне коллекции, окружения (Environment) или глобальных для параметризации (базовый URL, токены, тестовые данные).
  • Пред- и пост-скрипты (Pre-request and Test Scripts): Написание скриптов на JavaScript для автоматизации.
    • Pre-request Script: Выполняется перед отправкой запроса (например, для вычисления хеша или установки переменной).
    • Test Script: Выполняется после получения ответа для валидации.

Пример тестового скрипта (Tests) в Postman:

// Проверка статус-кода
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

// Проверка структуры и значения JSON-ответа
pm.test("Response has correct data", function () {
    const jsonData = pm.response.json();
    pm.expect(jsonData).to.have.property("id");
    pm.expect(jsonData.name).to.eql(pm.environment.get("expected_user_name"));
});

// Проверка времени ответа
pm.test("Response time is less than 500ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(500);
});

Запуск наборов тестов:

  • Collection Runner: Запуск всех или выбранных запросов в коллекции внутри GUI Postman.
  • Newman: CLI-версия Postman для интеграции в CI/CD пайплайны (например, Jenkins, GitLab CI). Запуск: newman run my_collection.json.

Дополнительно: Тестируются как позитивные сценарии, так и негативные (ошибки валидации 400, отсутствие прав 403, ошибки сервера 500).