Писал ли JavaScript в Postman

«Писал ли JavaScript в Postman» — вопрос из категории API тестирование, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, я активно использовал JavaScript в Postman для написания как Pre-request Scripts, так и Tests. Это критически важный навык для комплексного тестирования API, выходящего за рамки простых проверок статус-кода.

Для чего это используется:

  1. Динамические данные: Генерация уникальных значений (например, временных меток, email) в Pre-request Script для избежания конфликтов при повторных запусках.
  2. Автоматизация аутентификации: Получение и установка токенов (JWT, OAuth) в переменные окружения перед основными запросами.
  3. Сложные проверки (Tests): Валидация структуры и значений ответа, проверка бизнес-логики, связей между данными.
  4. Управление коллекциями: Использование postman.setNextRequest() для создания нелинейных сценариев выполнения запросов.

Пример теста для проверки ответа эндпоинта /api/users:

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

// Проверка, что ответ в формате JSON
pm.test("Response has valid JSON", function () {
    pm.response.to.be.json;
});

// Парсинг JSON и проверка структуры данных
const responseJson = pm.response.json();
pm.test("Response contains users array", function () {
    pm.expect(responseJson).to.have.property('users');
    pm.expect(responseJson.users).to.be.an('array');
});

// Проверка конкретного значения в первом элементе массива
if (responseJson.users.length > 0) {
    pm.test("First user has an id and email", function () {
        pm.expect(responseJson.users[0]).to.have.property('id').that.is.a('number');
        pm.expect(responseJson.users[0]).to.have.property('email').that.includes('@');
    });
}

Такой подход позволяет создавать надежные, самодостаточные и легко поддерживаемые наборы тестов для API.