Apifox:满足你对 Api 的所有幻想


文章目录

    • ⌚️ 一、Api 管理的难点在哪?
    • 📱 二、Apifox 是什么?
    • 💿 三、接口设计 (接口文档)
      • ⌨️ 3.1 接口文档
      • 💻 3.2 快速上手
      • 🖨 3.3 接口路径
    • 💽 四、团队管理
      • 📽 4.1 权限管理
      • ⏱ 4.2 项目权限
      • 📞 4.3 使用说明
    • ☎️ 五、团队协作流程
    • 📠 六、导入数据
      • 🎙 6.1 功能说明
      • ⏰ 6.2 手动导入
    • 📡 七、导出数据
      • 💎 7.1 功能说明
      • 💵 7.1 导出 PDF、Word 方法
    • 📺 八、Mock 语法
      • 🔋 8.1 基本写法
      • 🔌 8.2 正则表达式
    • 📟 九、脚本
      • 📼 9.1 脚本可实现的功能
      • ☎️ 9.2 使用方式
      • 🔨 9.3 全局脚本和分组脚本
      • 🗑 9.4 调试脚本
    • 🛢 十、快捷键

⌚️ 一、Api 管理的难点在哪?

相信无论是前端,还是后端的测试和开发人员,都遇到过这样的困难。不同工具之间数据一致性非常困难、低效。多个系统之间数据不一致,导致协作低效、频繁出问题,开发测试人员痛苦不堪。

  1. 开发人员在 Swagger 定义好文档后,接口调试的时候还需要去 Postman 再定义一遍。
  2. 前端开发 Mock 数据的时候又要去 mockjs 定义一遍,还需要手动设置 Mock 规则。
  3. 测试人员需要去 JMeter 再定义一遍。
  4. 前端根据 mockjs Mock 出来的数据开发完,后端根据 Swagger 定义的接口文档开发完,各自都试测试通过了,本以为可以马上上线,结果一对接发现各种问题:
  5. 开发过程中接口变更了,只修改了 Swagger,但是没有及时同步修改 mockjs。
  6. 后端开发的接口数据类型和文档不一致,肉眼难以发现问题。
  7. 同样,测试在 JMeter 写好的测试用例,真正运行的时候也会发现各种不一致。
  8. 时间久了,各种不一致会越来越严重。

📱 二、Apifox 是什么?

Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台,定位 Postman + Swagger + Mock + JMeter。

通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好 API 文档,API 调试、API 数据 Mock、API 自动化测试就可以直接使用,无需再次定义;API 文档和 API 开发调试使用同一个工具,API 调试完成后即可保证和 API 文档定义完全一致。高效、及时、准确!

接下来,我将从以下几个方面逐一演示介绍:

  • API 文档设计
  • API 调试
  • API 自动化测试
  • API 数据 Mock
  • CI 持续集成
  • 数据库操作
  • 自动生成代码
  • 支持 HTTP、TCP、RPC
  • 数据导入/导出
  • 团队协作

💿 三、接口设计 (接口文档)

⌨️ 3.1 接口文档

接口设计即定义接口文档规范(如接口路径、参数、返回值、数据结构等)。

和 Postman 不一样,[Apifox] 是区分接口设计接口运行两个概念的。

  • 接口设计:即 新建接口 界面或接口详情里的 编辑 界面,用途是 定义接口文档规范,而不是 运行 接口,所以该界面是只能定义接口基本信息、参数名及参数说明等,而不能设置参数值参数值前置脚本/后置脚本 等信息请在接口运行界面或接口用例界面填写。
  • 接口运行:即接口详情里的 运行 界面,用途是 临时调试接口运行 完后,需要点击保存为用例,才能将填写的 参数值前置脚本/后置脚本 等信息保存下来;否则关闭 tab 后,这些信息将会丢失。

💻 3.2 快速上手

  1. 点击左侧搜索框旁边的 + 号按钮即可打开新建窗口,也可使用 快捷键 Ctrl(⌘) + N。

  2. 在打开的窗口中,直接定义接口相关信息。

