强大的接口测试可视化工具:Postman Flows
Postman Flows是一种接口测试可视化工具,可以使用流的形式在Postman工作台将请求接口、数据处理和创建实际流程整合到一起。如下图所示

Postman Flows是以API为中心的可视化应用程序开发界面。它提供了一个无限的画布用于编排和串连API,数据可视化来显示你的流的最终输出。
1. 能做什么
-
Business Flows
-
Integration Flows
-
Natural Language Processing (NLP) Flows
-
Slack Flows
-
DevOps Flows
-
Utility Flows
-
Miscellaneous Flows
2. 工作台导航
Postman流有一个直观的界面来创建你的应用程序,下面是Postman Flows界面的介绍。

-
start block:在每个流程中都可以找到的第一个块,也是唯一不能被删除的块。应用程序表单和Webhook通过这个块发送它们的信息。
-
Send Request block:在流程中可以使用的许多其他块类型之一。块的列表在这里。
-
Group:通过使组可以复制,从而实现流程的组织、文档化和构建。有关组织流程的更多信息可以在这里找到。
-
miniMap:使较大的流程更容易导航。
-
Add annotation:添加文本注释。
-
Run:运行流程。
-
Toolbar:包含重做/撤销、缩放和适应视图按钮。
-
Text annotation:为其他用户记录流程或解释正在执行的复杂任务的一种方式。
-
Console:这是你可以找到所有API活动的地方。这对于调试流程并确保你的流程正在运行预期的信息非常有用。有关排查流程故障的指南可以在这里找到。
-
Webhook:创建一个流程,它可以按计划自动运行,或者在指定事件发生时运行。有关Webhook和自动运行的更多信息可以在这里找到。
3. Flows Catalog
postman内置100多个预先构建的Flows集合,旨在解决常见的用例。在动手操作前先探索下这些集合是了解postman Flows可以做什么的好方法。

借助Flows Catalog,可以浏览和预览相应使用场景的Flow以获取用例,例如自动化联系人管理,使用AI创建自动响应或在数据库之间迁移数据。当你找到适合需求的Flow时,你可以在工作区中打开它,并在很少或没有设置的情况下开始使用它。
4. 构建Flows
构建流简单说基本上是在画布上添加Block和连接Block。流可以像发送请求并显示响应的几个块一样简单。流也可能要复杂得多,有许多相互连接的块来处理和可视化大量数据。
如果你是Flows的新手,请先浏览块列表或流教程。然后了解如何创建块并连接它们,以及如何在你的流中创建请求。随着对Postman Flows的熟悉程度,请尝试挖掘更高级的概念,例如查找和过滤数据以及使用循环和变量,还可以在下面的列表中发现更多的流概念。
-
Visualize data
-
Organize a Flow
-
Automate a Postman Flow run
-
Work with date and time
-
Troubleshooting Flows
4.1. Visualize data
输出块接受来自其他块的信息,并创建该信息的可视化。你可以从几种可视化类型中进行选择。
此图显示了四种类型的输出可视化类型: 折线图、文本、Gauge和布尔值。下面的教程演示如何创建这些可视化类型中的每一种。
4.1.1. Line chart
折线图可视化类型接受两个列表,并在图表中的x和y轴上绘制它们。接收到的第一个列表是x轴,第二个列表是y轴。
要创建示例折线图输出块,请执行以下操作:
创建一个新流程,在开始块中输入以下数据,然后从下拉列表中选择JSON:
-
{ -
"List 1": [10, 20, 30, 40, 50, 60, 70], -
"List 2": [100, 200, 300, 400] -
}
-
将选择块连接到开始块,然后选择列表1。
-
将另一个选择块连接到开始块,然后选择列表2。
-
将两个选择块连接到单个输出块。
-
在输出块的下拉列表中,选择折线图并运行流程。出现折线图,数据在各自的轴上。

