Ответ
Да, я активно использовал JavaScript в Postman для написания как Pre-request Scripts, так и Tests. Это критически важный навык для комплексного тестирования API, выходящего за рамки простых проверок статус-кода.
Для чего это используется:
- Динамические данные: Генерация уникальных значений (например, временных меток, email) в Pre-request Script для избежания конфликтов при повторных запусках.
- Автоматизация аутентификации: Получение и установка токенов (JWT, OAuth) в переменные окружения перед основными запросами.
- Сложные проверки (Tests): Валидация структуры и значений ответа, проверка бизнес-логики, связей между данными.
- Управление коллекциями: Использование
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.