强大的接口测试可视化工具:Postman Flows

文摘   2024-07-31 11:56   四川  

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. 将选择块连接到开始块,然后选择列表1。

  2. 将另一个选择块连接到开始块,然后选择列表2。

  3. 将两个选择块连接到单个输出块。

  4. 在输出块的下拉列表中,选择折线图并运行流程。出现折线图,数据在各自的轴上。

4.1.2. Text

当输出块接收到字符串时,它会自动选择文本可视化类型并显示文本。

要创建示例文本输出块,请执行以下操作:

  1. 创建一个新流,并将带有GET请求的Send请求块添加到postman-echo.com/get。

  2. 将选择块连接到发送请求块,并输入body.headers.host。这将从响应中选择一个字符串。

  3. 将输出块连接到选择块并运行流程。输出块显示响应中的body.headers.host字符串,在本例中是postman-echo.com的。

4.1.3. Gauge

仪表可视化类型使用半饼图显示值在范围内的位置。

要创建示例Gauge输出块,请执行以下操作:

  1. 创建一个新Flow,并添加一个发送请求块,其中包含一个GET请求t o techcrunch.com/wp-json/wp/v2/posts。

  2. 将评估块连接到发送请求块,然后输入此FQL查询: $ count(value1.body) 以计算响应主体有多少项。

  3. 将输出块连接到评估块,然后从下拉列表中选择Gauge。

  4. 运行Flow。Gauge将响应主体中的项目数显示为图形的阴影部分。

要设置Gauge的最小值和最大值,请选择输出块的设置图标。

4.1.4. Boolean

当输出块收到true或false消息时,它会自动选择布尔可视化类型,显示True或False。

要创建示例布尔输出块,请执行以下操作:

  1. 创建一个新流,并将带有GET请求的Send请求块添加到postman-echo.com/get。

  2. 将评估块连接到发送请求块,然后输入此FQL查询: value1.http.status = 200,以检查响应是否具有200状态代码。

  3. 将输出块连接到评估块并运行流程。如果响应具有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收到了多少请求。

  1. 选择预览在本地测试webhook。你可以添加请求主体来模拟传入的webhook数据。

  2. 选择 “发布” 以在对流程进行更改后将你的流程重新上传到Postman的云。

  3. 选择 “更多操作” 图标,以配置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流构建流,有时事情都无法按预期工作。调试是寻找流程正在做的事情与预期的事情之间差异的根源的过程。流有几个内置工具来帮助调试。

发送请求块中的成功和失败端口

当发送请求块运行时,可以在成功或失败输出 (取决于结果) 中运行请求后查看该块的输出。这对于检查请求是否成功并返回预期的信息很有用。

往期系列文章
阿里微服务质量保障系列:微服务知多少
阿里微服务质量保障系列:研发流程知多少
阿里微服务质量保障系列:研发环境知多少
阿里微服务质量保障系列:阿里变更三板斧
阿里微服务质量保障系列:故障演练
阿里微服务质量保障系列:研发模式&发布策略
阿里微服务质量保障系列:性能监控
阿里微服务质量保障系列:性能监控最佳实践
阿里微服务质量保障系列:基于全链路的测试分析实践
- END -

下方扫码关注 软件质量保障,与质量君一起学习成长、共同进步,做一个职场最贵Tester!

往期推荐

聊聊工作中的自我管理和向上管理

经验分享|测试工程师转型测试开发历程

聊聊UI自动化的PageObject设计模式

细读《阿里测试之道》

我在阿里做测开

软件质量保障
所寫即所思|一个阿里质量人对测试技术的思考。
 最新文章