Ответ
Использовал Postman как основной инструмент для ручного, автоматизированного и документационного тестирования REST API.
1. Организация и ручное тестирование:
- Создавал Коллекции (Collections) для группировки запросов по функциональным модулям (например,
User API,Order API). - Активно использовал Переменные (Variables) на уровне коллекции, окружения и глобальные для управления конфигурацией (base URL, токены, тестовые данные).
- Настраивал Pre-request Scripts для автоматической подготовки данных (например, генерация уникального email) и Tests для валидации ответов.
2. Написание автоматизированных проверок (Tests):
Тесты пишутся на JavaScript с использованием встроенной библиотеки pm (Postman Sandbox).
Пример комплексного теста для эндпоинта создания пользователя:
// Проверка статус-кода и времени ответа
pm.test("Status is 201 Created", function () {
pm.response.to.have.status(201);
});
pm.test("Response time is less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
// Валидация структуры и данных JSON-ответа
pm.test("Response has correct JSON schema and data", function () {
const responseJson = pm.response.json();
const jsonData = responseJson.data;
// Проверка наличия обязательных полей
pm.expect(jsonData).to.have.property("id").that.is.a("number");
pm.expect(jsonData).to.have.property("email", pm.variables.get("testEmail"));
// Проверка по JSON Schema (альтернатива)
const schema = {
type: "object",
properties: {
data: {
type: "object",
required: ["id", "email", "createdAt"],
properties: {
id: { type: "number" },
email: { type: "string", format: "email" }
}
}
}
};
pm.expect(tv4.validate(responseJson, schema)).to.be.true;
});
// Сохранение ID пользователя в переменные окружения для последующих запросов
const userId = pm.response.json().data.id;
pm.environment.set("createdUserId", userId);
3. Автоматизация и интеграция в CI/CD:
- Запуск коллекций из командной строки с помощью Newman (CLI-раннер для Postman).
- Интеграция с Jenkins/GitLab CI для прогона API-тестов после каждой сборки.
- Генерация и публикация отчётов о выполнении тестов (HTML, JUnit).
4. Документирование и совместная работа:
- Генерация документации API из коллекций.
- Синхронизация коллекций через Postman Workspaces для командной работы.
- Импорт спецификаций OpenAPI (Swagger) для быстрого создания начального набора запросов.