🖨 3.3 接口路径

以斜杠/起始的接口 path 部分,如/pets/pets/{id}

  1. 接口路径 建议不要包含 HTTP 协议及域名,这部分建议在 环境管理 的前置URL里设置,接口调试时的 URL 会自动加上当前环境的前置URL

  2. 特殊情况需在接口路径要带上HTTP 协议及域名的,系统也能支持,但不建议这么做。接口调试时,系统如检测到接口路径是以http://https://起始的,会自动忽略当前环境里前置 URL。

  3. Apifox 中的 Path 参数是以大括号包裹起来表示,而非冒号起始表示。正确示例/pets/{id}错误示例/pets/:id

  4. 接口路径 不可包含Query 参数(即 URL 中 ?后的参数),Query 参数在下方请求参数部分填写。

💽 四、团队管理

成员权限分成两个部分:团队权限和成员权限。团队权限指成员对团队操作的权限,项目权限指成员对项目操作的权限。

📽 4.1 权限管理

团队角色分所有者、管理者和普通用户,对应权限如下:

权限名称所有者管理员普通成员
修改团队资料××
移交团队××
解散团队××
查看成员权限列表×
修改成员权限×
邀请/移出成员×

⏱ 4.2 项目权限

为了满足团队的多层次管理需求,每个成员可以按项目设置管理员、普通成员、只读成员、禁止访问的角色,对应权限如下:

权限名称管理员普通成员只读成员禁止访问
项目增删改×××
项目信息修改×××
访问接口文档×
接口增删改××
接口查看调试×
用例增删改××
用例查看和运行×
测试套件增删改××
测试套件运行×
数据模型增删改××
数据模型查看×
环境增删改××
Mock 规则增删改××
公共 Response 增删改××
公共脚本增删改××
数据库连接增删改××
自定义函数增删改××
变量增删改××
变量本地值设置×
导入导出数据×××

📞 4.3 使用说明

当需要修改权限或查看成员权限时,可以点击左上角的 项目名称 ,进入团队页面。在对应的项目下点击 成员/权限 tab,点击对应成员的 设置,就可以看到该成员在该项目内的团队权限和项目权限,并根据需要进行修改。

☎️ 五、团队协作流程

  1. 前端(或后端)在 [Apifox] 上定好接口文档初稿。
  2. 前后端 一起评审、完善接口文档,定好接口用例
  3. 前端 使用系统根据接口文档自动生成的 Mock 数据进入开发,无需手写 mock 规则。
  4. 后端 使用接口用例 调试开发中接口,只要所有接口用例调试通过,接口就开发完成了。如开发过程中接口有变化,调试的时候就自动更新了文档,零成本的保障了接口维护的及时性。
  5. 后端 每次调试完一个功能就保存为一个接口用例
  6. 测试人员 直接使用接口用例测试接口。
  7. 所有接口开发完成后,测试人员(也可以是后端)使用集合测试功能进行多接口集成测试,完整测试整个接口调用流程。
  8. 前后端 都开发完,前端从Mock 数据切换到正式数据,联调通常都会非常顺利,因为前后端双方都完全遵守了接口定义的规范。

📠 六、导入数据

🎙 6.1 功能说明

支持导入 OpenApi (原Swagger)PostmanHARRAMLRAP2JMeterYApiEolinkerNEIDOCleverApiPostApizzaDOCWAYShowDocapiDocI/O DocsWADLGoogle Discovery等数据格式,方便旧项目迁移。

⏰ 6.2 手动导入

打开 项目设置 面板,点击 手动导入 ,可选择文件导入或 URL 导入。

以导入 Apifox 格式为例,导入可选内容包括:接口、数据模型、环境、测试用例、测试套件

📡 七、导出数据

💎 7.1 功能说明

  1. 支持直接导出 OpenAPI (原Swagger)HTMLMarkdownApifox等数据格式。

  2. OpenAPI (Swagger) 支持导出 3.13.02.0 版本。

  3. OpenAPI (Swagger) 支持导出离线文件,或直接打开 URL。