4.1.2. Text
当输出块接收到字符串时,它会自动选择文本可视化类型并显示文本。
要创建示例文本输出块,请执行以下操作:
-
创建一个新流,并将带有GET请求的Send请求块添加到postman-echo.com/get。
-
将选择块连接到发送请求块,并输入body.headers.host。这将从响应中选择一个字符串。
-
将输出块连接到选择块并运行流程。输出块显示响应中的body.headers.host字符串,在本例中是postman-echo.com的。

4.1.3. Gauge
仪表可视化类型使用半饼图显示值在范围内的位置。
要创建示例Gauge输出块,请执行以下操作:
-
创建一个新Flow,并添加一个发送请求块,其中包含一个GET请求t o techcrunch.com/wp-json/wp/v2/posts。
-
将评估块连接到发送请求块,然后输入此FQL查询: $ count(value1.body) 以计算响应主体有多少项。
-
将输出块连接到评估块,然后从下拉列表中选择Gauge。
-
运行Flow。Gauge将响应主体中的项目数显示为图形的阴影部分。
要设置Gauge的最小值和最大值,请选择输出块的设置图标。

4.1.4. Boolean
当输出块收到true或false消息时,它会自动选择布尔可视化类型,显示True或False。
要创建示例布尔输出块,请执行以下操作:
-
创建一个新流,并将带有GET请求的Send请求块添加到postman-echo.com/get。
-
将评估块连接到发送请求块,然后输入此FQL查询: value1.http.status = 200,以检查响应是否具有200状态代码。
-
将输出块连接到评估块并运行流程。如果响应具有200状态代码,则输出块将显示一个圆圈,显示为True。如果没有,圆圈显示False。

你可以从输出块的下拉菜单中选择下面列出的输出格式。选择示例链接以在Postman中打开显示每种输出格式的流。
-
文本-以文本行的形式显示连接到输入的信息。文本示例
-
数字-如果连接到输入的信息是数字,则显示整数。数字示例
-
布尔值-显示true或false值。如果连接到输入的值不是true/false或0/1,则始终显示true。布尔示例
-
JSON-以JSON格式显示连接到输入的信息,使你能够查看和选择数据。JSON示例
-
条形图-显示连接到输入的一组或多组信息。条形图示例
-
折线图-显示连接到输入的X和Y坐标的线。折线图示例
-
Gauge-当输入为百分比时显示一个数字。仪表示例
-
表-将连接的输入显示为具有行和列的表。表格示例
-
Markdown-显示显示所有Markdown注释的文本。降价示例
-
URL-显示连接到输入的URL的超链接。URL示例
-
Image-显示来自连接到输入的URL的图像。图像示例
-
视频-显示来自连接到输入并使其能够播放的URL的视频。视频示例
-
YouTube-显示来自连接到输入并使其能够播放的URL的YouTube视频。YouTube示例
4.2. Organize a Flow
对于用户而言,具有许多块的流可能是具有挑战性的。通过使用颜色、注释和分组,你可以帮助同事和用户理解更复杂的流程。
4.2.1. 颜色
可以将每个块配置为以颜色突出显示。这使得单个块与它们周围的其他块更容易区分。你可以通过选择一个块,然后选择出现在块上的左上角的绘制图标来添加颜色。

4.2.2. 注释
当与其他人合作或在公共工作区中放置流程时,直接在画布上添加方向是有帮助的。这有助于解释如何使用流以及某些块在做什么。选择工具栏中的 “添加文本” 按钮以添加注释。在注释中选择文本将打开 “文本格式” 菜单,该菜单具有粗体,斜体和标题选项。如果复制链接,然后突出显示一些文本并粘贴链接,突出显示的文本将成为超链接。

4.2.3. 分组
你可以将块和注释组合在一起。然后可以命名该组,指定颜色,调整大小,并从中添加或删除块。当执行诸如发送电子邮件之类的任务可能涉及多个块时,这可能很有用。
要访问分组菜单,请按住Shift键并在一组块周围拖动光标。你也可以在选择要添加的块的同时选择和保持一个或者一个Ctrl。选择文件图标将创建一个组。

