一. Apifox简介
Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台。
功能定位 Postman + Swagger + Mock + JMeter。
Apifox主要用于接口管理、开发、测试全流程集成工具,使用受众为整个研发技术团队,主要使用者为前端开发、后端开发和测试人员。而且公网SaaS版本完全免费。
二. 背景需求
1、概述
目前市面上很多团队都有前端后端测试三个岗位,当一个团队在开始开发一个项目前,前端与后端需要提前约定好接口,一般会安排一名开发工程师去编写一个API文档,通常会使用Swagger,此时后端会根据API文档去编写接口,而调试的时候则需要通过先前的文档再到Postman里面重新定义。
与此同时,在后端把接口做出来之前,前端如果想要提前开始开发的话,他又需要提前去Mock数据,他又要重新在Mock.js里写一遍接口定义。
测试则需要按照文档去Jmeter中去编写测试用例。而且在开发过程中也常会出现接口变更,此时还要同时改变Swagger、Postman、Mock、Jmeter里的定义,或者前后端联调的时候也常常会出现前后端数据类型不同的情况,而测试在最终对接口测试的时候也可能会出现实际返回值与文档不一致。整个开发团队的协同因此非常低效。
既然整个开发团队都是围绕API进行开发,但是现在的开发工作被分散在不同的开发工具上,Apifox的开发人员为解决上述痛点,因此便推出了Apifox
Apifox支持团队开发,开发团队可以同时工作,当API定义人员在Apifox上定义接口后,会实时同步给所有的团队成员。
同时Apifox还提供了更丰富的基于API的开发包
2、解决的问题
一套系统、一份数据,解决多个系统之间的数据同步问题。
只要定义好接口文档,接口调试、数据 Mock、接口测试即可直接使用,无需再次定义。
接口文档和接口开发调试使用同一个工具,接口调试完成后即可保证和接口文档定义完全一致。
高效、及时、准确!
3、最佳实践
前端(或后端):在 Apifox 上定好接口文档初稿。
前后端:一起评审、完善接口文档,定好接口用例。
前端:使用系统根据接口文档自动生成的 Mock 数据进入开发,无需手写 mock 规则。
后端:使用接口用例 调试开发中接口,只要所有接口用例调试通过,接口就开发完成了。如开发过中接口有变化,调试的时候就自动更新了文档,零成本的保障了接口维护的及时性。
后端:每次调试完一个功能就保存为一个接口用例。
测试人员:直接使用接口用例测试接口。
所有接口开发完成后,测试人员(也可以是后端)使用集合测试功能进行多接口集成测试,完整测试整个接口调用流程。
前后端都开发完,前端从Mock 数据切换到正式数据,联调通常都会非常顺利,因为前后端双方都完全遵守了接口定义的规范。
4、功能介绍
(1)接口设计:Apifox 接口文档遵循OpenApi3.0 (原 Swagger)、JSON Schema规范的同时,提供了非常好用的可视化文档管理功能,零学习成本,非常高效。并且支持在线分享接口文档。
(2)数据模型:可复用的数据结构,定义接口返回数据结构及请求参数数据结构(仅 JSON 和 XML 模式)时可直接引用。支持模型直接嵌套引用,直接 JSON/XML 智能导入,支持 oneOf、allOf 等高级组合模式。
(3)接口调试:Postman 有的功能,比如环境变量、前置/后置脚本、Cookie/Session 全局共享 等功能,Apifox 都有,并且比 Postman 更高效好用。接口运行完之后点击保存为用例按钮,即可生成接口用例,后续可直接运行接口用例,无需再输入参数,非常方便。自定义脚本 100% 兼容 Postman 语法,并且支持运行 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等各种语言代码。
(4)接口用例:通常一个接口会有多种情况用例,比如参数正确用例、参数错误用例、数据为空用例、不同数据状态用例等等。运行接口用例时会自动校验数据正确性,用接口用例来调试接口非常高效。
(5)接口数据 Mock:内置Mock.js规则引擎,非常方便 mock 出各种数据,并且可以在定义数据结构的同时写好 mock 规则。支持添加“期望”,根据请求参数返回不同 mock 数据。最重要的是 Apifox 零配置 即可 Mock 出非常人性化的数据,具体在本文后面介绍。
(6)数据库操作:支持读取数据库数据,作为接口请求参数使用。支持读取数据库数据,用来校验(断言)接口请求是否成功。
(7)接口自动化测试:提供接口集合测试,可以通过选择接口(或接口用例)快速创建测试集。目前接口自动化测试更多功能还在开发中,敬请期待!目标是:JMeter 有的功能基本都会有,并且要更好用。
(8)快捷请求:类似 Postman 的接口调试方式,主要用途为临时调试一些无需文档化的接口,无需提前定义接口即可快速调试。
(9)代码生成:根据接口及数据数据模型定义,系统自动生成接口请求代码、前端业务代码及后端业务代码。
(10)团队协作:Apifox 天生就是为团队协作而生的,接口云端实时同步更新,成熟的团队/项目/成员权限管理,满足各类企业的需求。
三. 接口文档设计
1、接口文档的设计
完全可视化
零学习成本
遵循 OpenAPI 规范
2、数据模型
完全可视化
支持模型之间嵌套引用
支持 JSON/XML 智能导入
遵循 JSONSchema 规范
支持 oneOf、allOf 等高级组合模式
3、生成接口文档
可通过分享链接讲接口文档分享给别人
4、接口用例/接口调试
一个接口多个用例
自动跟随接口变更
Postman 有的功能 Apifox 基本都有
环境变量、全局变量、前置/后置脚本、Cookie/Session 全局共享等…
5、环境变量/全局参数
6、自动校验接口数据
根据数据结构自动校验
完整的 JSONSchema 校验
7、前置操作/后置操作
针对单个接口
针对整个分组
8、断言
9、提取变量
可视化
JSONPath 提取
10、数据库操作
读取数据库数据
写入数据库数据
11、自定义脚本
语法 100% 兼容 Postman
支持运行其他任何语言代码
四. 智能 Mock 数据
根据接口定义里的数据结构、数据类型,自动生成 mock 规则。
内置智能 mock 规则库,根据字段名、字段数据类型,智能优化自动生成的 mock 规则。
可自动识别出图片、头像、用户名、手机号、网址、日期、时间、时间戳、邮箱、省份、城市、地址、IP 等字段,从而 Mock 出非常人性化的数据。
支持自定义规则库,满足各种个性化需求。支持使用 正则表达式、通配符 来匹配字段名自定义 mock 规则。
1、零配置 Mock 接口数据
2、自定义 Mock 规则
支持 Mock.js 语法
扩展身份证、国内手机号等常用规则
3、高级 Mock
五. 自动化测试
1、自动化测试
2、测试数据
六. 其他特性
根据接口/模型定义,自动生成各种语言/框架的业务代码和接口请求代码。
支持 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 等 130 种语言及框架。
支持自定义代码模板,自动生成符合自己团队的架构规范的代码,满足各种个性化的需求。
1、生成业务代码
2、生成接口请求代码
3、支持 CI/CD
支持命令行方式运行接口测试 (Apifox CLI)。
支持集成 Jenkins 等持续集成工具。
4、数据导入/导出
支持导出 OpenAPI (Swagger)、Markdown、Html 等数据式。
支持导入 OpenAPI (Swagger)、Postman、HAR、RAP2、JMeter、YApi、Eolinker、RAML、DOClever、Apizza、DOCWAY、ShowDoc、I/O Docs、WADL、Google Discovery 等数据格式。
5、团队协作
接口数据云端同步,实时更新。
成熟的团队/项目权限管理,支持管理员、普通成员、只读成员等角色设置,满足各类企业的需求。
Apifox官方网站:https://www.apifox.cn/