Postman Flow: плюсы и минусы

Перевод статьи «Postman Flow: The Good Parts and Bad Parts».

Postman – самый популярный инструмент для тестирования API. Я часто использую его для выполнения случайных тестов API в процессе разработки.

Недавно я познакомился с новой фичей Postman под названием “Flow” (поток). Она была выпущена в марте 2023 года.

Как и все новые функции или инструменты, Postman Flow имеет свои плюсы и минусы.

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

Полезность. Скачивайте книгу API Testing and Development with Postman.PDF

Что такое Postman Flow?

Официальный сайт Postman дает следующее определение.

Postman Flows – это визуальный инструмент для создания приложений, управляемых API, для API-First. Вы можете использовать потоки для последовательного выполнения цепочки запросов, обработки данных и создания реальных воркфлоу в вашем рабочем пространстве Postman.

При создании нового потока появляется пустое рабочее поле с кнопкой запуска. Мы можем щелкнуть правой кнопкой мыши, чтобы добавить элемент из множества «блоков».

Добавление нового элемента при создании потока

Блоки делятся на несколько категорий: действие (“Send Request”), решение/логика  ( “If”, “Evaluate”) и информация  (“Output”).

Блоки решений/логики позволяют управлять потоком, например, использовать условие if или циклы. Для парсинга и преобразования данных предусмотрен язык запросов Flows Query Language (FQL). FQL поддерживает некоторые базовые функции, такие как $count или $each. Их можно использовать с блоком Evaluate для работы с JSON-данными.

Использование FQL для управления потоком

Как и другие сущности в Postman, поток находится внутри рабочего пространства Postman. Вы можете поделиться потоком или форкнуть его в рабочем пространстве группы.

В целом, это мощный и удобный инструмент. Давайте теперь рассмотрим его преимущества.

Преимущества Postman Flow

Визуализация

Это красивый визуальный инструмент, а анимация во время выполнения выглядит потрясающе. Она улучшает процесс работы и упрощает понимание потока.

Визуализация Postman Flow

Если включить темную тему, то выглядит еще лучше.

Low-code /No-code

До появления Postman Flow, для того чтобы связать несколько запросов, нам нужно было использовать Collection Runner. Он выполнял запросы в коллекции по порядку или требовал написания скрипта с методом setNextRequest для создания воркфлоу вручную.

С Postman Flow достаточно просто перетаскивать блоки — код не требуется. Это отлично подходит для пользователей, не знакомых с программированием.

Выбор из данных ответа

Блок Select используется для выбора значения из выходных данных предыдущего блока (например, тела ответа предыдущего запроса).

Он хорошо работает с данными ответа в формате JSON, а также с HTML (хотя это и не документировано). После однократного запуска потока данные ответа будут сохранены в качестве примера, и вы сможете выбрать его из выпадающего списка.

пример использования блока Select

Повторное использование существующих запросов

Если у вас уже есть существующие коллекции/запросы в Postman, их можно легко перетащить в рабочее поле потока и объединить в воркфлоу. Это огромное преимущество для моего проекта, поскольку за годы работы у нас накопилось много запросов Postman, большинство из которых являются автономными.

Используя Postman Flow, мы можем соединять их (с небольшими модификациями). Это обеспечивает большее покрытие тестами и повышает наглядность для бизнес-пользователей.

По сравнению со старым подходом к коллекциям, поток может использовать существующие запросы в коллекции. Другими словами, вам не нужно дублировать запросы для того, чтобы добавить их в поток. Это делает построение потока более чистым и пригодным для повторного использования.

Недостатки Postman Flow

Postman предлагает бесплатный тарифный план, который позволяет выполнять базовые тесты API и использовать другие функции, включая Flow. Однако стоит помнить, что Postman – это не инструмент с открытым исходным кодом. Бесплатные функции могут быть изменены или ограничены для использования в любой момент.

Недавно было введено новое ограничение на количество запусков для бесплатных и платных “профессиональных” аккаунтов, которое многие разработчики сочли необоснованным. Имейте это в виду, когда вкладываете усилия в создание тестов API с помощью Postman Flow.

Отсутствие экспорта и ограничение в бесплатном тарифном плане

Postman позволяет экспортировать запросы, коллекции и окружения в файлы JSON. Эти экспортированные файлы очень удобны, так как ими можно делиться между членами команды и/или хранить в системе контроля версий.

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

Отсутствие функции экспорта также означает, что поток может храниться только в рабочем пространстве Postman.

Что ещё хуже, в бесплатном тарифном плане есть ограничение: не более 3 участников в рабочем пространстве команды. В результате, хотя функция потока доступна в бесплатном плане, эти ограничения делают ее практически неприменимой в командной работе.

С точки зрения бизнеса понятно, что бесплатный план ограничен. Однако мне трудно оправдать отсутствие функции экспорта даже для пользователей платных аккаунтов.

Переменные окружения

Хотя мы можем повторно использовать существующие запросы в потоке, существует скрытое ограничение: нельзя изменять переменные окружения или переменные в коллекции внутри потока.

Очень часто в запросах Postman используются такие скрипты:

pm.environment.set("variable_key", "variable_value");
pm.collectionVariables.set("variable_key", "variable_value");

Но если вы используете один из этих запросов для построения своего потока, скрипт выше выдаст ошибку. Это дизайнерское решение от команды Postman.

Ниже приведены некоторые выдержки из ответа команды Postman.

“Окружение работает в режиме только для чтения, обновления окружения через скрипты не учитываются”.

“Мы рекомендуем использовать соединение для передачи данных из одного блока в другой, а не Globals/Environments и т. д.”.

Это не самое лучшее решение. Оно ломает многие существующие скрипты запросов у разработчиков во всем мире.

Блок if

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

пример использования блока If в Postman Flow

Как и в любом языке программирования,  if – это самый необходимый строительный блок. Проблема блока if в Postman Flow заключается в том, что он поддерживает только одно условие.

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

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

Вывод

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

Однако, отсутствие функции экспорта и возможность использования только одного условия в блоке if являются неприемлемыми для многих задач. Более того, имеются определенные сомнения относительно философии продукта Postman, особенно в отношении давления на пользователей с целью перейти на платную версию вместо предоставления дополнительных услуг, которые естественно мотивировали бы пользователей на этот шаг.

🔥 Какой была ваша первая зарплата в QA и как вы искали первую работу? 

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Читать в телеграм

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *