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

news2024/9/27 15:30:15

一、Api 管理的难点在哪?

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

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

 二、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 快速上手

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

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

3.3 接口路径

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

  • 接口路径 建议不要包含 HTTP 协议及域名,这部分建议在 环境管理 的前置URL里设置,接口调试时的 URL 会自动加上当前环境的前置URL。
  • 特殊情况需在接口路径要带上HTTP 协议及域名的,系统也能支持,但不建议这么做。接口调试时,系统如检测到接口路径是以http://或https://起始的,会自动忽略当前环境里前置 URL。
  • Apifox 中的 Path 参数是以大括号包裹起来表示,而非冒号起始表示。正确示例:/pets/{id},错误示例/pets/:id。
  • 接口路径 不可包含Query 参数(即 URL 中 ?后的参数),Query 参数在下方请求参数部分填写。

四、团队管理

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

4.1 权限管理

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

4.2 项目权限

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

4.3 使用说明

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

五、团队协作流程

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

 六、导入数据

6.1 功能说明

支持导入 OpenApi (原Swagger)、Postman、HAR、RAML、RAP2、JMeter、YApi、Eolinker、NEI、DOClever、ApiPost 、Apizza 、DOCWAY、ShowDoc、apiDoc、I/O Docs、WADL、Google Discovery等数据格式,方便旧项目迁移。

 6.2 手动导入

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

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

 七、导出数据

 7.1 功能说明

  • 支持直接导出 OpenAPI (原Swagger)、HTML、Markdown、Apifox等数据格式。
  • OpenAPI (Swagger) 支持导出 3.1、3.0、2.0 版本。
  • OpenAPI (Swagger) 支持导出离线文件,或直接打开 URL。

7.1 导出 PDF、Word 方法

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

如使用 [Typora] 即可将 Markdown 导出为 PDF、Word 、OpenOffice、Epub等格式。

 八、Mock 语法

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

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

 8.1 基本写法

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

 8.2 正则表达式

注意:

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

九、脚本

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

 9.1 脚本可实现的功能

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

 9.2 使用方式

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

在将请求发送到服务器之前,使用 前置脚本。

收到响应后,使用 后置脚本(断言测试)。

9.3 全局脚本和分组脚本

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

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

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

9.4 调试脚本

调试脚本可以在 前置脚本 和 后置脚本 里编写,使用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

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

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

相关文章

面向中小型企业的高效企业备份解决方案

​如今,数据保护并不是一个新概念。无论是在个人、家庭、非营利组织还是企业环境中,我们都不想丢失数据,尤其是对于企业来说。无论您的公司规模有多小,与个人使用环境相比,它都会拥有更多的设备、更大的数据量和更低的…

css 两栏布局的实现

目录 前言 1. 浮动布局 用法 代码示例 理解 2. Flex布局 用法 代码示例 理解 3. Grid布局 用法 代码示例 理解 高质量的设计 前言 两栏布局是一种常见的网页设计模式,它将页面分为两个主要区域:主内容区域和侧边栏。这种布局方式不仅能够提…

Java精品项目源码第61期汽车零件销售商城系统(代号V063)

Java精品项目源码第61期汽车零件销售商城系统(代号V063) 大家好,小辰今天给大家介绍一个汽车零件销售商城系统,演示视频公众号(小辰哥的Java)对号查询观看即可 文章目录 Java精品项目源码第61期汽车零件销售商城系统(代号V063)难…

资料分析错题

答案 ca 间隔增长率 DD

《动手学深度学习 Pytorch版》 10.4 Bahdanau注意力

10.4.1 模型 Bahdanau 等人提出了一个没有严格单向对齐限制的可微注意力模型。在预测词元时,如果不是所有输入词元都相关,模型将仅对齐(或参与)输入序列中与当前预测相关的部分。这是通过将上下文变量视为注意力集中的输出来实现…

学习嵌入式开发是不是需要很高的天赋智商能力?

今日话题,学习嵌入式开发是不是需要很高的天赋智商能力?我认为提出此疑问的人可能缺乏自信,需要培养自信心。学习嵌入式开发并不要求非常高的智商,成千上万的工程师已经从事这个行业,他们中的大多数都是非常普通的人。…

Hadoop3.0大数据处理学习3(MapReduce原理分析、日志归集、序列化机制、Yarn资源调度器)

MapReduce原理分析 什么是MapReduce 前言:如果想知道一堆牌中有多少张红桃,直接的方式是一张张的检查,并数出有多少张红桃。 而MapReduce的方法是,给所有的节点分配这堆牌,让每个节点计算自己手中有几张是红桃&#…

SpringBoot 源码分析(一) 启动过程分析

