что такое postman в тестировании
Как пользоваться программой Postman
Программа Postman предназначена для тестирования работы API, а также для отправки запросов POST и GET. В отличие от похожей утилиты curl, она имеет графический интерфейс, поэтому легко осваивается даже новичками.
Скачать ее можно с официального сайта – есть дистрибутивы для Windows, macOS и Linux. На последней платформе есть возможность установки утилиты напрямую из Центра приложений. В любом случае использование начинается с регистрации бесплатного аккаунта.
Как тестировать API
Тестирование интерфейса API проводится путем анализа точности выходных данных в зависимости от подаваемых при входном запросе. Этим и занимается Postman: он составляет и отправляет их на указанные URL, получает обратно и сохраняет в базе данных. При желании возможно сохранение типовых запросов в коллекции (для быстрого доступа) и создание для них разного окружения.
Интерфейс приложения Postman
Главное окно программы разделено на четыре области. Разделение на блоки идет по функционалу, что заметно упрощает настройку и управление. Если опыта работы с такими утилитами нет, рекомендуется не трогать непонятные пункты, а пользоваться только простыми (их мы и рассмотрим).
Выполнение запроса
В нижней части страницы появится код страницы (HTML). Здесь имеется несколько вкладок:
На первой вкладке, где отображается тело запроса, есть выбор нескольких вариантов отображения. Так, Pretty интересна для получения JSON-данных – программа отформатирует их в достаточно удобном формате. Если выбрать режим Raw, информация будет представлена «как есть», без каких-либо изменений. Вкладка Preview отображает сайт в том виде, в котором он открывается в браузере.
Передача параметров в Postman
В программу встроен собственный сервис API, который и используется для тестирования внешних ресурсов. Чтобы обратиться к нему, следует кликнуть на «плюсик», выбрать из выпадающего списка тип запроса GET, а вместо домена вставить ссылку на сервис https://postman-echo.com/get.
Затем нужно открыть вкладку Params и в разделе Query Params под строкой Key внести название отправляемого параметра. Следом под строкой Value нужно написать еще одно значение. Количество не ограничено – пользователь вносит столько параметров, сколько ему нужно для тестирования конкретного API.
Остается нажать на кнопку Send и получить ответ на отправленные запросы. Чтобы потом параметры не задействовались при тестировании реально существующих веб-ресурсов, достаточно снять с них галочки. Это укажет программе, что нужно отправлять запросы без учета внесенных параметров.
Передача параметров формы и заголовков
В отличие от GET, запрос POST передается не в ссылке на сайт, а в теле запроса. Чтобы проверить работоспособность программы, используется обращение к адресу https://postman-echo.com/post. Во время настройки на вкладке Body нужно включить режим form-data, затем внести схожие параметры и нажать на кнопку Send.
Если взаимодействие по API требует передачи токенов авторизации, понадобится привлечь к этому HTTP-заголовки. Такой формат работы используется, например, в движке Xenforo, написанном на PHP для развертывания форумов. Для передачи в заголовке какой-либо информации нужно зайти на вкладку Headers и добавить любое имя со значением (на выбор пользователя). После отправки информации внизу окна будет отображен ответ сервера.
Передача файла в Postman
Программа Postman позволяет отправлять файлы, а не только текстовые данные, как в приведенных выше примерах. Чтобы сделать это, достаточно перейти на вкладку Body, зайти в раздел form-data и выбрать тип параметра File (вместо Text).
Затем следует нажать на кнопку Select File и выбрать отправляемый файл. После отправки данных на сервер он будет виден в секции files. Ничего сложного в процедуре нет, приведенная выше схема работает со всеми типами файлов.
Авторизация Basic Auth
Если на сайте используется защита с авторизацией по методу Basic Auth, программа Postman дает возможность проверить ее прохождение. В качестве примера обращение будет осуществляться по адресу https://postman-echo.com/basic-auth. Чтобы пройти проверку, понадобится отправить значение имени пользователя postman и пароль доступа password.
Далее в рабочей области надо открыть вкладку Authorization, в разделе Type выбрать значение Basic Auth и заполнить имя с паролем. Если процедура пройдена успешно, тестовый сервер вернет ответ authenticated: true.
История и коллекция запросов
При систематическом использовании одних и тех же запросов будет проще отправлять их из заранее составленного списка. Программа Postman упрощает задачу за счет сохранения истории, в которой содержатся все внесенные параметры. Пользователю лишь остается кликнуть по нужному пункту и при необходимости заменить URL.
Наиболее важные запросы рекомендуется сохранять в коллекции. Чтобы сделать это, достаточно нажать на кнопку New на верхней панели, выбрать пункт Collection и ввести название (на выбор пользователя). Теперь любой запрос будет добавлен в перечень нажатием на кнопку Create и, после заполнения всех данных, кнопку Save (до отправки на сервер).
Фичи Postman, которые облегчат жизнь тестировщика: пошаговая инструкция с видео
Security Automation Engineer в NIX
Postman — полезный инструмент не только для тестировщика, но и для всей команды разработки. Под капотом вы получаете довольно обширные возможности: можете исследовать сайты, готовить данные для тестирования и проводить его, а также создавать тестовые сущности (юзеров, аккаунты, товары и так далее). Кроме того, в последних версиях даже появилась функция создания общего воркспейса для нескольких участников команды.
Изначально я ограничивалась базовыми функциями Postman: отправкой запросов и созданием коллекций. Это помогало в работе, но не так уж сильно ускоряло процессы. Когда работаешь в бешеном ритме, появляется миллион вкладок не только в браузере, но и в Postman. А когда у тебя множество запросов, которые еще нужно на три разных энвайронмента продублировать, — получается хаос.
С опытом начинаешь искать варианты, как можно использовать свое время эффективнее. Как раз в такой период мне выпала возможность по-другому взглянуть на функционал уже привычного мне инструмента.
Для начала — небольшой дисклеймер. На моем проекте не было как таковой документации. Чтобы узнать хедеры, параметры, контент-тайп и тело запроса, приходилось идти на UI и добывать эти данные через консоль. Часто требовалось писать запрос для саб-воркфлоу, который вызывается в теле основного запроса, то есть непрямой запрос, который можно увидеть в консоле.
Мне Postman давал возможность, условно говоря, подготовить «ингредиенты» для тестирования API.
Раньше я не воспринимала Postman как независимый ресурс для тестирования. Но практика показывает, что его можно запускать, не используя параллельно открытый браузер. Для наглядности предлагаю рассмотреть стандартный флоу, когда пользователь логинится на сайт и хочет узнать основную информацию о товарах. При этом в перспективе ему нужно собрать как можно больше информации о ресурсе, чтобы создать API-тесты и, предположим, что у нас больше одного энвайронмента для тестирования.
Шаг первый: настраиваем логирование запросов через Postman
DevTools — очень удобный инструмент, но мы хотим, чтобы отправленные запросы не были потеряны в процессе исследования ресурса. Что для этого нужно? Установленный на локальной машине Postman и установленное в браузере расширение. После того, как указанные тулзовины подготовлены в браузере и в самом Postman, включаем прокси-сервер для логирования запросов, и можно возвращаться к сайту, который нас интересует.
Важно: в настройках интерсептера стоит указать домен, который вас интересует. В противном случае в истории будут записываться все запросы, большая часть из которых абсолютно лишняя.
Ниже вы увидите полное флоу — от подключения прокси-сервера до момента, когда запросы появятся в History-табке в самом Postman.
Чем это может быть полезно:
Шаг второй: создаем коллекции с end-to-end flow
Исследовав ресурс, можно вернуться к Postman и отключить прокси-сервер. Теперь, имея на компьютере сохранившееся запросы, можно проделать с ними некоторые манипуляции.
Очень удобно, что все POST-, PUT-, PATCH-запросы уже сохраняются с телом запроса и его исходными конфигурациями. Если ваш ресурс не требует особенных манипуляций с авторизацией, то по умолчанию вы сможете воспроизвести все запросы, которые вызываются на UI и были собраны прокси сервером через Postman. Таким образом можно делать своего рода карту end-to-end flow для отдельных фич. Из History сохраняем запросы в коллекции, группируя их удобным для себя образом.
Шаг третий: добавляем авторизацию
Сегодня у меня есть запросы, которые я хочу отправлять. Они сгруппированы определенным образом, я могу проходить флоу, но у меня все еще есть зависимость от открытого в браузере сайта. Ведь мне нужен токен для получения информации, которая доступна только авторизованному пользователю.
Здесь самым интересным для меня моментом является то, что можно задать способ авторизации сразу для всей коллекции запросов:
Шаг четвертый: добавляем переменные сред
Сейчас я могу совершать операции в Postman, независимо от браузера и использовать только API. Теперь мне хотелось бы отправлять запросы на разные энвайронменты (допустим у меня их два: dev и QA).
В Postman предусмотрена возможность создания переменных для различных уровней рабочего пространства. Для этого я делаю себе пространство переменных (QA), в котором создаю переменную test.
Можно сразу создать переменную и засетить в нее нужное значение. Также в созданную переменную можно задать значение, используя выделение. Таким образом для одной переменной в разных энвах будут существовать разные значения. Теперь нам не нужно модифицировать или дублировать запросы для разных виртуальных сред:
Шаг пятый: тестируем API
Теперь у нас есть все для того, чтобы вручную отправлять запросы на разные энвы. Можно переходить к тестированию API. Postman дает возможность тестировать запросы напрямую. Вот как это выглядит:
Шаг шестой: создаем тестовые сущности и проводим end-to-end тестирование с Postman
Имея набор тестов для создания сущности (аккаунта, продажи и так далее), можно создавать тестовые сущности и тестировать разные энвы, не переключаясь на другие инструменты.
В Postman есть интересная фича — Test Runner. С ее помощью можно отправлять запросы в различной последовательности (по умолчанию они отправляются последовательно) и манипулировать тестовыми данными, количеством запросов и всем, чем необходимо:
С таким подходом можно проводить API-тестирование с использованием Postman и готовить тестовые сущности для мануального тестирования приложения.
А что еще полезного?
Обладая user-friendly-интерфейсом, крутым функционалом и понятной документацией, Postman может стать очень мощным инструментом для разработчиков.
Обычно мы видим только вершину айсберга, но стоит немного углубиться, как можно открыть для себя целую вселенную. Лично для меня Postman — классный инструмент для исследования веб-сайтов. Не нужно сильно углубляться в знание инструмента, чтобы изучать онлайн-ресурс, сохранять результаты, создавать коллекции запросов.
Как тестировщице, мне очень удобно использовать его для ведения дефектов (последовательность шагов, респонз, хедеры). Воспроизведя дефект в Postman, можно удостовериться, что это не единый случай, и исключить посторонние факторы. При этом все данные о дефекте будут под рукой.
С аккаунтом в Postman можно синхронизировать свои задачи на разных компьютерах, используя переменные среды и коллекции, наконец-то избавиться от беспорядка. А с помощью последовательных запросов — облегчить создание тестовый данных или прохождение регрессионных сценариев.
Также Postman удобен и для разработчиков. Всем участникам команды нужно плотно взаимодействовать друг с другом, чтобы быть на одной волне и эффективно выполнять задачи (иначе возникнет недопонимание).
Postman помогает улучшить коммуникацию со всеми специалистами в команде: в новых версиях можно делиться своим воркспейсом с тиммейтами — это значительно ускоряет процессы. В общем, Postman — неисчерпаемый кладезь возможностей.
Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.
Postman и End-2-End тестирование
Введение
Всем привет. В этой статье я расскажу, как использовал Postman для E2E тестов API, и что из этого вышло.
Про сам Postman как средство для тестирования API написано довольно много статей как и на Хабре, так и просто в вебе. А еще у них есть отличная документация и обучающий сайт (рекомендую заглянуть, снимает примерно 85% всех вопросов по использованию этого инструмента), поэтому здесь я буду акцентировать внимание именно на сценариях тестирования.
Что такое E2E тест в постмане? Это коллекция из запросов из разных API, которую можно запускать либо через нативный Postman-Runner, либо с помощью консольного расширения Newman. Ассертится все это через тесты на JS с использованием Chai библиотеки, которая поддерживается постманом.
В чем будет состоять сквозной тест API? Я отправлю телеметрию упражнения (как будто бы его сделал пользователь) на сервер, а потом буду запрашивать данные с лидерборда, как будто бы пользователь после тренировки посмотрел кол-во сожженых калорий.
Я использую методы из 3-х разных апи, с разными кредитами для получения bearer token, и поэтому не получается вынести аутентификацию на уровень коллекции.
Тест-кейс
1. GET запрос на сервер возвращает общий список тренировок на нашем тренажёре, и их кол-во у определенного пользователя. У тренажера несколько типов тренировок, в ответе нас интересует тип тренировки Fast:
В тестах (все тесты я буду делать во вкладке «Tests») помимо стандартных кейсов на статус-код и наличие key/value я создаю переменную на уровне коллекции и записываю туда значение из trainingCountFast. Это кол-во тренировок, потом буду проверять, что после новой счетчик увеличился на 1.
2. PUT запросом отсылаю на сервер тренировку, body запроса выглядит так:
В trainingTelemetryList массив из 100+ объектов на 5 тыс. строк, целиком решил тут не выкладывать).
В Calories у меня стоит переменная test_fastCalCount которую я заранее объявил в Pre-Request Scripts, и записал в нее значение из переменной, содержащей значения калорий в предыдущей тренировке + 1. Знаки после запятой нужны для проверки округления.
3. GET запросом опять возвращаю список всех поездок, и получаю:
Во вкладке Tests проверяю, что значение trainingCountFast увеличилось на 1. Заодно этот тест проверит, что округление знаков после запятой работает как надо (т.е. в данном случае не увеличит значение).
4. GET запросом я беру с сервера информацию о калориях по типу тренировки fast, и получают такой ответ:
5. Итак, корректное сохранение калорий я проверил, сохранение тренировки проверил, счетчики тренировок увеличиваются, и настало время тренировку удалить. Но для этого нужно получить ее ID, и я использую GET запрос, который возвращает все тренировки с типом fast:
6. DELETE запросом удаляем выбранную тренировку, параметром в URL передаем test_traningIdFast. DEL запрос нам ничего кроме 200 не возвращает, поэтому просто проверяем его.
Итого у нас получилась коллекция из 7-ми запросов. Ее можно прогонять как в постмане, так и экспортировать в JSON, и запускать через командную строку, используя newman.
Что можно сделать еще: поскольку Postman запускает запросы последовательно, и тут вся цепочка взаимозависима, если один запрос упадет, то продолжать ранить остальные не имеет смысла, поэтому надо добавить простую if/else конструкцию во вкладке «Tests», которая будет тормозить запрос при определенных условиях.
Например, если не удалось отправить тренировку на сервер, то дальнейшие действия по сравнениям значений этой тренировки не имеют смысла. Добавим в PUT запрос сохранения вот такую конструкцию:
Поскольку PUT запрос ничего не отдает кроме статус-кода, то в случае успешного выполнения будет тест на пустое тело. Если статус-код изменится, то runner прекратит дальнейшие запросы.
Postman — как инструмент тестирования API
Я начинаю цикл ознакомительных и обучающих статей по Postman. Цель данного цикла — помочь новичкам овладеть этим инструментом и начать применять его в работе. Первая из статей будет вводная, в которой я расскажу для чего нужен Postman, как начать им пользоваться, а так же разберу несколько простых запросов.
В настоящее время, тестировщики достаточно часто сталкиваются с ситуацией, когда задача звучит следующим образом: “Протестируй апиху, пожалуйста, тебе бэкенднер документацию скинул”. В этот момент у многих может случиться ступор. Но опытные тестировщики сразу же подумают о Postman.
Для чего нужен Postman?
Postman предназначен для проверки запросов с клиента на сервер и получения ответа от бэкенда. Можно описать общение Postman с бэкендом в виде диалога:
Postman: “Дай мне информацию по балансу именно этого пользователя”
Backend: “Да, конечно, запрос правильный, получи информацию по балансу этого пользователя”
Такой позитивный диалог происходит в том случае, если ошибок на бэкенде нет и разработчик сделал всё согласно документации. Но не всегда это происходит в таком успешном ключе. В моей практике случались следующие диалоги:
Postman: “Дай мне информацию по балансу именно этого пользователя”
Backend: “Кто я вообще?”
Postman: “Дай мне информацию по балансу именно этого пользователя”
Backend: “Пользователь не найден.”
Описанные выше ответы от бэкенда имеют свой код ошибки, которые приходят в ответе.
В первом случае — это ошибка с кодом 500 (Internal Server Error) внутренняя ошибка сервера, которая говорит о том, что сервер столкнулся с неожиданным условием, которое помешало ему выполнить запрос.
Во втором — 404 ошибка (Not Found) код ответа HTTP о том, что сервер не может найти данные по запросу, полученному от клиента.
Именно для этого и предназначен Postman — для проверки запросов клиент → сервер по документации, чтобы убедиться, что всё работает на стороне бэкенда.
Как начать?
Для начала — нужно скачать клиентское приложение с официального сайта — https://www.getpostman.com/.
Как пользоваться?
Итак, есть документация, есть Postman, коллекция создана. Что дальше?
Все виды документации по API выглядят примерно одинаково. В любом из видов можно увидеть какой метод нужно использовать, какой URL, какие body, params headers и так далее.
Всё готово, можно отправить первый запрос! Пример запроса будет показан на запросе “GET request” из общедоступной документации postman echo. Метод GET нужен для получения какой-либо информации от сервера.
В данном примере через URL уже переданы параметры запроса, а именно: “foo1=bar1&foo2=bar2”. При вставке URL в поле для ввода URL, автоматически подставляются параметры запроса в вкладку “Params”:
После того, как выбран метод, указан URL и параметры, можно отправить запрос на сервер. После нажатия кнопки “Send” в параметре ответа появляется ответ от сервера.
Как пользоваться Postman
Всё это позволяет удобно проверить работу любого API, и даже обычного веб-сайта. В этой статье мы рассмотрим как пользоваться Postman для тестирования HTTP запросов.
Установка Postman
Загрузить Postman для Windows можно на официальном сайте программы. Кроме версии для Windows, здесь есть портативные версии для Linux и MacOS.
После загрузки будет необходимо запустить загруженную программу. В Linux также можно установить программу из центра приложений Ubuntu:
Или с помощью универсального менеджера пакетов snap. Для этого выполните:
sudo snap install postman
После завершения установки postman в Linux можно запускать программу из главного меню.
После первого запуска программа предлагает создать бесплатный аккаунт. Он необходим для синхронизации результатов вашей работы между устройствами. Создайте аккаунт или войдите в уже существующий нажав кнопку Sign In. Для создания аккаунта надо ввести адрес электронной почты, ваш ник, пароль и нажать оранжевую кнопку Create Free Account:
После входа в аккаунт вы попадёте в главное окно программы. Дальше давайте рассмотрим использование Postman, это будет так сказать инструкция для чайников, поэтому если вы уже пользовались программой и всё в ней знаете, то вам будет не интересно.
Как пользоваться Postman
1. Интерфейс
Давайте сначала разберемся с интерфейсом Postman. Главное окно можно условно разделить на несколько частей:
Предлагаю пока не трогать сложные настройки, а разобраться с обычной отправкой запросов.
2. Выполнение запроса
Для того чтобы выполнить простой запрос не сохраняя его в коллекцию найдите на панели вкладок кнопку со значком + и кликните по ней. Откроется новая вкладка, где вы можете выбрать тип запроса GET или POST, а также прописать URL, которую надо открыть. Например, можно получить главную страницу losst.ru. Для отправки запроса нажмите кнопку Send:
В нижней части страницы сразу же отобразится HTML код страницы. Здесь есть несколько вкладок:
Кроме того, на вкладке Body можно выбрать несколько вариантов отображения. Вкладка Pretty полезна для JSON данных, они будут отформатированы в удобном для чтения формате, вкладка Raw выводит данные как есть, а на вкладке Preview можно посмотреть как выглядит открытый сайт:
Это самый простой вариант, но давайте попробуем работать с API.
2. Передача параметров
Программа Postman предоставляет свой API сервис, который можно использовать для тестирования клиентов API. Это postman-echo.com. Например, если отправить запрос по адресу https://postman-echo.com/git и передать туда несколько параметров, вы получите в ответ переданные параметры, а также заголовки в формате JSON.
Выберите тип запроса GET, в поле URL вставьте https://postman-echo.com/get. Затем откройте вкладку Params и здесь в разделе Query Params под надписью Key напишите название параметра, например foo, затем, напротив него под надписью Value напишите значение параметра, например, bar. Таких параметров можно добавить столько, сколько вам нужно. После нажатия кнопки Send запрос отправится и вы получите результат внизу страницы:
Чтобы в следующем запросе эти параметры нам не мешали, снимите с них галочки. Это сообщит программе, что передавать их не нужно.
3. Передача параметров формы
В ответ вы получите те же параметры.
4. Передача заголовков
После отправки запроса вы увидите его в разделе Headers внизу окна, значит он был передан на сервер.
5. Передача файла
Затем нажмите Select file, там, где должно быть значение параметра и выберите файл. После отправки его на сервер, вы найдёте полученный файл в секции files:
Теперь вы знаете как отправить файл Postman, как видите, всё просто.
6. Авторизация Basic Auth
Иногда для защиты тех или иных URL на сервере используется авторизация Basic Auth. Программа Postman тоже умеет её проходить. Для примера будем использовать API URL https://postman-echo.com/basic-auth. Здесь, для того чтобы пройти авторизацию на передать имя пользователя postman, а пароль password.
В рабочей области откройте вкладку Authorization, в разделе Type выберите Basic Auth и заполните имя пользователя и пароль:
Если всё прошло успешно, то тестовый сервер вернёт вам ответ authenticated: true:
7. История запросов
8. Коллекции запросов
Если вам нужно часто повторять одни и те же запросы с определёнными параметрами, вы можете создать отдельную коллекцию запросов. Для того чтобы создать коллекцию нажмите кнопку New на верхней панели, затем выберите Collection и в открывшемся окне введите имя коллекции, например, Test Requests:
Чтобы добавить в коллекцию запрос, нажмите ту же кнопку New и кликните по ссылке Request. В открывшемся окне надо ввести имя запроса, а чуть ниже выбрать коллекцию к которой следует его добавить. После этого нажмите кнопку Create и можете заполнять данные запроса и смотреть ответ как это описано выше. Когда всё будет настроено кликните по кнопке Save, которая находится рядом с Send чтобы сохранить этот запрос.
После этого вы сможете найти свой запрос открыв на боковой панели вкладку Collections:
Благодаря использованию аккаунта все ваши запросы будут синхронизированы между устройствами, на которых вы используете программу.
Выводы
Теперь вы знаете как пользоваться Postman для проверки работоспособности вашего API. Конечно, мы рассмотрели далеко не все возможности и функции программы, но этого вам будет достаточно чтобы начать её полноценно использовать и отправлять различные запросы. А какие программы используете вы для таких целей? Напишите в комментариях!