当前位置: 首页 > 科技观察

用Mockoon测试API交互_1

时间:2023-03-21 17:17:22 科技观察

使用Mockoon测试API交互这种自动化越来越需要使用基于Web的API来协调跨设备、云提供商或软件即服务(SaaS)工具的活动。无论您是编写shell脚本还是与Web服务交互的Ansible剧本,您都需要彻底测试您的代码。模拟API的能力是此测试过程的重要组成部分。模仿真实的API,以便您可以开发和测试API交互。虽然一些工具和供应商提供实时沙箱环境,但能够在本地模拟API对于高级测试场景非常有用,例如修改响应文本或HTTP状态代码。如果您处于开发自己的API的初始阶段,您还需要在编写代码之前快速构建端点。Mockoon是支持这一点的一个选项。Mockoon是一款出色的开源工具,具有丰富的用户界面,可用于快速构建模拟API并在本地计算机上运行它们。安装Mockoon您可以通过官方包在Windows、macOS和Linux上安装Mockoon,包括AppImage和RPM格式。安装Mockoon后,官方文档为新用户提供了出色的教程。Mockoon有一个图形界面和一个命令行界面(CLI)实用程序,本文重点介绍如何使用图形界面。创建环境在Mockoon中处理新项目的第一步是创建一个新环境。环境让您可以将API端点划分为逻辑组。每个环境还可以在其自己的端口上运行,使您能够在同一主机上模拟多个API。环境保存为JSON文件,可以轻松导入、导出和保存您的代码。只需单击下面显示的“新建环境”图标即可创建环境。它将提示您选择保存环境JSON文件的位置。创建环境后,您可以开始向其中添加路由。图1添加基本API路由大多数API交互涉及一个简单的请求和响应循环,通常返回JSON对象。在开始使用Mockoon之前,设置一个简单的API路由。点击界面上的+号,添加路由到环境中。我在/api/v1/healthcheck添加了一条返回200OK状态代码的路由,如下例所示。该示例还返回一个包含健康检查信息的JSON响应:图2添加路由并启动服务器(或重新启动,如果它已经在运行),端点就可以访问:图3生成随机响应数据API响应text中的静态值涵盖了很多基本的测试用例。Mockoon还可以在响应文本中生成随机数据,以进行更真实的测试。Faker.js库用于生成随机数据。随机生成的值可以在响应文本中模板化并返回给请求者。在下面的示例中,我添加了另一个端点:/api/v1/hosts/:id。:id表示这是一个URL参数。响应文本返回一个JSON对象,其中包含几个附加了随机生成的数据的字段。图4使用此配置,每次调用API端点都会显示一组不同的假数据:图5注意:Mockoon实现的Faker.js版本可能不是最新的,因此请确保您查看的是正确的版本编写模板Faker文档。添加身份验证和规则大多数API端点都需要身份验证,通常采用包含API令牌的HTTP标头形式。确保您的工具正确处理来自端点的身份验证失败对于开发强大的自动化非常重要。Mockoon允许您定义可用于返回不同响应的规则,例如标头要求。规则在路由的规则选项卡上定义。下面的示例使用两个规则扩展了/api/v1/hosts/:id端点。第一条规则(响应1)返回HTTP401Unauthorized。如果没有其他规则与请求匹配,则使用第一个规则。图6中的第二条规则(响应2)要求请求包含一个X-Auth-TokenHTTP标头,其值等于40650a76。任何符合此规则的请求都将收到200OK和来自上一个示例的JSON响应。图7这些规则会导致X-Auth-Token标头中不包含正确值的任何请求失败并显示HTTP401Unauthorized。具有正确令牌的请求将继续接收数据,如下所示:图8这是使用规则根据请求属性控制响应行为的基本示例。Mockoon的规则引擎足够强大,可以创建非常高级的场景。查阅官方文档就最好理解了。原标题:用Mockoon测试API交互,作者:AnthonyCritelli