Постман что за программа

Если на вашем счету уже есть не одно разработанное приложение, использующее REST API или сами создавали REST API, то наверняка слышали о Postman. В этой заметке хочу показать на нескольких примерах основную функциональность этого приложения для остальных — тех, кто еще только начинает заниматься подобными проектами.

Введение

Создавали ли вы REST API? Или приложения, которые используют некий сторонний REST API? Если вы ответили утвердительно хотя бы на один из этих вопросов, то вы поймёте мою боль.

Ранее (очень ранее) для подобных задач я создавал отдельный файл, в котором сохранял JavaScript-сниппеты, которые выполняли REST-запросы к тестируемым API. Моим обычным пайплайном при обращении к среднестатистическому API был следующий:

  1. Копируем нужный запрос из файла
  2. Выполняем запрос на получение token-а
  3. Копируем следующий запрос из файла
  4. Копируем token в новый запрос
  5. Выполняем запрос на получение данных

Пункты 3-5 могут продолжаться еще несколько раз. Если это одноразовая задача, то проблем нет — выполнил и забыл. Однако, если вы используете этот API в своём приложении или сами являетесь разработчиком API, то выполнять эту пачку запросов требуется многократно и делать это становится неприятно. В этот момент появляется ОН — Postman.

Postman — основы в 5 минут. Postman для начинающих

Создатели Postman так описывают свой проект:

Postman is the swiss army knife of API tools, allowing you to design, build, test, document and monitor your services, all in one place.*

Если вкратце и по-русски, то Postman — это комбайн, который позволяет создавать и выполнять запросы, документировать и мониторить ваши сервисы в одном месте.

Установка

Postman доступен как Chrome App, который можно установить из магазина приложений Chrome, и standalone приложения для MacOS. Версии для Linux пока нет, но авторы обещают в скором времени это исправить. Postman доступен как standalone-приложение для Windows, MacOS и Linux.

На момент написания данной статьи так же существовала версия для Google Chrome о которой пойдёт речь в этой статье.

Выполнение запросов

Базовая функциональность довольная проста: для выполнения элементарных запросов достаточно:

  1. выбрать тип запроса
  2. вбить запрос в соответствующее поле …
  3. … или заполнить параметры через форму
  4. нажать кнопку «Send»

2016-09-18_20-13-06.png

Если все сделано правильно, то в нижней части окна отобразится результат выполненного запроса. В моём случае — запрос к знакомому по предыдущим постам API StackOverflow:

https://api.stackexchange.com/2.2/search?page=1fromdate=1474156800order=desctagged=c%23 postman.setEnvironmentVariable(«token», jsonData.token);

Этот скрипт только лишь преобразует строку в JSON и сохраняет в переменную текущего окружения «token» свойство token полученного объекта.

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

В-третьих, изменим запрос на получение списка сериалов «Walking Dead» таким образом, чтобы токен получался из переменных окружения. Для этого достаточно в заголовке Authorization строку токена заменить на сниппет >:

Читайте также:
VmWare workstation pro для чего программа

2016-09-18_15-27-49.png

Теперь после выполнения запроса для получения токена можно сразу же выполнять запрос на поиск сериала без лишних манипуляций с копированием полученного токена.

Можно проверить, что всё работает корректно выполнив всю коллекцию запросов через соответствующее меню коллекции:

2016-09-18_15-40-02.png

В открывшемся меню выбираем нужную коллекцию и жмём большую синюю кнопку «Start Test», которая выполнит все запросы выбранной коллекции в той последовательности, в которой они сохранены:

2016-09-18_15-42-32.png

Как можно видеть на скриншоте все запросы завершились удачно. К сожалению, содержимое ответов этих запросов посмотреть здесь нельзя. Оно и правильно — возможность выполнения коллекции запросов предполагается для тестирования API в первую очередь.

Генерация сниппетов

И, напоследок, хотелось бы упомянуть об одной очень крутой фиче Postman — генерация кода из запроса. Список поддерживаемых языков программирования (и не только) довольно широк: от OCaml и cURL до Swift и Go.

Пример кода, сгенерированного Postman для поиска по StackOverflow на Golang:

package main import ( «fmt» «net/http» «io/ioutil» ) func main() < url := «https://api.stackexchange.com/2.2/search?page=1fromdate=1474156800order=desctagged=c%2523 req, _ := http.NewRequest(«GET», url, nil) req.Header.Add(«cache-control», «no-cache») req.Header.Add(«postman-token», «5db2449c-ce3f-4937-cdd3-799d7499a909») res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) >
var data = null; var xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener(«readystatechange», function () < if (this.readyState === 4) < console.log(this.responseText); >>); xhr.open(«GET», «https://api.stackexchange.com/2.2/search?page=1fromdate=1474156800order=desctagged=c%2523); xhr.setRequestHeader(«cache-control», «no-cache»); xhr.setRequestHeader(«postman-token», «bdcd4f52-1cd3-0304-c300-cb947bc119bb»); xhr.send(data);

И в добавок на Python с использованием библиотеки Requests:

import requests url = «https://api.stackexchange.com/2.2/search» querystring = headers = < ‘cache-control’: «no-cache», ‘postman-token’: «ea8fdb1f-dc8a-6e31-63cf-fbb85366f6ca» >response = requests.request(«GET», url, headers=headers, params=querystring) print(response.text)

Как мне кажется, код выглядит приемлемым более чем и вполне годится как отправная точка для дальнейшего шлифования.

Выводы

Вывод только один — если вы еще не используете в повседневной работе Postman, то, вероятно, скоро начнёте. Если нет, то, видимо, оно вам не надо и вы хотите еще больше страданий.

UPD: Неожиданно для себя — записал вебинар для Geekbrains по этой теме:

UPD2: Если вам понравилась статья, можете присоединиться к моему telegram-каналу https://t.me/makesomecode. В канал попадают новые статьи и небольшие заметки по Python, C#, Golang

*) Postman — это швейцарский нож для работы с API, который позволяет создавать, тестировать, документировать и мониторить ваши сервисы из одного места.

Источник: ashirobokov.wordpress.com

Postman для Windows

Postman скриншот № 1

Утилита, которая предлагает пользовательский интерфейс для создания перевода и.

Ini Editor — Программа является расширенным редактором файлов инициализации, которые имеют.

SPRuler — экранная линейка, с помощью которой можно быстро и легко измерить в пикселях любые объекты на экране монитора.

Log Viewer Plus — удобный во всех отношениях просмотрищик лог-журналов с набором полезных инструментов для поиска и фильтрации информации в логе.

Платформа для создания и использования API. Postman упрощает каждый этап жизненного цикла API и.

CHM Editor — удобная программа для работы с CHM файлами, которые используются при создании.

Отзывы о программе Postman

Отзывов о программе Postman 10.9.4 пока нет, можете добавить.

Читайте также:
Regedit exe что это за программа

Источник: www.softportal.com

20 марта 2020 г. Postman — Быстрый Старт для Разработки и Тестирования

Postman - Быстрый Старт для Разработки и Тестирования.

Эта статья призвана упростить и ускорить процесс освоения базового функционала такого инструмента как Postman.

Сама компания позиционирует свой продукт как платформа для разработки API.

Почему все любят Postman?

Данная платформа — это мощный инструмент тестирования и разработки API, который при этом имеет простой и интуитивно понятный интерфейс. Если вы впервые открываете эту программу, зная в чем разница между POST и GET, то вы без труда сможете отправить свой первый запрос. Но есть и неочевидные фишки, которые очень облегчают жизнь.

В верхней центральной части ищем соответствующую кнопку (1) и создаем рабочее пространство (или как в моем случае выбираем из существующих). Понятие рабочее пространство — это группирование ваших проектов — папка или рабочий стол, если хотите.

Затем нажимаем плюс (2) и создаем вкладку запроса.

C GET запросом все крайне просто: задаем url, добавляем параметры (можно «включать» и «выключать» параметры), жмем send и в нижней половине экрана видим ответ (на сервере я просто возвращаю html страницу и вывожу все входящие параметры в json формате). Переключаясь между вкладками на области ответа мы можем найти любую информацию и даже переключаться между представлениями и форматами вывода.

Справа от кнопки Send есть кнопка Save. При попытке сохранения Postman попросит вас указать/создать коллекцию. Коллекция это группирование запросов в рабочем пространстве (к примеру по проектам). Я создал коллекцию test_collection. Сохраняем туда свой запрос.

В Postman есть понятие окружение — это набор переменных, которым можно присвоить значение и использовать при работе. Окружений может быть сколько угодно (для прода, для стейджа, для разных версий — для чего угодно). Окружение привязано к рабочей среде: для каждой среды — свои окружения.

В правом верхнем углу жмем шестеренку и создаем окружение.

Я создал окружение local_test_env с 2 переменными: host и username. Под значение переменной отведено 2 столбца. Отличие только в том, что если вы шарите свой проект на команду, то будут шариться значение из первого, а запросы которые вы выполняете на текущей машине будут использовать второй столбец. Синхронизация вашего Postman аккаунта тоже происходит из первого столбца. Я обычно их дублирую — лучше привыкнуть и заполнять все, а по необходимости заменить.