4.3. 自动化运行Flows
你可以将流发布到云,以便可以使用webhook触发该流。这使你的流能够在云中自动运行。
Postman Flows和webhook
Webhooks是一个系统告诉另一个系统某些信息已更改的一种方法。它的工作原理类似于在手机上推送通知。电子邮件应用程序不会不断检查你的电子邮件应用程序以查看是否有任何新邮件,而是会向你发送通知,告知你已收到新电子邮件。如今,许多具有api的服务也提供了webhooks,作为其系统与你的系统之间进行通信的一种方式。
当一个流发布到云中时,该流将在每次从另一个服务接收到webhook事件时运行。这很有用,因为流可以自动运行,并且不需要你的计算机打开,因为这些流在Postman的云中运行。
发布你的Flows
在侧边栏的 “应用程序” 下,选择Webhook生成webhook并将本地流上传到Postman的云。

你可以在请求中使用生成的webhook来触发你发布的流。侧边栏中的Webhook部分计算你的流的webhook收到了多少请求。

-
选择预览在本地测试webhook。你可以添加请求主体来模拟传入的webhook数据。
-
选择 “发布” 以在对流程进行更改后将你的流程重新上传到Postman的云。
-
选择 “更多操作” 图标,以配置webhook,查看流的已发布版本或取消发布流。你可以配置你的webhook接收到的传入数据 (仅正文或完整请求),以及服务器是否会以默认响应或以空主体进行响应。
要查看已发布流的实时日志,请选择 “更多操作” 图标 “> 查看已发布版本”> “查看实时日志”。

4.3.1. 触发webhook
通常在使用webhooks时,第三方服务会将数据发送到已发布的Flow的webhook。你可以将侧边栏中的webhook下的Webhook URL提供给其他服务,以便他们可以向其发送数据。设置完成后,你可以查看实时日志,并查看来自其他服务的请求用作测试数据的外观。流也可以通过向Webhook URL发出请求来手动运行。
4.4. 使用数据和时间
许多api期望日期和时间的格式不同。流具有许多内置的FQL函数来处理所需的任何格式。
日期和时间是如何存储在流程中的
所有三个流程日期和时间块 (现在,日期,日期和时间) 都将日期和时间存储为数字。该数字是一种常见的格式,是自1970年1月1日00:00:00 UTC以来的毫秒数 (称为Unix时间)。这简化了日期比较,并且可以根据需要将数字转换为其他格式。

对不同的格式使用FQL
ISO 8601格式常用于许多api。FQL具有now功能,该功能以ISO格式2023-08-11T02:03:46.145 00:00打印出当前时间戳。如果API需要时间戳的缩短版本,则fromMillis函数接受一种称为图片的格式,可以在此处找到。例如,可以使用下面的FQL来获得没有时间的ISO格式的日期:

4.5. 数据查找和过滤
通常,需要检查流中的信息是否具有一定的值。根据从API返回的信息的结构,有几种不同的方法可以使用FQL解决此问题。
4.5.1. 包含
contains是检查某些引用信息是否具有单词或模式 (正则表达式) 的最直接方法。由于包含返回true或false,因此通常与If块一起使用。下面的示例说明了当输入具有期望值时,信息如何仅通过If块传递。

4.5.2. 过滤器
使用筛选器从较大的元素列表中获取元素子集。要使用filter,该函数看起来像 $ filter (列表名称,fn($ v,$ i,$ a) { filter condition }),其中 $ v是列表中的值,$ i是索引 (第零项,第一项,第二项,第三项),$ a是整个列表。$ v通常是过滤的重要值,并且是实际需要使用的唯一值。在下面的示例中,有一个公司列表,但是对于其余的流程,只需要启用的公司。