💵 7.1 导出 PDF、Word 方法

目前还不支持直接导出 PDFWord 等其他格式数据,但可使用外部工具将Markdown转为对应格式。

如使用 [Typora] 即可将 Markdown 导出为 PDFWordOpenOfficeEpub等格式。

📺 八、Mock 语法

Apifox Mock 语法完全兼容 Mock.js (数据占位符方式),并扩展了一些 Mock.js 没有的语法(如国内手机号 @phone)。

如现有 Mock 语法无法满足需求,建议使用 正则表达式 @regexp 来实现灵活的定制。正则表达式基本能满足各种特殊场景的需求。

🔋 8.1 基本写法

写法说明
@起始的字符串调用 Mock 语法规则生成对应的数据。
如生成的数据类型和定义的数据类型不一致,则会自动转换。
@起始的字符串数据类型为string时,原样输出。
其他数据类型,会将字符串自动转换到对应的数据类型。
特殊字符:null数据类型允许为null 时,输出null
否则自动转换,如数据类型为string,输出"null"
特殊字符:true数据类型为boolean 时,输出true
否则自动转换,如数据类型为string,输出"true"。
特殊字符:false数据类型为boolean 时,输出false
否则自动转换,如数据类型为string,输出"false"。

自动转换 是使用 javascript 语言默认数据转换方法进行转换。

🔌 8.2 正则表达式

规则示例示例结果
@regexp( regexp )@regexp(/\d+/)“36436”
@regexp(/\d{3,5}/)“343”
@regexp(/^[a-zA-Z][A-Za-z0-9_-.]+@gmail.com$/)“ifa3dt@gmail.com”

注意:

  • Apifox 版本号大于等于 1.0.12 才支持正则表达式。
  • regexp 参数必须以 / 起始和结尾。

📟 九、脚本

[Apifox] 包含一个基于Javascript的脚本引擎,通过脚本(JavaScript代码片段)可实现在接口请求或集合测试时添加动态行为。

📼 9.1 脚本可实现的功能

  1. 测试(断言)请求返回结果的正确性(后置脚本)。
  2. 动态修改接口请求参数,如增加接口签名参数等(前置脚本)。
  3. 接口请求之间传递数据(使用脚本操作变量)。
  4. 脚本可以直接 调用其他语言编写的程序,支持java(.jar)pythonphpjsBeanShellgoshellrubyLua 等语言编写的外部程序。
  5. 其他。

☎️ 9.2 使用方式

以下两个环节可添加脚本:

  1. 在将请求发送到服务器之前,使用 前置脚本。
  2. 收到响应后,使用 后置脚本(断言测试)。

截屏2021-12-14 上午10.33.57

🔨 9.3 全局脚本和分组脚本

  1. 支持全局设置(在项目概览里设置)前置操作、后置操作,设置后项目里的所有接口运行时都会生效。

  2. 支持分组里设置前置操作、后置操作,设置后分组里的所有接口运行时都会生效。

接口请求的执行流程如下:

[全局前置脚本] -> [分组前置脚本] -> [接口前置脚本] -> [发送接口请求] -> [返回接口结果] -> [全局后置脚本] -> [分组后置脚本] -> [接口后置脚本]

🗑 9.4 调试脚本

调试脚本可以在 前置脚本后置脚本 里编写,使用console.log('hello')方式将调试信息写入控制台,打开 控制台 即可查看。

🛢 十、快捷键

为了提高你的开发效率,也可使用各种快捷键:

