Postman Flows如何做接口间参数传递

文摘   2024-08-02 11:58   四川  

在接口自动化中,多接口组成的场景非常常见,接口间的输入输出有依赖关系,这就涉及到接口间的参数传递。

测试同学通常会将多个API集成在一起,以利用各自的功能组成一个特定的业务测试场景。例如,从像Stripe这样的支付服务提供商获取用户资料,然后将这些资料作为联系人添加到像Brevo这样的营销平台上。本文教大家如何实现这一操作。

维基百科:

  1. Brevo(原名 Sendinblue)是一种关系营销 SaaS 解决方案。该公司由 Armand Thiberge 于 2012 年创立,提供基于云的营销通信软件套件,包括电子邮件营销、交易电子邮件、营销自动化、客户关系管理、登录页面、Facebook 广告、重定向广告、短信营销等。

  2. Stripe是一家协助个人或公司在互联网上接受付款服务的支付服务提供商。Stripe提供在网上接受付款所需的技术、避免信用卡诈骗技术及银行基础设施。

创建一个流程,从Stripe获取客户资料列表,并将其添加到Brevo数据库。

前置准备

  • 一个Stripe账户和API密钥。

  • 至少有15位Stripe客户信息。

  • 一个 Brevo 账户和 API 密钥。

创建流程

第一步是克隆Flow将使用的请求、collection和环境,然后将API密钥添加到环境中。当然,我们也可以创建这些请求、collection和环境。从Integration Flows的公共工作空间克隆Brevo API collection、Stripe API collection和Stripe-Brevo环境到你的工作空间。

这些collection包含将执行以下操作的请求:

  • 从Stripe API中一次性获取所有客户资料。

  • 将响应分为多页。

  • 将这些资料上传至Brevo API作为联系人资料。

请求和环境也包含用于请求的变量。

创建一个新的流程,并添加一个“发送请求”块。然后,通过选择“Select a request > Stripe API > Customers > List all customers. 选择 Add environment > Stripe + Brevo”。“发送请求”块显示了三个变量,这些变量是由GET请求提供的。baseUrlstripe_secret_key 变量会自动从请求的collection和环境中获取值。可以将鼠标悬停在其上查看其值和作用域。对于 limit 变量,输入 5 来指定每页结果中包含的联系人数量。本文使用15个联系人,因此限制为5将发送三页结果。

将“Send Request”块的“Success”输出连接到一个“Select”块,以检查响应的 has_more 字段,该字段为truefalse 。如果该字段的值为 true ,则还有另一页结果需要发送。如果为 false ,则流程已到达客户联系人列表的末尾。

将“Send Request”块的“Success”输出连接到另一个“Select”块,以获取响应的 data对象。

has_more选择块连接到If块的关键输入上,并将 value1重命名为 has_more。选择“编写FQL条件”,并输入 has_more。将 body.data选择块连接到If块的数据输入上。

将“evaluate”块连接到“如果”块的“TRUE”输出端。将 value1 重命名为 contacts 。选择“开始编写FQL查询”,并输入 contacts[$count(`contacts`)-1].id 。这将获取原始响应中至少还有另一个联系人时的最后一个对象的ID。

将“send request”块连接到“evaluate”块的“result”输出上,然后选择“request > Stripe API > Customers > List all customers pagination”。该块会自动选择Stripe Brevo环境。将 5 输入到 limit 变量中。

将评估块的“结果”输出连接到“发送请求”块中的 starting_after变量。然后将“发送请求”块的“成功”输出连接到两个 body.has_nextbody.data选择块的输入。

将If块的TRUE和FALSE输出连接到For块上。然后将For块的输出连接到Send Request块上。
在“Send Request”块中,选择“Select a request > Brevo > Contact management > Contacts > POST Create a contact”。选择“Add environment > Stripe + Brevo”。
将For块的Item输出连接到 emailfirst_name变量的输入上。将 name分配给 first_name变量,将 email分配给 email变量。
运行流程并确认记录已添加到Brevo中。

大功告成,看看效果。
往期系列文章
阿里微服务质量保障系列:异步通信模式以及测试分析
阿里微服务质量保障系列:微服务知多少
阿里微服务质量保障系列:研发流程知多少
阿里微服务质量保障系列:研发环境知多少
阿里微服务质量保障系列:阿里变更三板斧
阿里微服务质量保障系列:故障演练
阿里微服务质量保障系列:研发模式&发布策略
阿里微服务质量保障系列:性能监控
阿里微服务质量保障系列:性能监控最佳实践
阿里微服务质量保障系列:基于全链路的测试分析实践

阿里微服务质量保障系列 服务虚拟化技术

- END -

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

往期推荐

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

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

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

细读《阿里测试之道》

我在阿里做测开


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