之前一直使用Postman
来测试接口调试,这次准备更换为ApiFox
作为API开发工具。
这是一款API开发协作工具,postman
等工具是API开发过程当中的单点工具,并不适合单点协作。而ApiFox
以API文档为核心,将API开发的整体流程融为一体,大幅度提升工作效率,并且中文界面,上手更加容易。
新建接口
点击下面的两种方式都可以新建接口

新建接口页面:
- 接口名称:定义接口名称

- 接口请求方式 :在输入接口路径时,不需要输入完整路径,可以在右上角的环境配置中设置前置URL


-
请求参数 :请求参数的设置方式与
postman
中类似,在这里设置示例值时可以使用更便捷的方式插入动态值,当前注册用户信息,可以使用数据生成器的方式随机生成用户名、用户密码,email,phone。数据生成器中还可以对生成的数据添加处理函数,比如用户密码必须要有特殊字符,可以使用concat()
来追加一个特殊字符 -
返回响应:返回响应数据,这里的数据结构可以自定义添加字段,也可以根据实际返回数据进行生成。也可以在运行后,接收到的返回结果里有提取,将数据提取到响应定义和示例当中。


点击保存:这样一个简单的接口API就生成出来了

PS:当然还有一个更快的生成方法,那就是直接新建接口后,输入URL发送获取到返回数据,然后保存为接口
数据模型
数据模型用于定义 API 请求和响应对象中期望的数据类型和属性 (字段)。
参考链接:数据模型 - Apifox 帮助文档
通过数据模型,可以:
- 定义标准的数据结构。
- 将数据模型与自动生成的示例结合使用。
- 在 API 项目中多次复用数据结构。
新建数据模型
在左侧项目概览 中找到数据模型 ,可以新建数据模型,为了快速构建生成数据模型,可以直接从数据库表中进行导入,也可以用schema生成


生成出来了一个User数据模型,可以直接在接口API中使用此模型

生成代码
Apifox 提供三种代码生成类型:生成业务代码 、生成接口请求代码 和生成数据模型代码。
生成业务代码 :面向 API 开发者,生成用于实现 API 功能的服务器端代码。业务代码专注于 API 的服务端实现,与用于与 API 交互的接口请求代码不同。
生成接口请求代码 :为 API 使用者生成客户端代码,用于在不同编程语言中实现与服务端 API 的交互。
生成数据模型代码:用于定义数据结构,适用于 API 数据的序列化(发送数据时)与反序列化(接收数据时)处理。
前后端开发可以使用生成代码功能,来生成简单的请求代码和业务代码

Mock功能
Apifox 提供了一个高效的 Mock 引擎,能够根据接口文档自动生成合理的响应数据,无需额外配置。
Mock 数据可应用于以下场景:
- 前后端并行开发时,API 文档已完成但接口尚未开发,前端可以使用 Mock 数据进行开发。
- 当 API 涉及不便直接调用的生产数据时,前端可以借助 Mock 数据进行开发。
- 测试过程中,外部数据需要测试数据集时,可以使用 Mock 数据作为数据源。
在接口API下方有mock功能URL,可以点击复制此URL,粘贴到浏览器当中,就可以生成符合格式的数据,如果对Mock数据响应格式有需求,可以在修改接口 -- 返回响应中,对mock格式进行定义


自动化测试
测试在 API 生命周期中发挥着关键作用。它能够验证 API 和各类请求方法的正常运行,以及各个模块的集成是否顺畅。更重要的是,测试可以确保 API 在实际使用中能够有效应对预期的操作需求,避免潜在的性能瓶颈或故障。
Apifox 自动化测试中的测试场景 由一组接口或接口用例组成,涵盖每个接口的认证类型、参数、请求头、请求体、测试用例和配置项。你可以将不同请求方法 (如 GET
、POST
、DELETE
和 PUT
) 的请求组合在一起,并通过设计 if
、for
、foreach
等流程控制条件来编排测试步骤。
创建一个测试场景的步骤:
- 在左侧列表当中找到自动化测试,新建一个测试场景"聊天室用户注册登录"

- 首先添加步骤,可以从接口导入,这里选择了和用户有关的三个接口,分别是判断新用户吗是否存在、注册用户信息、用户登录接口


- 点击步骤,可以进入里面查看具体情况,并进行调整修改,退出后可以整体运行,然后得到这此测试报告。实际上,在测试场景中多个步骤之间传递数据是很常见的,针对这类情况,可以使用两种方法:读取前置步骤的运行结果 和 使用变量传递数据 ,参考文档:测试步骤间传递数据 - Apifox 帮助文档


这里出错可能由于获取前面的名称有误,后面将姓名进行解码获取后测试成功

- 在实际使用中,还可以通过控制条件对流程进行控制,如果新用户名检测不存在,则用该用户名进行注册用户信息,如果返回成功,进行用户登录接口测试

经过上面的处理,就可以自定义一些自动化测试脚本,并且可以在 Apifox 测试场景中加入性能测试,评估 API 在不同负载条件下的可扩展性和响应能力。

这里我请求失败率高的原因在于我后端node中设置了基础限流配置,设置了每个IP每分钟请求访问限制次数

在性能测试中,会发出大量的接口请求,因此仅会将错误请求分类统计展示,不会记录详细的错误信息以及每个接口请求详情。如果你发现有预期之外的错误,请先运行「功能测试」,将问题全部解决后再运行「性能测试」。
到这里,ApiFox的基础学习就已经完成了,重要的功能模块流程都走过一遍了!