Выбираем наше окружение активным (чуть левее шестеренки есть выпадающий список).

Давайте отправим POST, используя переменные. Добавляем вкладку, выбираем тип запроса POST. Мы хотим использовать переменную host из нашего окружения. переменные пишутся в двойных фигурных скобках. Скобки, начинаем писать название переменной и Postman сам предлагает нам выбрать переменную из текущего окружения. Выбираем.

Так как это POST запрос переходим во вкладку body (под адресной строкой) и добавляем параметр username, значением для которой будет переменная. Я добавил еще пару параметров для наглядности, сумму которых будет возвращать сервер.

Сервер вернул нам json строку.

В Postman’e мы можем взаимодействовать с полученным результатом, отправлять запросы программно и писать тесты.

Немного о тестах

Открываем консоль сочетанием cmd + alt + c (ctrl + alt + c для Windows). Я сделал 1 запрос и вижу его логи. Кроме того в консоль можно что-то выводить командой: console.log(“something”)

Читайте также:
Testdisk что за программа

Тесты пишутся на вкладке Tests.

Приведу пример нескольких простых тестов и потом посмотрим с ними работать.

pm.test(«Status code is 200», function () { pm.response.to.have.

status(200); });

Это обычная анонимная функция. В данном случае мы говорим, что ответ должен иметь статус 200.

Так как в ответе сервера мы получаем json строку, мы можем распарсить это в переменную. Сделаем это следующей строкой:

var jsonData = pm.response.json();

Дальше используем новую переменную.

pm.test(«check number equal 9 «, function () { pm.expect(jsonData.total).to.

eql(9); });

В этом примере мы ожидаем, что total в jsonData будет эквивалентен 9;

Теперь попробуем сравнить полученное значение поля name из jsonData, с имеющейся в нашем окружении переменной username. Получить переменную из окружения можно так:

pm.environment.get(‘username’)

Теперь тест на эквивалентность:

pm.test(«check name equal variable username», function () { pm.expect(jsonData.name).to.eql(pm.

environment.get(‘username’)); });

Из окружения можно не только читать, но и записывать туда.

Пытаемся получить из окружения переменную total (ее там пока нет);

var sum = pm.environment.get(‘total’);

Так как из окружения мы ничего не получили, в sum тоже ничего не будет. Создаем в окружении total и записываем туда значение, полученное из jsonData.total.

if (!sum) { pm.environment.set(‘total’, jsonData.total); }

Cмотрим что получилось:

Все тесты, кроме первого, прошли. Сервер возвращает нам код 201, а мы ожидаем 200. Переменная наша записалась в окружение, так что все работает ;).

Теперь, имея некоторое представление о Postman’e, попробуем отправить запрос, а лучше несколько.

Задача: отправить какое-то количество запросов, меняя при этом параметр.

    • Создаем новую коллекцию запросов loop,
    • Создаем POST запрос,
    • Добавляем в тело запроса параметр digit, которое будет изменять( берем значение из окружения),
    • Во вкладке pre-request Script добавляем следующий код:

var digits = pm.environment.get(‘digits’); if (!

digits) { digits = [«2», «4», «5», «22», «13», «6»]; } console.log(«digits: » + digits); var currentDigit = digits.

shift(); pm.environment.set(‘digit’, currentDigit); pm.environment.

set(‘digits’, digits);

(Мы проверяем есть ли в окружении переменная digits, если нет — создаем. Выводим в консоль массив digits до запроса. Дальше берем первый элемент от digits, удаляя значение из самого массива. И задаем значение в окружении для digit и digits. В digits уже на первый элемент меньше.)

Во вкладке Tests пишем следующее:

var digits = pm.environment.get(‘digits’); var digit = pm.environment.

get(‘digit’); console.log(«server got digit = » + pm.response.json().

digit); if (digits digits.length > 0) { postman.

setNextRequest(«loop request»); } else { postman.setNextRequest(null); console.

log(«stop»); pm.environment.unset(«digits»); pm.environment.

unset(«digit»); }

(Берем из окружения digit и digits. Выводим в консоль некоторую информацию. Если digits не пустой — указываем следующий запрос setNextRequest и передаем параметром текущий запрос. Иначе говорим что больше выполнять ничего не нужно, очищаем переменные в окружении и выводим в консоль строку «stop».)

Далее открываем Runner (в верхнем левом углу), выбираем нашу новую коллекцию и наш запрос loop request, выбираем окружение и нажимаем Run loop.

В раннере мы видим, что выполнилось 6 запросов.

Открываем консоль смотрим логи:

Выводы

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru