Transfer start postman что это
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 и 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 прекратит дальнейшие запросы.
👨🔧️ API для QA: учимся тестированию ПО без доступа к коду
Юлия Ильюшкина
Использование Postman
Postman использует протокол HTTP для взаимодействия между серверами. Он доступен как в веб-версии, так и в виде настольного приложения с графическим интерфейсом.
· Создание и отправка запросов
· Изменение параметров запросов.
· Сохранение созданных запросы в коллекции и папках.
· Запуск автоматических тестов на основе коллекций п ри помощи Collection Runner.
· Изменение окружения для одинаковых запросов.
· Добавление контрольных точек к вызову API.
Создание метода Postman
Стоит отметить, что тестирование при помощи API возможно только при наличии самого API и документации от разработчика. Это позволит точно понимать функции продукта без противостояния инженера QA и программиста на вечную тему: «Это баг!» & «Нет, это фича!».
В статье для начинающих мы рассмотрим ручное тестирование по 4 основным запросам:
· POST – создание ресурса на сервисе, т. е. отправку данных на сервер.
· GET – получение ресурса с сайта.
· PUT – обновление данных на сервере.
· DELETE – удаление ресурса с сайта.
При работе с Postman стоит знать о статусах и классах состояний сервера:
Классы состояний сервера
В примерах рассмотрим статус 200 ОК, который информирует об успешности выполнения операции, т.е. пользователь когда получает ожидаемый результат – страницу с запрашиваемой информацией.
Примеры запросов в Postman для быстрого обучения тестировщика
После запуска в Postman стоит создать папку с коллекцией запросов. Для этого нужно во вкладке Collections нажать на New Collection.
Указываем название коллекции.
Создаем запрос нажатием на Add requests.
Рассмотрим регистрацию пользователя, поэтому указываем соответствующее название и нажимаем на Save to [Collections name].
Указываем url тестируемого сайта.
Прописываем название соответствующего API, в данном случае api/register.
Во вкладке Body выбираем raw.
Далее выбираем формат текста JSON.
Нажатием на Send отправляем данные.
В соответствующем поле видим ожидаемый результат, указанный в документации и статус 200 ОК.
Выполним запрос на получение данных о созданном пользователе, выбираем GET.
Указываем ссылку на API и после отправления смотрим на полученный результат, соответствующий ожидаемому.
Попробуем обновить данные пользователя, для этого создаём update_user.
Указываем ссылку с url и API, открываем окно для кода.
Отправляем новые данные.
В результате указана обновленная информация и время, когда были внесены изменения. Дополнительно успешность операции подтверждает ответ 200 от сервера.
DELETE
Создаём запрос на удаление пользователя.
Указываем полную ссылку на страницу пользователя и отправляем.
Получаем от сервера в ответ статус 204 No Content, информирующий об успешности запроса, но без содержимого, т. е. данные были успешно удалены.
Документация, необходимая тестировщику для обучения
Ознакомиться со всеми функциями инструмента можно в документации от разработчиков Postman. В информационном центре представлена инструкция по составлению ручных и автоматизированных запросов, настройке коллекций, использованию cookies, сбору данных, а также по составлению запросов для устранения ошибок и прочее.
Разобраться с нюансами профессии QA и QC, а также получить необходимые знания и изучить инструменты можно на курсе по тестированию ПО от GeekBrains. Вебинары проводят практикующие специалисты, которые не только помогут студентам стать тестировщиками с нуля, но и подскажут, как составить резюме и получить работу.
Как пользоваться программой 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
Postman — это HTTP-клиент для тестирования API. HTTP-клиенты тестируют отправку запросов с клиента на сервер и получение ответа от сервера.
API (Application Programming Interface) — это интерфейс для обмена данными с сервера между двумя приложениями или компонентами ПО. Тестировщикам Postman помогает в проектировании дизайна API и создании mock-серверов (имитаторов работы приложения). Например, с помощью Postman можно протестировать, как API регистрирует нового пользователя приложения, как добавляет и удаляет данные о нем на сервере.
Использование Postman
С помощью Postman тестировщик может:
Для работы с серверами программа использует протокол HTTP. Тестировщик отправляет тестовые запросы от клиента на сервер и получает ответ, есть ли ошибка в работе API.
Postman доступен в виде приложения для Windows, Linux и macOS, а также в web-интерфейсе (для его работы нужно установить программу Postman Desktop Agent). Вот как выглядит работа с коллекциями запросов:
Коллекция — это файл проекта со связанными запросами. Обычно запросы для тестирования одного API описывают в одной коллекции. Внутри коллекции запросы можно объединить в папки, например по разным версиям API или тестируемым элементам приложения.
В Postman есть инструмент Collection Runner. Он позволяет одновременно выполнять все запросы из коллекции или папки с нужным количеством итераций и в нужном порядке. После выполнения всех запросов Collection Runner выдает отчет с пометками об успешности запросов и кодами статуса.
Для автоматизированных тестах к коллекциям, папкам и запросам можно применять скрипты на JavaScript. Например, с помощью скриптов можно использовать результат выполнения одного запроса как условия для другого.
Методы Postman
Чаще всего в работе API используется архитектура RESTful. В этой архитектуре есть четыре стандартных метода запросов к серверам по HTTP:
В Postman можно протестировать запросы по каждому методу: его нужно выбрать на вкладке запроса. После отправки запроса тестировщик получает ответ в виде кода статуса HTTP. Всего таких статусов 40 в пяти категориях; каждый код помогает понять, правильно ли работает API.