SpringBoot源码核心内容 SpringBoot的源码主要核心有以下几块; 1、是run()方法 ,做一些准备工作 2、是自动装配原理 3、配置文件加载原理 4、tomcat内嵌原理 一、springboot.run()方法分析 在run方法中主要做的事情如下: SpringBootApplication public c…

局域网内无法连接时间源?使用Chrony服务搭建时间源

1.安装chrony yum install -y chrony2.启动和设置配置文件 systemctl start chronyd3.设置为系统自动启动 systemctl enable chronyd以上服务器都需要安装 4.服务器192.168.1.63配置: 打开配置文件 /etc/chrony.conf 配置 allow 192.168.0.0/24 systemct…

7-1、S曲线加减速原理【51单片机控制步进电机-TB6600系列】

摘要:本节介绍步进电机S曲线相关内容,总共分四个小节讨论步进电机S曲线相关内容   根据上节内容,步进电机每一段的速度可以任意设置,但是每一段的速度都会跳变,当这个跳变值比较大的时候,电机会发生明显的…

PHP 危险函数2-代码执行语句

代码执行语句 eval() 不是函数&#xff0c;不能被动态调用&#xff0c;并且需要以 ;结束 直接输出&#xff0c;不执行 <?php$code"phpinfo();";echo $code;?>eval() 语句执行 <?php$code"phpinfo();";eval($code); // eval 不是函数&am…

高压功率放大器在压电换能器中的作用

压电换能器是一种重要的电子设备&#xff0c;主要用于将机械振动转化为电信号或将电信号转化为机械振动。高压功率放大器作为其重要组成部分之一&#xff0c;主要用于提供高电压、高功率的信号驱动压电换能器进行工作。下面安泰电子将详细介绍高压功率放大器在压电换能器中的作…

“简单易学:视频批量添加文字水印的技巧大公开“

如果你是一个视频制作爱好者&#xff0c;那么今天我要分享的技巧将对你非常有帮助。通过使用“固乔剪辑助手”软件&#xff0c;你可以轻松地批量添加文字水印到你的视频中。下面&#xff0c;让我们一起来揭秘这个技巧吧&#xff01; 首先&#xff0c;你需要下载并安装“固乔剪辑…

父子项目打包发布至私仓库

父子项目打包发布至私仓库 1、方法一 在不需要发布至私仓的模块上添加如下代码&#xff1a; <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-deploy-plugin</artifactId><configuration><skip>true</s…

ICLR 2023丨3DSQA:3D 场景中的情景问答

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文链接&#xff1a;https://arxiv.org/pdf/2210.07474.pdf 主页链接&#xff1a;http://sqa3d.github.io 图 1&#xff1a;3D 场景中情景问答 (SQA3D) 的任务图示。给定场景上下文 S&#xff08;例如&#…

光致发光荧光量子检测的作用

光致发光荧光量子检测是一种测试技术&#xff0c;可以用来测量荧光材料的荧光光谱、荧光量子效率和发光寿命等参数&#xff0c;具有高灵敏度、高分辨率和自动化程度高等优点。 光致发光荧光量子检测的应用范围广泛&#xff0c;可以应用于材料科学、生物科学、医学、光学器件、能…

【C】想动态分配内存?动态内存管理了解一下

目录 一、为什么存在动态内存分配 二、动态内存函数的介绍 1.malloc和free 2.calloc 3.realloc 三、常见的动态内存错误 1 对NULL指针的解引用操作 2 .对动态开辟空间的越界访问 3.对非动态开辟内存使用free释放 4.使用free释放一块动态开辟内存的一部分 5.对同一块动态…

730. 机器人跳跃问题--二分

题目&#xff1a; 730. 机器人跳跃问题 - AcWing题库 思路&#xff1a; 二分 1.当起始能量E大于最大建筑高度1e5 时&#xff0c;E的能量在整个条约过程中全程递增&#xff0c;则大于E的初始能量也必然成立&#xff08;满足二段性&#xff09;。故最小初始能量范围为[0,1e5]&a…

会声会影2023电脑破解版视频剪辑工具

本次更新不仅带来了标题动作、标题特效、转场特效、音频标记等功能的更新&#xff0c;也增强了热门的GIF创作器、定格动画制作、多语字幕、短时长转场等功能&#xff0c;让大家能体验到更加新潮的视频制作方式。会声会影2023是一款视频编辑软件&#xff0c;由Corel开发。该软件…

【Linux】Centos 8 服务器部署:阿里云域名申请免费 SSL 证书详细教程

目录 一、免费申请 SSL 证书 &#xff08;1&#xff09;打开阿里云SSL证书页面 &#xff08;2&#xff09;SSL 证书 - 免费证书&#xff08;立即购买&#xff09; &#xff08;3&#xff09;SSL 证书 - 免费证书&#xff08;创建证书&#xff09; &#xff08;4&#xff…