Шпаргалка по API для QA. Часть 3: Инструментарий

Шпаргалка по API для QA. Часть 3: Инструментарий

QA❤️4Life

Шпаргалка по API для QA. Часть 3: Инструментарий

Postman (коллекции, окружения, тесты), cURL, Swagger/OpenAPI, JMeter — инструменты, которые нужны каждому QA для работы с API.

Канал: QA❤️4Life
Автор: Евгений Гусинец


Часть 4: Инструментарий QA-инженера для тестирования API

В этом разделе мы рассмотрим ключевые инструменты, от самых универсальных до узкоспециализированных, и разберемся, как и для чего они используются.

4.1. Postman — Швейцарский нож для API

Вопросы с собеседований:

Что такое Postman?

Что такое Postman-коллекция?

Что такое environment?

Что это такое?

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

Ключевые возможности Postman:

Создание и отправка запросов: Позволяет легко конструировать любые HTTP-запросы (GET, POST, PUT и т.д.), добавлять заголовки, параметры и тело запроса.

Просмотр ответов: Наглядно отображает код ответа, заголовки и тело (с подсветкой синтаксиса для JSON, XML, HTML).

Автоматизация тестов: Позволяет писать тесты на JavaScript во вкладке "Tests" для автоматической проверки ответов (например, pm.test("Status code is 200", ...)).

Работа с переменными: Позволяет хранить данные (URL, токены, ID) в переменных, чтобы переиспользовать их в разных запросах.

Postman-коллекция (Collection)

Что это? Коллекция в Postman — это, по сути, папка для хранения и организации ваших API-запросов. Это основной способ группировки связанных запросов.

Зачем нужна?

Организация: Вы можете создать коллекцию для каждого проекта или для каждой функциональной области (например, "Users API", "Products API").

Документация: Каждому запросу и коллекции можно добавить описание, что превращает коллекцию в интерактивную документацию.

Автоматизация: Вы можете запустить всю коллекцию целиком с помощью Collection Runner, чтобы выполнить все запросы один за другим и проверить все тесты.

Обмен: Коллекциями можно делиться с командой, экспортируя их в JSON-файл.

Environment (Окружение)

Что это? Environment в Postman — это набор переменных (ключ-значение), который позволяет адаптировать ваши запросы для разных сред выполнения.

Зачем нужно? Представьте, у вас есть несколько тестовых сред:

Development: http://dev.api.example.com

QA/Staging: http://staging.api.example.com

Production: http://api.example.com

Вместо того чтобы менять URL в каждом запросе вручную, вы создаете переменную {{baseUrl}}. Затем вы создаете три окружения: "Development", "Staging", "Production". В каждом из них переменная {{baseUrl}} будет иметь свое значение. Перед запуском тестов вы просто выбираете нужное окружение в выпадающем списке, и Postman автоматически подставит правильный URL во все запросы.

Что еще хранят в окружениях? Токены авторизации, логины, пароли, ID пользователей — любые данные, которые меняются от среды к среде.

4.2. cURL — Мощь командной строки

Вопросы с собеседований:

Что такое cURL?

Чем отличается URL от cURL?

Что такое URL?

URL (Uniform Resource Locator) — это адрес ресурса в сети. Это просто строка, которая указывает, где находится ресурс (например, https://google.com/search?q=api). URL — это что вы хотите получить.

Что такое cURL?

cURL (Client URL) — это инструмент, утилита командной строки для отправки запросов по различным протоколам, включая HTTP/HTTPS. cURL — это как вы получаете ресурс.

Ключевое отличие: URL — это адрес (существительное), cURL — это инструмент для перехода по адресу (глагол).

Зачем нужен cURL?

Скорость и простота: Позволяет быстро проверить доступность эндпоинта или отправить простой запрос прямо из терминала, не открывая Postman.

Автоматизация и скрипты: Легко встраивается в shell-скрипты для автоматизации задач.

Воспроизведение багов: Это лучший способ передать разработчику информацию для воспроизведения бага. Вы можете скопировать запрос из Postman или DevTools как cURL-команду. Разработчик вставляет ее в свой терминал и мгновенно получает ту же ошибку, что и вы.

Пример cURL-команды:

# Простой GET-запрос
curl https://api.github.com/users/google

# POST-запрос с JSON-телом и заголовком
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{"name": "John", "email": "john@doe.com"}'
-X POST — задает метод.
-H — задает заголовок.
-d — задает тело запроса.

4.3. Swagger (OpenAPI) — Интерактивная документация
Вопрос с собеседования:
Что такое Swagger? Зачем он нужен?
Что это такое?
Swagger — это набор инструментов для реализации спецификации OpenAPI. А OpenAPI Specification — это стандарт, "язык" для описания RESTful API.
Если проще, Swagger — это инструмент, который позволяет создавать красивую, интерактивную веб-страницу с документацией для вашего API прямо из его кода.
Зачем он нужен?
Единый источник правды: Документация генерируется автоматически на основе кода бэкенда. Это исключает ситуацию, когда код поменялся, а документацию обновить забыли.
Интерактивность: Swagger UI позволяет не просто читать документацию, но и отправлять тестовые запросы прямо со страницы. Вы можете заполнить параметры, нажать "Execute" и сразу увидеть реальный ответ от сервера. Это очень удобно для быстрого "прощупывания" API.
Ускорение разработки и тестирования:
Для Frontend-разработчиков: Они могут видеть, какие эндпоинты существуют и какие данные от них ожидать, не дергая бэкендеров.
Для QA-инженеров: Это отправная точка для составления тест-плана. Вся структура API, модели данных, обязательные поля — все уже описано.
Генерация кода: На основе OpenAPI-спецификации можно автоматически генерировать клиентский код для разных языков программирования.

4.4. JMeter — Инструмент для нагрузочного тестирования
Вопрос с собеседования:
Что такое JMeter?
Что это такое?
Apache JMeter — это мощный open-source инструмент, написанный на Java, предназначенный в первую очередь для нагрузочного тестирования.
Зачем он нужен?
Postman отлично подходит для проверки функциональности — "работает ли API правильно?". JMeter отвечает на другие вопросы:
"А что будет, если этим API одновременно воспользуются 1000 пользователей?"
"Какое максимальное количество запросов в секунду может выдержать наш сервер?"
"Как меняется время ответа при увеличении нагрузки?"
Ключевые возможности:
Симуляция нагрузки: Может создавать сотни и тысячи виртуальных пользователей, которые одновременно отправляют запросы к вашему API.
Анализ производительности: Собирает метрики: среднее время ответа, пропускную способность (throughput), процент ошибок и т.д.
Гибкие сценарии: Позволяет создавать сложные сценарии поведения пользователей (например, "логин -> поиск товара -> добавление в корзину -> оформление заказа").
Поддержка разных протоколов: Может тестировать не только HTTP/HTTPS, но и базы данных (через JDBC), FTP, почтовые протоколы и многое другое.

Канал: QA❤️4Life
Автор: Евгений Гусинец

Report Page