Ответ
Есть опыт использования Postman Scripting (JavaScript) для автоматизации тестирования API и настройки запросов.
Основные сценарии применения:
- Тесты (Tests tab): Валидация ответов сервера.
- Пре-реквесты (Pre-request Scripts): Подготовка данных перед отправкой запроса.
- Работа с переменными: Управление переменными окружения, коллекции и глобальными переменными.
- Автоматизация коллекций: Запуск цепочек запросов с передачей данных между ними.
Примеры кода:
// ===== ПРЕ-РЕКВЕСТ =====
// Генерация динамических данных
const randomId = Math.floor(Math.random() * 1000);
pm.environment.set("dynamic_user_id", randomId);
// Подпись запроса (упрощенный пример)
const crypto = require('crypto-js');
const secret = pm.environment.get('api_secret');
const signature = crypto.HmacSHA256(pm.request.body, secret).toString();
pm.request.headers.add({key: 'X-Signature', value: signature});
// ===== ТЕСТЫ =====
// Проверка статуса и структуры ответа
pm.test("Status is 200 OK", function () {
pm.response.to.have.status(200);
});
pm.test("Response has valid JSON schema", function () {
const schema = {
"type": "object",
"properties": {
"id": {"type": "number"},
"name": {"type": "string"}
},
"required": ["id", "name"]
};
pm.response.to.have.jsonSchema(schema);
});
// Проверка бизнес-логики
pm.test("New user ID is returned", function () {
const jsonData = pm.response.json();
pm.expect(jsonData.id).to.be.a('number');
pm.expect(jsonData.id).to.eql(pm.environment.get("dynamic_user_id"));
});
// Сохранение данных для следующего запроса в коллекции
pm.environment.set("auth_token", pm.response.json().accessToken);