相信无论是前端,还是后端的测试和开发人员,都遇到过这样的困难。不同工具之间数据一致性非常困难、低效。多个系统之间数据不一致,导致协作低效、频繁出问题,开发测试人员痛苦不堪。
Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台,定位 Postman + Swagger + Mock + JMeter。
通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好 API 文档,API 调试、API 数据 Mock、API 自动化测试就可以直接使用,无需再次定义;API 文档和 API 开发调试使用同一个工具,API 调试完成后即可保证和 API 文档定义完全一致。高效、及时、准确!
接下来,我将从以下几个方面逐一演示介绍:
接口设计即定义接口文档规范(如接口路径、参数、返回值、数据结构等)。
和 Postman 不一样,[Apifox] 是区分
接口设计
和接口运行
两个概念的。
参数名
及参数说明等,而不能设置参数值
。参数值、前置脚本/后置脚本 等信息请在接口运行
界面或接口用例
界面填写。保存为用例
,才能将填写的 参数值、前置脚本/后置脚本 等信息保存下来;否则关闭 tab 后,这些信息将会丢失。+
号按钮即可打开新建窗口,也可使用 快捷键 Ctrl(⌘) + N。
以斜杠/
起始的接口 path 部分,如/pets
、/pets/{id}
。
不要包含 HTTP 协议及域名
,这部分建议在 环境管理 的前置URL
里设置,接口调试时的 URL 会自动加上当前环境的前置URL
。
HTTP 协议及域名
的,系统也能支持,但不建议这么做。接口调试时,系统如检测到接口路径是以http://
或https://
起始的,会自动忽略当前环境里前置 URL。
Path 参数
是以大括号包裹起来表示,而非冒号起始表示。正确示例:/pets/{id}
,错误示例/pets/:id
。
Query 参数
(即 URL 中 ?
后的参数),Query 参数在下方请求参数
部分填写。
成员权限分成两个部分:团队权限和成员权限。团队权限指成员对团队操作的权限,项目权限指成员对项目操作的权限。
团队角色分所有者、管理者和普通用户,对应权限如下:
权限名称 | 所有者 | 管理员 | 普通成员 |
---|---|---|---|
修改团队资料 | √ | × | × |
移交团队 | √ | × | × |
解散团队 | √ | × | × |
查看成员权限列表 | √ | √ | × |
修改成员权限 | √ | √ | × |
邀请/移出成员 | √ | √ | × |
为了满足团队的多层次管理需求,每个成员可以按项目设置管理员、普通成员、只读成员、禁止访问的角色,对应权限如下:
权限名称 | 管理员 | 普通成员 | 只读成员 | 禁止访问 |
---|---|---|---|---|
项目增删改 | √ | × | × | × |
项目信息修改 | √ | × | × | × |
访问接口文档 | √ | √ | √ | × |
接口增删改 | √ | √ | × | × |
接口查看调试 | √ | √ | √ | × |
用例增删改 | √ | √ | × | × |
用例查看和运行 | √ | √ | √ | × |
测试套件增删改 | √ | √ | × | × |
测试套件运行 | √ | √ | √ | × |
数据模型增删改 | √ | √ | × | × |
数据模型查看 | √ | √ | √ | × |
环境增删改 | √ | √ | × | × |
Mock 规则增删改 | √ | √ | × | × |
公共 Response 增删改 | √ | √ | × | × |
公共脚本增删改 | √ | √ | × | × |
数据库连接增删改 | √ | √ | × | × |
自定义函数增删改 | √ | √ | × | × |
变量增删改 | √ | √ | × | × |
变量本地值设置 | √ | √ | √ | × |
导入导出数据 | √ | × | × | × |
当需要修改权限或查看成员权限时,可以点击左上角的 项目名称
,进入团队页面。在对应的项目下点击 成员/权限
tab,点击对应成员的 设置
,就可以看到该成员在该项目内的团队权限和项目权限,并根据需要进行修改。
接口文档
初稿。接口文档
,定好接口用例
。Mock 数据
进入开发,无需手写 mock 规则。接口用例
调试开发中接口,只要所有接口用例调试通过,接口就开发完成了。如开发过程中接口有变化,调试的时候就自动更新了文档,零成本的保障了接口维护的及时性。接口用例
。接口用例
测试接口。集合测试
功能进行多接口集成测试,完整测试整个接口调用流程。Mock 数据
切换到正式数据
,联调通常都会非常顺利,因为前后端双方都完全遵守了接口定义的规范。支持导入 OpenApi (原Swagger)
、Postman
、HAR
、RAML
、RAP2
、JMeter
、YApi
、Eolinker
、NEI
、DOClever
、ApiPost
、Apizza
、DOCWAY
、ShowDoc
、apiDoc
、I/O Docs
、WADL
、Google Discovery
等数据格式,方便旧项目迁移。
打开 项目设置
面板,点击 手动导入
,可选择文件导入或 URL 导入。
以导入 Apifox 格式为例,导入可选内容包括:接口、数据模型、环境、测试用例、测试套件
OpenAPI (原Swagger)
、HTML
、Markdown
、Apifox
等数据格式。
OpenAPI (Swagger)
支持导出 3.1
、3.0
、2.0
版本。
OpenAPI (Swagger)
支持导出离线文件,或直接打开 URL。
目前还不支持直接导出 PDF
、Word
等其他格式数据,但可使用外部工具将Markdown
转为对应格式。
如使用 [Typora] 即可将 Markdown
导出为 PDF
、Word
、OpenOffice
、Epub
等格式。
Apifox Mock 语法完全兼容 Mock.js (数据占位符方式),并扩展了一些 Mock.js 没有的语法(如国内手机号 @phone)。
如现有 Mock 语法无法满足需求,建议使用 正则表达式 @regexp 来实现灵活的定制。正则表达式基本能满足各种特殊场景的需求。
写法 | 说明 |
---|---|
以@起始的字符串 | 调用 Mock 语法规则生成对应的数据。 |
如生成的数据类型和定义的数据类型不一致,则会自动转换。 | |
非@起始的字符串 | 数据类型为string时,原样输出。 |
其他数据类型,会将字符串自动转换到对应的数据类型。 | |
特殊字符:null | 数据类型允许为null 时,输出null。 |
否则自动转换,如数据类型为string,输出"null"。 | |
特殊字符:true | 数据类型为boolean 时,输出true。 |
否则自动转换,如数据类型为string,输出"true"。 | |
特殊字符:false | 数据类型为boolean 时,输出false。 |
否则自动转换,如数据类型为string,输出"false"。 |
自动转换 是使用 javascript 语言默认数据转换方法进行转换。
规则 | 示例 | 示例结果 |
---|---|---|
@regexp( regexp ) | @regexp(/\d+/) | “36436” |
@regexp(/\d{3,5}/) | “343” | |
@regexp(/^[a-zA-Z][A-Za-z0-9_-.]+@gmail.com$/) | “ifa3dt@gmail.com” |
注意:
1.0.12
才支持正则表达式。/
起始和结尾。[Apifox] 包含一个基于Javascript
的脚本引擎,通过脚本(JavaScript
代码片段)可实现在接口请求或集合测试时添加动态行为。
java(.jar)
、python
、php
、js
、BeanShell
、go
、shell
、ruby
、Lua
等语言编写的外部程序。以下两个环节可添加脚本:
全局
设置(在项目概览
里设置)前置操作、后置操作,设置后项目里的所有接口运行时都会生效。
分组
里设置前置操作、后置操作,设置后分组里的所有接口运行时都会生效。
接口请求的执行流程如下:
[全局前置脚本] -> [分组前置脚本] -> [接口前置脚本] -> [发送接口请求] -> [返回接口结果] -> [全局后置脚本] -> [分组后置脚本] -> [接口后置脚本]
调试脚本可以在 前置脚本 和 后置脚本 里编写,使用console.log('hello')
方式将调试信息写入控制台,打开 控制台 即可查看。
为了提高你的开发效率,也可使用各种快捷键:
功能 | Windows / Linux | macOS |
---|---|---|
新建接口 | Ctrl + N | ⌘ + N |
新建快捷调试 | Ctrl + T | ⌘ + T |
保存接口 / 保存用例 | Ctrl + S | ⌘ + S |
发送请求 | Ctrl + Enter | ⌘ + Enter |
切换到【运行】Tab | Ctrl + Enter | ⌘ + Enter |
关闭 Tab | Ctrl + W | ⌘ + W |
强制关闭 Tab | Ctrl + Alt + W | ⌘ + Option + W |
切换到下一个 Tab | Ctrl + Tab 或 Ctrl + PageDown | ⌘ + Option + 向右箭头键 或 ⌘ + Shift + ] |
切换到上一个 Tab | Ctrl + Shift + Tab 或 Ctrl + PageUp | ⌘ + Option + 向左箭头键 或 ⌘ + Shift + [ |
跳转到特定标签页 | Ctrl + 1 到 Ctrl + 8 | ⌘ + 1 到 ⌘ + 8 |
跳转到最后一个标签页 | Ctrl + 9 | ⌘ + 9 |
导入数据 | Ctrl + O | ⌘ + O |
导入抓包数据 (cURL) | Ctrl + I | ⌘ + I |
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有