Как проверять ответ API в Postman?

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

Ответ

В Postman проверка ответа (Response) выполняется через встроенные инструменты и скрипты на JavaScript. Основные аспекты проверки:

1. Статус код (Status Code) Проверка соответствия ожидаемому HTTP-статусу.

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

2. Время ответа (Response Time) Проверка производительности эндпоинта.

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

3. Заголовки (Headers) Проверка наличия и значений необходимых заголовков.

pm.test("Content-Type header is present", function () {
    pm.response.to.have.header("Content-Type");
});

pm.test("Content-Type is application/json", function () {
    pm.expect(pm.response.headers.get("Content-Type")).to.include("application/json");
});

4. Тело ответа (Body) Проверка структуры и данных в ответе. Используйте pm.response.json() для JSON.

pm.test("Response body has correct structure", function () {
    const jsonData = pm.response.json();
    pm.expect(jsonData).to.be.an("object");
    pm.expect(jsonData).to.have.property("success", true);
    pm.expect(jsonData.data).to.be.an("array");
    pm.expect(jsonData.data[0]).to.have.all.keys("id", "name"); // Проверка ключей в первом элементе
});

5. Схема JSON (JSON Schema) Для валидации структуры ответа против схемы.

pm.test("Response matches JSON schema", function () {
    const schema = {
        "type": "object",
        "properties": {
            "success": {"type": "boolean"},
            "data": {"type": "array"}
        },
        "required": ["success", "data"]
    };
    pm.response.to.have.jsonSchema(schema);
});

Дополнительные инструменты:

  • Вкладка "Tests" — для написания и выполнения автоматических проверок.
  • "Prettify" — для удобного форматирования JSON/XML.
  • Визуализация (Visualize) — для построения графиков на основе данных ответа.
  • Переменные окружения и коллекции — для параметризации тестов и организации workflow.

Best Practices:

  • Выносите повторяющиеся проверки в скрипты коллекции (Collection-level scripts).
  • Используйте переменные (pm.variables) для динамических данных.
  • Интегрируйте с CI/CD через Newman для автоматического запуска коллекций.