功能Windows / LinuxmacOS
新建接口Ctrl + N⌘ + N
新建快捷调试Ctrl + T⌘ + T
保存接口 / 保存用例Ctrl + S⌘ + S
发送请求Ctrl + Enter⌘ + Enter
切换到【运行】TabCtrl + Enter⌘ + Enter
关闭 TabCtrl + W⌘ + W
强制关闭 TabCtrl + Alt + W⌘ + Option + W
切换到下一个 TabCtrl + Tab 或 Ctrl + PageDown⌘ + Option + 向右箭头键 或 ⌘ + Shift + ]
切换到上一个 TabCtrl + Shift + Tab 或 Ctrl + PageUp⌘ + Option + 向左箭头键 或 ⌘ + Shift + [
跳转到特定标签页Ctrl + 1 到 Ctrl + 8⌘ + 1 到 ⌘ + 8
跳转到最后一个标签页Ctrl + 9⌘ + 9
导入数据Ctrl + O⌘ + O
导入抓包数据 (cURL)Ctrl + I⌘ + I

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/494257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百度地图综合

本文主要包括百度地图API的综合应用,主要内容如下 地图图层展示,包括热力图与实时路况图 添加覆盖物,包括图片,文字,折线等地图控制,包括俯视,旋转,放大,缩小等定位&…

国内Api行业,可以内卷到什么程度?

随着移动应用以及智能设备爆发增长,同时越来越多的零售商、媒体、政府和金融服务公司开始公开Web API,API的使用越来越多。 现在,每日API调用量在不断飙升,早在2009年,Facebook每天API调用量就已经达到了50亿。如何能…

自动驾驶关键技术报告:惯性导航和背后的芯片大战

来源:智东西摘要:惯性导航将成为自动驾驶定位信息融合的中心。惯性导航系统由于具有的输出信息不间断、不受外界干扰的独特优势;同时可以将多种传感器的信息以及车身信息进行更深层次的融合,为决策层提供精确可靠的连续的车辆位置…

3D打印产业化机遇与挑战

来源:3D科学谷3D打印的突出特点有两个:免除模具以及制造成本对设计的复杂性不敏感。免除模具的特点使得3D打印适合用于产品原型、试制零件、备品备件、个性化定制、零件修复、医疗植入物、医疗导板、牙科产品、耳机产品等小批量个性化的产品。而传统制造…

Android之ExpandableListView

ExpandableListView可以用来表现多层级的listView&#xff0c;本文主要是ExpandableListView的一个简单实现 布局文件 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"andro…

Api -- 连接世界的Super Star

文章目录&#x1f34f; 一、api 的定义&#xff1a;数据共享模式定义 4 大种类&#x1f356; 二、api 使用场景&#xff1a;互联网时代&#xff0c;api 无处不在2.1 sql 查询2.2 数据传输&#x1f364; 三、开放 api&#xff08;OpenAPI&#xff09;&#xff1a;开放双赢&#…

2018全球最强物联网公司揭晓!

来源&#xff1a;数字化企业根据Gartner预测&#xff0c; 到2020年将有超过200亿台联网设备&#xff0c;市场价值将达3000亿美元之巨。随着垂直应用上的不断细分&#xff0c;以及与AI的加速整合&#xff0c;物联网不仅将持续地变革人们的生活和工作&#xff0c;市场规模也将持续…

Android之解析GML并显示

本例主要实现在APP中解析GML数据并显示 GML,地理标记语言&#xff08;外语全称&#xff1a;Geography MarkupLanguage、外语缩写&#xff1a;GML&#xff09;&#xff0c;它由开放式地理信息系统协会&#xff08;外语缩写&#xff1a;OGC&#xff09;于1999年提出&#xff0c;…

中国电子学会发布《新一代人工智能领域十大最具成长性技术展望(2018-2019年)》...

来源&#xff1a;中国电子学会当前&#xff0c;全球正在经历科技和产业高度耦合、深度迭加的新一轮变革&#xff0c;大数据的形成、理论算法的革新、计算能力的提升及网络设施的演进驱动人工智能进入新一轮创新发展高峰期&#xff0c;新技术持续获得突破性进展&#xff0c;呈现…

晓得不,中间表是这样被消灭的

目录 一、中间表的产生 1、一步算不出来 2、实时计算等待时间过长 3、多样性数据源参加计算 4、中间表难以删除 二、文件计算 三、高性能文件格式 四、易管理性 五、多数据源支持 六、集成性 七、资料 一、中间表的产生 中间表是数据库中专门存放中间计算结果的数据…

美国五大科技巨头的人工智能竞赛

来源&#xff1a;资本实验室毫无疑问&#xff0c;人工智能已经开始渗透到各行各业&#xff0c;并正在改变我们的工作方式和生活方式。2017年&#xff0c;全球与人工智能相关的资金投入总额达到152亿美元&#xff0c;比上一年增加144&#xff05;。而无论在投资&#xff0c;还是…

模拟Struts2实现

本文主要是一个模拟的Struts2的简单实现 真正的MVC架构 实现主要思路 定义一个过滤器&#xff0c;接收传递过去的Action&#xff0c;根据处理的结果重定向或者转发。 首先定义index.jsp <% page language"java" import"java.util.*" pageEncoding&q…

实战教学--怎样提高报表呈现的性能?

报表的性能很重要&#xff0c;是一个总被谈及的问题&#xff0c;跑的慢的报表用户体验恶劣&#xff0c;无法忍受。解决这些慢的性能问题&#xff0c;也成了项目方和工程师头疼的事情。一出状况&#xff0c;就得安排技术好的&#xff0c;能力强的工程师去救火&#xff0c;本来利…

WiFi共享精灵 - 不需路由器一键轻松把网线共享给手机、笔记本等同时无线上网...

现在人们身边手机、游戏机等各种使用WiFi上网的设备已经越来越多&#xff0c;但经常遇到一些地方只有有线网络&#xff0c;或者没有无线路由器的情况&#xff0c;这时&#xff0c;用笔记本上网&#xff0c;然后把网络通过WiFi共享给其他设备上网那么就最合适了。我们之前有介绍…

干货|李开复最新刷屏演讲:人工智能最难取代这13种工作,也最容易威胁人性与爱!...

来源&#xff1a;澎湃新闻这两年&#xff0c;创新工场董事长兼首席执行官李开复&#xff0c;一直为人工智能站台和奔走&#xff0c;还出新书帮助人们规划未来的AI生活。他预言&#xff0c;中国有望在全球范围内首先实现OMO&#xff08;Online-Merge-Offline&#xff0c;线上线下…

Apifox vs Eolink,国内 Api 工具哪家强?

目前行业内有 postman、jmeter 为代表开源 Api 工具派系&#xff0c;我想对大家对这两个词并不陌生。虽然它们能解决基本的接口测试&#xff0c;但是无法解决接口链路上的所有问题&#xff0c;一个工具难以支持整个过程。 在国内&#xff0c;我们可以看到有国产 API 管理工具&…

人工智能、区块链、混合现实:2019年新闻、媒体与技术趋势

来源&#xff1a;资本实验室近日&#xff0c;未来今日研究所&#xff08;Future Today Institute&#xff09;发布了《2019年新闻、媒体与技术趋势报告》&#xff0c;报告提出了涵盖多个领域的108个新兴技术趋势。报告显示&#xff0c;未来的新闻、媒体等行业将受到各种技术错综…

活久见:都 2203 年了,你还在使用 word 调试 API

随着信息技术的发展&#xff0c;API 变得无处不在&#xff0c;无处不用。但令人费解的是&#xff0c;都 2203 年了&#xff0c;竟然还有很多人使用 word 调试 API&#xff1f; 今天&#xff0c;西红柿将带领大家打开新世界的大门&#xff0c;放下诺基亚&#xff0c;抄起智能机&…

Struts2基础知识

本文主要包括以下内容 struts2常用常量的定义与意义struts2处理流程拆分struts动态方法调用,使用通配符接收请求参数中文编码问题自定义类型转化器访问或添加request/session/application常用servlet对象的获取 struts2常用常量的定义与意义 struts2处理流程 每一次请求都会创…

自动驾驶汽车测试在美惹争议,原因为何?

来源&#xff1a;中国汽车报摘要&#xff1a;近日&#xff0c;针对美国总统特朗普提出的&#xff0c;汽车制造商需自愿提交他们在公共道路上测试自动驾驶汽车安全报告一事&#xff0c;回应者寥寥&#xff0c;目前只有三家汽车公司响应了上述要求&#xff0c;提交了相关材料。据…