Что такое Postman и его основные возможности для тестирования?

Ответ

Postman — это платформа для разработки и тестирования API (Application Programming Interface). Он предоставляет графический интерфейс и мощные возможности для отправки HTTP-запросов, инспекции ответов, написания автоматизированных тестов и документирования API.

Основные возможности и применение:

1. Ручное тестирование API

  • Создание запросов (GET, POST, PUT, DELETE, PATCH и др.) с настраиваемыми заголовками, параметрами и телом.
  • Удобный просмотр структурированных ответов (JSON, XML) с подсветкой синтаксиса.

2. Автоматизация тестов

  • Коллекции (Collections): группировка запросов для определённого API.
  • Скрипты на JavaScript: написание пред- и пост-скриптов для автоматической валидации.
    
    // Пример теста в Postman для проверки ответа API
    pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
    });

pm.test("Response has correct JSON schema", function () { const schema = { "type": "object", "properties": { "id": {"type": "number"}, "name": {"type": "string"} }, "required": ["id", "name"] }; pm.response.to.have.jsonSchema(schema); });


- **Запуск коллекций**: ручной запуск или через **Collection Runner**.
- **Новые возможности**: **Postman Flows** для визуального моделирования сценариев.

**3. Работа с переменными и окружениями**
- Создание разных окружений (dev, staging, prod) с переменными (baseURL, tokens).
- Динамическое извлечение данных из ответов (например, токена авторизации) и их использование в последующих запросах.

**4. Другие ключевые функции**
- **Мониторинг API**: планирование периодического запуска коллекций для проверки доступности.
- **Мокирование (Mock Servers)**: создание заглушек API для тестирования клиентов до готовности бэкенда.
- **Документирование**: автоматическая генерация публичной документации по коллекциям.
- **Интеграция с CI/CD**: запуск коллекций через CLI-утилиту **Newman**.

**Для чего используется тестировщиком:**
- Тестирование REST, SOAP, GraphQL API.
- Автоматизация регрессионных проверок API.
- Отладка интеграций между сервисами.
- Создание моков для изолированного тестирования фронтенда.

Ответ 18+ 🔞

А, Postman, ёпта, ну это ж классика, блядь! Это как если бы ты, сука, взял пульт от всего интернета и начал тыкать кнопки, чтобы понять, что где пищит, а где молчит как Герасим, блядь.

Короче, представь: есть у тебя куча сервисов, которые между собой перешёптываются, как бабки на лавочке. А ты, блядь, тестировщик, должен подслушать, кто кому что сказал и не наврал ли. Вот Postman — это твой подслушивающий аппарат, сука, и мегафон в одном флаконе. Ты им не только слушаешь, но и кричишь: «Эй, сервер, ответь, мудак!»

Что он умеет, этот хитрожопый инструмент:

1. Поковыряться вручную, как в носу. Создаёшь запрос — GET, POST, PUT, DELETE — всё, что душе угодно. Хочешь, отправь простой вопросик, хочешь — прицепи к нему целую простыню JSON в теле, как записку «разберись, падла». А потом сидишь и разглядываешь ответ, который прилетел. Если JSON — он его красиво раскрасит, чтобы глаза не ебало. Удобно, блядь!

2. Автоматизировать эту всю хуйню, чтобы не делать одно и то же сто раз. Ты можешь сгруппировать кучу запросов в Коллекцию — типа альбома для твоих любимых песен, только вместо песен — запросы к API. А потом, блядь, написать на них скрипты на JavaScript. Это как оставить инструкцию своему тупому роботу: «Слушай сюда, после того как сервер ответит, проверь, что статус 200, а не 404, и что в ответе есть нужные поля, а не какая-то дичь».

Вот, смотри, как это выглядит, этот цифровой надсмотрщик:

// Проверяем, не обосрался ли сервер
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200); // Если не 200 — тест провален, пиздец
});

// А тут проверяем, что ответ — не абы какая хуйня, а правильная структура
pm.test("Response has correct JSON schema", function () {
    const schema = {
        "type": "object",
        "properties": {
            "id": {"type": "number"},
            "name": {"type": "string"}
        },
        "required": ["id", "name"] // Обязательно должны быть, иначе — в пизду
    };
    pm.response.to.have.jsonSchema(schema);
});

Потом ты можешь запустить всю эту коллекцию разом — Collection Runner её зовут. Сидишь, попиваешь чай, а она, сука, сама всё прогоняет и отчитывается, где всё ок, а где всё ебнулось. А ещё есть Postman Flows — это вообще, блядь, визуальное программирование, где ты мышкой соединяешь квадратики, как в детском конструкторе, только для взрослых дяденек.

3. Не запоминать кучу хуеты, а использовать переменные. Представь, у тебя адрес сервера в тесте один, а на проде — другой. Так вот, блядь, ты создаёшь Окружения — dev, staging, prod. В каждом свои переменные: baseURL, token. И в запросе пишешь не https://тут-адрес-прям-в-лоб, а {{baseURL}}/api/users. Красота, ёпта! А ещё можно из ответа одного запроса вытащить, например, свежий токен и автоматом воткнуть его в заголовок следующего. Хитро, блядь!

4. И ещё куча всякой полезной дичи:

  • Мониторинг: Настроил расписание — и коллекция сама бегает и проверяет, не сдох ли API, пока ты спишь. Утром смотришь отчёт — либо всё збс, либо пиздец.
  • Моки (Mock Servers): Бэкенд ещё только пилится, а фронтенду уже невтерпёж. Блядь, не проблема! Создаёшь в Postman заглушку — Mock Server. Он будет отвечать фронту теми данными, которые ты ему скажешь. Фронт радуется, что всё работает, а бэкендщики спокойно допиливают свою магию.
  • Документация: Написал кучу запросов в коллекции — жмакнул кнопку — и, блядь, готовая красивая документация для всех, кто будет этим API пользоваться. Ничего дописывать не надо, волшебство, ёбана!
  • Интеграция с CI/CD: Есть консольная утилита Newman. Ты можешь запихнуть свои коллекции в пайплайн сборки, и они будут прогоняться автоматически при каждом коммите. Если что-то сломалось — сборка не пройдёт, и виноватый сразу будет знать, что он, мудак, накосячил.

Так зачем это всё тестировщику, спросишь? Да чтобы, блядь, не быть тем самым Герасимом, который только «Му-му» мычать может! Чтобы понимать, как системы между собой общаются, ловить баги в интеграциях, автоматизировать рутину и в итоге спать спокойно, зная, что API не развалится от первого же чиха пользователя. Вот так вот, коротко и без соплей.