Это пошаговое руководство объясняет принципы тестирования API с помощью POSTMAN, включая основы POSTMAN, его компоненты и примеры запросов и ответов:
Postman– это очень простой и интуитивно понятный инструмент или приложение для тестирования API. Каждый компонент в POSTMAN очень важен, поскольку имеет свое собственное применение.
POSTMAN Введение
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
POSTMAN– это клиент API, используемый для разработки, тестирования, обмена и документирования API. Он используется для тестирования бэкенда, когда мы вводим URL эндпоинта, он отправляет запрос на сервер и получает ответ от сервера. То же самое можно сделать с помощью шаблонов API, таких как Swagger. И в Swagger, и в POSTMAN нам не нужно создавать фреймворк (в отличие от Parasoft) для получения ответа от сервиса.
По сути, он помогает обращаться к API эндпоинтам, быстро создавая запросы в соответствии со спецификацией API и анализируя различные параметры ответа, такие как статус-код, заголовки и само тело ответа.
Далее представлен видеоурок (на английском языке):
Postman предлагает множество расширенных возможностей, таких как:
- Разработка API.
- Настройка моков для эндпоинтов API, которые все еще находятся в стадии разработки.
- Документация API.
- Проверка ответов на выполненные запросы к API эндпоинтам.
- Интеграция с CI/CD инструментами, такими как Jenkins, TeamCity и т.д.
- Автоматизация выполнения тестов API и т.д.
Теперь, когда мы ознакомились с формальным введением в инструмент, давайте перейдем к его установке.
Установка POSTMAN
Postman доступен в двух вариантах.
- Как приложение для Chrome (однако оно уже устарело и не поддерживается разработчиками Postman).
- Нативное приложение для различных платформ, таких как Windows, Mac OS, Linux и т.д.
Поскольку приложения Chrome устаревают и имеют тесную связь с браузером Chrome (в некоторых случаях с актуальной версией браузера), мы будем использовать нативное приложение, которое дает нам больше возможностей и имеет меньше внешних зависимостей.
Установка нативного приложения Postman
Приложение Postman Native — это отдельное приложение, которое доступно для загрузки на различных платформах ОС, таких как Windows, Mac OS, Linux и т. д. Его можно загрузить так же, как и любое другое приложение, в зависимости от платформы пользователя.
Процесс установки также довольно прост. Скачайте необходимую версию Postman на официальном сайте https://www.postman.com/downloads/. Вам просто нужно дважды щелкнуть по загруженному файлу с инсталлятором (для Windows и Mac) и следовать инструкциям.
После успешной установки откройте приложение Postman, чтобы приступить к работе.
Мы рассмотрим, как создать простой запрос к любому доступному API с открытым исходным кодом и увидим различные компоненты запроса и ответа, полученного при выполнении запроса с помощью приложения Postman.
Настоятельно рекомендуется войти/зарегистрироваться в приложении Postman, используя существующую учетную запись электронной почты. Авторизация в аккаунте позволяет хранить все коллекции Postman и запросы, сохраненные во время сессии, и гарантирует, что эти запросы будут доступны для работы, когда тот же пользователь войдет в систему в следующий раз.
Мы проиллюстрируем пример GET-запроса к этому URL, который вернет 100 объектов в ответе на запрос в формате JSON
Давайте приступим и рассмотрим шаги, которые необходимо выполнить:
1. Откройте приложение Postman (если вы еще не вошли в систему с существующей или новой учетной записью, сначала войдите в систему с соответствующими учетными данными).
Ниже приведено изображение начального экрана пользовательского интерфейса Postman:
2. Создайте новый запрос и заполните поля запроса так, чтобы они соответствовали требуемым полям эндпоинта из нашего примера. Давайте протестируем запрос get для эндпоинта REST API http://dummy.restapiexample.com/api/v1/employees.
3. После заполнения необходимых полей запроса нажмите кнопку SEND, чтобы выполнить запрос к серверу, на котором размещен эндпоинт.
4. Как только сервер пришлет ответ, мы можем проверить различные данные в ответе.
Давайте рассмотрим эти данные подробнее.
По умолчанию после завершения ответа выбирается и отображается вкладка “Тело ответа”. Другие параметры ответа, такие как статус код, время, затраченное на выполнение запроса, размер данных полученного ответа, отображаются чуть ниже заголовков запроса (как на рисунке ниже).
Чтобы получить более подробную информацию о таких параметрах ответа, как размер данных полученного ответа и время ответа, вы можете просто навести курсор на каждое из этих значений, и Postman покажет вам более подробную информацию по каждому из этих свойств.
Например, для времени запроса – он дополнительно разложит его на отдельные компоненты, такие как время соединения, инициализация сокета, поиск DNS, рукопожатие и т.д.
Аналогично, для размера данных полученного ответа, он покажет вам, какой размер имеют заголовки и каков фактический размер ответа.
Теперь давайте рассмотрим другие вкладки ответа, такие как Cookies и Headers. В мире веб-технологий файлы Cookies имеют большое значение с точки зрения использования сервисов на стороне клиента и и получения информации, которая возвращается с сервера во время клиентской сессии и сохраняется в файлах Cookies. Вы можете перейти на вкладку Cookies и увидеть следующее.
Аналогичным образом, заголовки ответов содержат много полезной информации о запросе, который был выполнен. Просто перейдите на вкладку заголовков в разделе ответа, чтобы увидеть заголовки ответа.
Важно отметить, что все запросы, которые вы делаете к серверу, сохраняются в истории Postman для дальнейшего использования (вкладка История доступна на левой боковой панели приложения).
Это помогает не создавать запросы каждый раз, когда вам нужно получить ответ на один и тот же запрос, а также помогает избежать рутинных шаблонных задач. При необходимости вы можете обратиться к прошлым запросам (и ответам тоже) в будущем.
Примечание: Для иллюстрации примеров запросов и ответов мы будем использовать общедоступные тестовые API-серверы, которые позволяют выполнять все типы HTTP-запросов и возвращают корректный HTTP-ответ.
Для примера мы будем использовать нижеприведенные сервисы с тестовыми API эндпоинтами:
Альтернативное руководство по установке Quick Postman
POSTMAN — это открытый инструмент, доступный для всех, кто пользуется Интернетом. Вы можете выполнить следующие шаги и установить инструмент POSTMAN на свой локальный компьютер.
Шаг 1: Откройте Google и найдите инструмент POSTMAN. Вы получите следующий результат поиска. Затем вы можете нажать «Загрузить приложение Postman», и вы будете перенаправлены на веб-сайт getpostman.
В противном случае вы можете напрямую перейти по этому URL-адресу, чтобы получить инструмент POSTMAN.
Шаг 2: Выберите версию POSTMAN в зависимости от вашей операционной системы. В нашем случае мы будем использовать POSTMAN для ОС Windows. Более того, мы используем 64-битную версию Windows, поэтому мы скачаем и установим POSTMAN для 64-битной версии.
Шаг 3: После нажатия на кнопку “Загрузить” в ваш локальный компьютер будет загружен файл postman.exe. Нажмите на этот файл. Это установка в один клик, как и любое другое приложение, которое позволит вам установить дополнение POSTMAN для вашего браузера.
Шаг 4: После установки приложения нажмите на него (которое должно быть размещено на рабочем столе). Как вы можете видеть на изображении ниже, у нас есть шесть различных сущностей, для которых вам в основном понадобятся три строительных блока, т.е. Запрос, Коллекция и Окружение, которые будут рассмотрены в следующем разделе.
Вот и все! Мы успешно установили и запустили приложение POSTMAN.
Строительные блоки POSTMAN
POSTMAN имеет множество строительных блоков, но для нашей цели мы обсудим три основных блока, которые обязательны для каждой операции отправки запроса через POSTMAN.
Этими тремя основными блоками являются:
1. Request (Запрос)
Запрос – это не что иное, как комбинация полного URL (который включает в себя все параметры или ключи), HTTP-заголовков, тела или передаваемых данных. Все эти атрибуты в целом формируют запрос. POSTMAN позволяет сохранять запросы, что позволяет нам использовать один и тот же запрос столько раз, сколько мы захотим.
Кликните New -> Request
2. Collection (Коллекция)
Должно быть что-то, где вы будете сохранять свои запросы. Именно в этом случае на помощь приходит коллекция. Можно сказать, что коллекция – это хранилище, в котором мы можем сохранить все наши запросы. Как правило, запросы, которые обращаются к одному и тому же API, хранятся в одной коллекции.
Кликните New -> Collection.
3. Environment (Окружение)
Environment – это окружение, где будут происходить все ваши операции с API. Это может быть TUP, QA, Dev, UAT или PROD. Каждый проект уже имеет настроенное окружение, и вам просто нужно объявить в них свои глобальные переменные, такие как URL, идентификатор и пароль токена, контекстные ключи, ключи API, ключи документов и так далее.
Кликните New -> Environment.
Сохранение запроса в коллекцию
Сейчас мы попробуем сохранить пример запроса в коллекцию и использовать этот же запрос для обращения к API.
Шаг 1: В правом верхнем углу вы увидите кнопку “+New”. Нажмите на эту кнопку, и у вас появится список строительных блоков, который был показан при первом запуске приложения.
Шаг 2: Нажмите «Запрос».
Шаг 3: Укажите имя запроса, оно является обязательным полем. Затем нажмите “+ Create collection”.
Шаг 4: После нажатия кнопки “+ Create collection” нужно придумать название коллекции (например, Sample Collection). Введите название коллекции и кликните Enter.
Шаг 5: Нажмите на кнопку “Save to Sample Collection“.
Пример отправки запроса и получения ответа
Этот раздел даст вам более глубокое представление о том, как тестировать API в POSTMAN.
Как вы можете видеть на изображении ниже, у нас есть запрос, который мы уже создали (Test for SoftwareTestingHelp). Кроме того, вы можете видеть выпадающий список (рядом с URL), который содержит методы, поддерживаемые POSTMAN.
Они называются HTTP-методами. Мы попробуем обновить какую-либо сущность, используя метод PUT, а затем получим результат, используя метод GET. Мы предполагаем, что читатели этой статьи знакомы с применением этих HTTP-методов, используемых при тестировании API.
Теперь у нас есть URL и метод запроса. Все, что осталось добавить – это заголовки и передаваемые данные или тело запроса. В некоторых случаях нам необходимо сгенерировать токены (в зависимости от тестируемого API).
Объявим наши HTTP-заголовки, такие как Content-Type и Accept. Accept не всегда является обязательным, поскольку он определяет формат, в котором мы получим наш ответ. По умолчанию ответ всегда будет в формате JSON.
Нет необходимости вводить значения этих заголовков вручную, поскольку POSTMAN предложит вам доступные варианты, когда вы начнете заполнять поля с ключом (key) и значением (value) заголовка.
Затем мы переходим к следующему обязательному компоненту запроса – Body (Тело запроса). В нашем примере мы передаем данные в формате JSON. Попробуем создать свой собственный JSON в соответствии с правилами синтаксиса.
Образец запроса
URL: http://www.mocky.io/v2/5cd6c3f23000004b006061c5
Headers
Content-Type : application/JSON
Accept = application/JSON
Body
{ "testedby": { "saket": { "creator": { "name": "Software Testing Help", "location": [ "Pune", "Bangalore", "Ranchi" ] } } }, "booksToRead": [ { "title": "7 habits of highly effective people", "price": 120.00 }, { "title2": "the business of 21st century", "price2": 125.00 } ] }
Теперь нажмите это
Как только вы заполнили все необходимые параметры запроса, нажмите на кнопку “Send” и проверьте статус-код. Код 200 OK означает успешное выполнение запроса. На изображении ниже вы можете видеть, что мы успешно выполнили запрос к эндпоинту.
Следующий шаг
Теперь мы выполним другой запрос, используя метод GET. Мы попытаемся получить ту же сущность, которую только что создали.
Для операции GET нам не требуется тело запроса. Поскольку у нас уже есть пример запроса с использованием метода PUT, все, что нам нужно, это изменить метод на GET.
Как только мы изменим метод на GET, мы снова выполним запрос. Как вы можете видеть на изображении ниже, мы получили в ответе именно то, что передали в запросе PUT.
Дополнительная информация (краткая шпаргалка)
Что такое API?
API (Application Programming Interface) – это jar-файл, который содержит методы в качестве некоторого интерфейса для выполнения определенных действий.
Обратимся к приведенному ниже примеру и скриншоту:
- Создайте метод sum, который складывает две переменные и возвращает их сумму.
- Затем создайте класс Calculator, который содержит несколько методов, таких как сложение, вычитание, умножение, деление и так далее. Также могут быть реализованы некоторые вспомогательные классы. Теперь объедините все классы и интерфейсы и создайте jar-файл под названием Calculator.jar, а затем опубликуйте его. Используйте API созданного класса Calculator для доступа к его методам.
- Некоторые API имеют открытый исходный код (например, Selenium), методы которого можно редактировать, когда как другие – лицензионные (например, UFT), которые недоступны для редактирования.
Как именно вызываются эти методы?
Разработчики предоставляют интерфейс для отправки запросов к API калькулятора. Мы создаем объект класса Calculator и вызываем метод sum или любой другой метод.
Предположим, что файл calculator.jar создан какой-то компанией, и они используют данный калькулятор как утилиту через UI интерфейс, а мы в свою очередь тестируем это приложение через UI и автоматизируем его с помощью QTP/Selenium, выполняя тестирование frontend.
Некоторые приложения не имеют UI, поэтому для доступа к этим методам мы создаем объект класса и передаем необходимые параметры для тестирования – эти действия относятся к тестированию backend. Отправка запроса и получение ответа происходит с помощью файлов в формате JSON/XML.
См. приведенную ниже диаграмму:
Клиент POSTMAN
- POSTMAN – это REST-клиент, используемый для backend тестирования API.
- В POSTMAN мы выполняем запрос к API и проверяем ответ, статус-код и полученные данные.
- Swagger – это еще один HTTP-клиент, инструмент, с помощью которого мы создаем документацию API. Используя Swagger мы также можем обращаться к API и получать ответы на запросы.
- См. ссылку https://swagger.io/.
- Для тестирования API можно использовать либо Swagger, либо POSTMAN, выбор HTTP-клиента зависит от компании.
- В POSTMAN чаще всего используются вызовы GET, POST, PUT и DELETE.
Как загрузить приложение POSTMAN?
Откройте браузер Google Chrome и загрузите приложение POSTMAN, оно доступно в магазине приложений Chrome.
Виды http-методов REST API
В POSTMAN есть много различных методов, но в примере мы используем только GET, PUT, POST и DELETE.
- POST – Этот вызов создает новую сущность.
- GET – Этот вызов отправляет запрос и получает ответ.
- PUT – этот вызов создает новую сущность и обновляет существующую.
- DELETE – этот вызов удаляет существующую сущность.
Доступ к API может осуществляться или с помощью пользовательского интерфейса, например в банковских приложениях, или с импользованием REST API клиентов (например POSTMAN) для тех систем, где пользовательский интерфейс недоступен, и существует только backend.
Существуют и другие клиенты, например SOAP UI, который является REST и SOAP клиентом, а продвинутые REST клиенты, такие как JMeter, дают возможность выполнять запросы к API непосредственно из браузера. POSTMAN – лучший инструмент для выполнения стандартных операций POST и GET.
Еще несколько примеров отправки запроса и получения ответа в POSTMAN-клиенте:
Для примера мы используем тестовый API, представленный здесь.
При тестировании API мы в основном проверяем следующие моменты:
- Коды состояния ответа, подробности см. на вики-странице.
- Статус-код ответа.
- Тело полученного в формате JSON ответа.
1. Вызов метода GET
Данный метод отправляет запрос и получает ответ.
Шаги для тестирования REST API:
- Заполните URL значением https://reqres.in//api/users?page=2 [? это параметр запроса, который фильтрует результат, например, выводит всю информацию о пользователе на странице 2, параметры запроса зависят от конкретной реализации API].
- Параметры запроса передаются через (?), а параметр пути – через (/).
- Выберите метод GET.
- Заполните заголовки (если требуется) значениями User-Agent: “Software”.
- Нажмите на кнопку “Send”.
- Если API доступен, в ответ мы получим:
- Статус 200 – OK, это означает, что ответ получен успешно.
- Полученный ответ в формате JSON.
- Еще один пример метода GET, где мы ищем информацию о конкретном пользователе с id =3. Введите URL = https://reqres.in/api/users/3
- Если поиск вернул 0 результатов, мы получаем пустой JSON и сообщение состатус-кодом 404 Not Found.
2. Вызов метода POST
Метод создает нового пользователя или сущность.
Шаги для выполнения:
- Выберите метод POST из выпадающего списка и используйте URL “https://reqres.in/api/users/100”.
- Перейдите во вкладку Body – > выберите RAW, т.к. мы передаем запрос в формате JSON.
- Выберите JSON из выпадающего списка и вставьте текст JSON .
- В запросе мы будем передавать следующие данные {“name”: “Morpheus”, “job”: “leader”}
- Текст в формате JSON начинается с фигурных скобок и хранит данные в формате ключ, значение.
- Введите заголовок content type = application/json.
- Нажмите кнопку Send.
- При успешном запросе мы получаем следующий ответ:
- Статус-код 201 Created, ответ получен успешно.
- Полученные данные
- Заголовки ответа
3. Вызов метода PUT
Данный метод обновляет или создает новую сущность.
Шаги для выполнения PUT запроса:
- Используйте URL “https://reqres.in/api/users/206” и передайте JSON {“name”: “Morpheus”, “job”: “Manager”}.
- Выберите метод PUT -> Откройте вкладку Body – > Выберете RAW > Вставьте наш JSON и выберите JSON из выпадающего спискаю
- JSON начинается с фигурных скобок и хранит данные в формате ключ-значение.
- Нажмите кнопку Send, в случае успешного запроса вы получите следующий ответ.
- Статус-код 200 OK, ответ получен успешно.
- Полученные данные
- Заголовки
- Значение поля “job” обновилось на “Manager”
4. Вызов метода DELETE
- Чтобы удалить пользователя, используйте URL “/api/users/423”.
- Выберите метод DELETE, передаваемые данные не требуются.
- Запрос удалит пользователя с id =423, если он есть в системе. Получим следующее:
- Статус 204 – No content, ответ получен успешно.
- Данные в ответе не приходят, идентификатор пользователя удален.
- Заголовки ответа
Основные проблемы при тестировании API
- Тест-кейсы должны быть разработаны таким образом, чтобы обеспечить достаточное покрытие.
- Разработка тест-кейсов довольно проста, если API имеет небольшое количество входных параметров, но ее сложность возрастает при большом количестве параметров.
- Нужно регулярно обновлять тестовое покрытие при изменении бизнес-требований. Если добавляется новый параметр, необходимо создать дополнительный тест-кейс с этим параметром.
- Требуется правильная последовательность вызова эндпоинтов API.
- Необходимо исследовать граничные условия и производительность.
Заключение
В этом руководстве мы рассмотрели важные моменты для начала работы с инструментом тестирования API Postman. Мы научились устанавливать инструмент Postman в качестве приложения и рассмотрели, как создать простой запрос и проверить полученный ответ.
Надеемся, что к моменту завершения чтения этой статьи вам удастся выполнять запросы к API. Однако успешное тестирование API не подразумевает просто копирование и вставку тела, заголовков и других необходимых блоков запроса и успешное получение ответа.
Вам также необходимо уметь писать собственный JSON, переходить к определенному полю в JSON с помощью ключей или параметров, понимать массивы в JSON и т.д.
Инструмент POSTMAN используется для проведения backend тестирования и чаще всего для выполнения методов GET, PUT, POST, DELETE.
Тестирование API очень важно для поиска уязвимостей в API, поскольку злоумышленники могут воспользоваться ими и нанести финансовый ущерб программному продукту. Тестирование API кажется простым, но при этом необходимо быть очень осторожными и учитывать при тестировании все возможные комбинации и кейсы.
Перевод статьи «POSTMAN Tutorial: API Testing Using POSTMAN».
Пингбэк: Автоматизация тестирования API с помощью Postman
Пингбэк: Большой учебник по Postman