4.5.3. 计数
count返回列表中的项目数。这是常用的,因为当流程正在寻找一个特定的项目时,api通常会返回项目列表。发生这种情况时,流程需要检查API是否仅返回一条记录,或者是否存在列表,并且需要进一步过滤。此函数有用的另一种情况是从列表中生成随机结果。在下面的示例中,配方API返回配方列表,流程从列表中随机选择一个。

4.5.4. distinct
distinct仅返回列表中的唯一项目。有时,结果列表中有重复的条目 (也许有人用两封不同的电子邮件注册了),流程需要将它们过滤掉。

4.6. 故障排查
无论你是使用代码开发应用程序还是使用Postman流构建流,有时事情都无法按预期工作。调试是寻找流程正在做的事情与预期的事情之间差异的根源的过程。流有几个内置工具来帮助调试。
发送请求块中的成功和失败端口
当发送请求块运行时,可以在成功或失败输出 (取决于结果) 中运行请求后查看该块的输出。这对于检查请求是否成功并返回预期的信息很有用。

相关文章:
强大的接口测试可视化工具:Postman Flows
Postman Flows是一种接口测试可视化工具,可以使用流的形式在Postman工作台将请求接口、数据处理和创建实际流程整合到一起。如下图所示 Postman Flows是以API为中心的可视化应用程序开发界面。它提供了一个无限的画布用于编排和串连API,数据可视化来显示…...
系统设计及解决方案
发送验证码 1:根据手机号从Redis中获取value(验证码_时间戳) 2:如果value不为空,并且时间戳与当前时间戳的间隔小于60秒,则返回一个错误信息 3:生成随机验证码 4:调用阿里云短信服务API给用户发送短信验证码…...
从0入门自主空中机器人-2-2【无人机硬件选型-PX4篇】
1. 常用资料以及官方网站 无人机飞控PX4用户使用手册(无人机基本设置、地面站使用教程、软硬件搭建等):https://docs.px4.io/main/en/ PX4固件开源地址:https://github.com/PX4/PX4-Autopilot 飞控硬件、数传模块、GPS、分电板等…...
Linux之ARM(MX6U)裸机篇----2.汇编LED驱动实验
一,alpha的LED灯硬件原理分析 STM32 IO初始化流程 ①,使能GPIO时钟 ②,设置IO复用,复用为GPIO ③,配置GPIO的电气属性推挽,上拉下拉 ④,使用GPIO,输出高/低电平 MX6ULL IO初始化…...
e3 1220lv3 cpu-z分数
e3 1220lv3 双核四线程,1.1G频率,最低可在800MHZ运行,TDP 13W。 使用PE启动后测试cpu-z分数。 现在e3 1220lv3的价格落到69元。...
HTML5适配手机
要使 HTML5 网站适配手机设备,您可以遵循以下几个步骤和最佳实践: 1. 使用视口(Viewport) 在 HTML 文档的 <head> 部分添加视口元标签,以确保页面在移动设备上正确缩放和显示: <meta name"…...
C# 中使用 MassTransit
在生产环境中使用 MassTransit 时,通常需要进行详细的配置,包括设置连接字符串、配置队列、配置消费者、处理重试和错误队列等。以下是一个完整的示例,展示了如何在 ASP.NET Core 应用程序中配置 MassTransit,包括请求/响应模式和…...
网络编程 实现联网 b+Tree
网络编程是客户端和服务器之间通信的基础,也是现代应用开发中不可或缺的技能。在 Unity 中实现网络功能,需要结合计算机网络原理、数据结构与算法,以及网络协议的实际应用。以下是对这一块内容的详细介绍,包括每个涉及到的知识点&…...
zentao ubuntu上安装
#下载ZenTaoPMS-21.2-zbox_amd64.tar.gz(https://www.zentao.net/downloads.html) https://dl.zentao.net/zentao/21.2/ZenTaoPMS-21.2-zbox_amd64.tar.gzcd /opt tar -zxvf ZenTaoPMS-21.2-zbox_amd64.tar.gz#启动 /opt/zbox/zbox start /opt/zbox/zbox…...
Java 网络原理 ①-IO多路复用 || 自定义协议 || XML || JSON
这里是Themberfue 在学习完简单的网络编程后,我们将更加深入网络的学习——HTTP协议、TCP协议、UDP协议、IP协议........... IO多路复用 ✨在上一节基于 TCP 协议 编写应用层代码时,我们通过一个线程处理连接的申请,随后通过多线程或者线程…...
Bash Shell知识合集
1. chmod命令 创建一个bash shell脚本 hello.sh ~script $ touch hello.sh脚本创建完成后并不能直接执行,我们要用chmod命令授予它可执行的权限: ~script $ chmod 755 hello.sh授权后的脚本可以直接执行: ~script $ ./hello.sh2.指定运行…...
从0入门自主空中机器人-1【课程介绍】
关于本课程: 本次课程是一套面向对自主空中机器人感兴趣的学生、爱好者、相关从业人员的免费课程,包含了从硬件组装、机载电脑环境设置、代码部署、实机实验等全套详细流程,带你从0开始,组装属于自己的自主无人机,并让…...
Doris使用注意点
自己学习过程中整理,非官方 dws等最后用于查询的表可以考虑使用row存储加快查询,即用空间换时间duplicate key的选择要考虑最常查询使用适当使用bloomfilter 加速查询适当使用aggregate 模式降低max,avg,min之类的计算并加快查询…...
Mybatis插件better-mybatis-generator的下载与使用
1.下载 找到设置 插件 搜索better-mybatis-generator 下载并且重启IDEA 2.连接数据库 点击测试连接 连接成功如下图 3.使用插件 选择对应的表 右击选择 注意:mysql8.0驱动一定要勾上mysql_8 其他地方不要动 然后实体类 mapper xml就都生成好了 mapper里有默认增删…...
uniapp小程序实现弹幕不重叠
uniapp小程序实现弹幕不重叠 1、在父组件中引入弹幕组件 <template><!-- 弹幕 --><barrage ref"barrage" class"barrage-content" reloadDanmu"reloadDanmu"></barrage> </template> <script>import barr…...
快速排序学习优化
首先,上图。 ‘’’ cpp int partSort(int *a ,int left,int right) {int keyi left; //做左侧基准while(left<right){while(left<right && a[right]>a[keyi]){right--;}while(left<right && a[left]<a[keyi]){left;}swap(a[left…...
微信流量主挑战:三天25用户!功能未完善?(新纪元4)
🎉【小程序上线第三天!突破25用户大关!】🎉 嘿,大家好!今天是我们小程序上线的第三天,我们的用户量已经突破了25个!昨天还是16个,今天一觉醒来竟然有25个!这涨…...
jetson 无显示器配置WIFI
我使用的 jetpack 版本是 6.1,发现自带 NetworkManager 软件包,此软件包包含一个守护程序、一个命令行界面(nmcli)和一个基于 curses 的界面(nmtui)。 可以使用 nmcli 命令配置wifi,nmcli 示例…...
SpringCloudAlibaba实战入门之路由网关Gateway断言(十二)
上一节课中我们初步讲解了网关的基本概念、基本功能,并且带大家实战体验了一下网关的初步效果,这节课我们继续学习关于网关的一些更高级有用功能,比如本篇文章的断言。 一、网关主要组成部分 上图中是核心的流程图,最主要的就是Route、Predicates 和 Filters 作用于特定路…...
【ES6复习笔记】ES6的模块化(18)
模块化的概念 模块化是指将一个复杂的系统分解为多个模块,每个模块完成一个特定的功能,模块之间通过接口进行通信。模块化的目的是提高代码的可读性、可维护性和可重用性。 模块化规范产品, ES6 之前的模块化规范有: CommonJS …...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
