• 效率神器Apifox_API 文档、API 调试、API Mock、API 自动化测试工具推荐


    前言

    • 还在苦苦为研发质量担忧吗?
    • 还在苦苦为国外的PostMan不好用饱受折磨吗?
    • 还在苦苦找不到趁手的效率利器烦恼吗?

    哈哈哈, 效率神器 Apifox 你值得拥有

    在这里插入图片描述

    简言之 :

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

    👉 《21分钟学会Apifox》

    在这里插入图片描述

    Apifox 是接口管理、开发、测试全流程集成工具,使用受众为整个研发技术团队,主要使用者为前端开发、后端开发、测试人员。

    Apifox 你可以 :

    在这里插入图片描述

    后端、前端、测试,同时在线协作,内容实时同步

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    接下来我们针对上述功能,来分别体验一把


    API 文档设计 - 代码未写 文档先行

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

    接口设计:即 新建接口 界面或接口详情里的 编辑 界面,用途是 定义接口文档规范,而不是 运行 接口,所以该界面是只能定义接口基本信息、参数名及参数说明等,而不能设置参数值。参数值、前置脚本/后置脚本 等信息请在接口运行界面或接口用例界面填写。

    接口运行:即接口详情里的 运行 界面,用途是 临时调试接口,运行 完后,需要点击保存为用例,才能将填写的 参数值、前置脚本/后置脚本 等信息保存下来;否则关闭 tab 后,这些信息将会丢失。

    核心功能

    • 可视化 API 文档管理,零学习成本。
    • 支持数据模型,接口之间可以复用相同数据结构。
    • 接口文档完全遵循 OpenAPI(Swagger) 规范。
    • 支持在线分享 API 文档,方便与外部团队协作。

    快速上手

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

    在这里插入图片描述

    1. 在打开的窗口中,直接定义接口相关信息。
      在这里插入图片描述

    接口路径

    以斜杠/起始的接口 path 部分

    注意

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

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

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

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


    基础信息

    这部分比较简单

    在这里插入图片描述

    请求参数

    • Params 参数

      包含 Query 参数和 Path 参数两部分。

      Query 参数:即 URL 中 ?后的参数。
      Path 参数:自动提取接口路径中大括号包裹起来的参数,如/pets/{id}中的的{id}即表示名为id的 Path 参数。

    • Body 参数
      在这里插入图片描述
      Body 参数类型

    • none:无 body 参数。

    • form-data:即 Content-Type 为multipart/form-data。

    • x-www-form-urlencoded:即 Content-Type 为application/x-www-form-urlencoded。

    • json:即 Content-Type 为 application/json。

    • xml:即 Content-Type 为 application/xml。

    • binary:发送文件类数据时使用。

    • raw:发送其他文本类数据时使用。

    在这里插入图片描述

    注意

    接口发送请求的时候会根据Body 参数类型自动在请求Header加上对应的Content-Type,无需手动设置。

    若需要手动设置Header中的Content-Type,则其值必须和Body 参数类型相匹配,否则系统会自动忽略掉手动设置的Content-Type。

    • 示例:如 Body 参数类型为form-data,手动设置Content-Type的值为multipart/form-data; charset=GBK是有效的;但如果把值设置为application/json则会被系统忽略掉,因为和参数类型不匹配。
    • Body 参数类型为raw时,手动设置Content-Type的值不受限制。

    参数中使用环境变量(或全局变量/临时变量)

    所有参数都可以使用变量,使用方式为双大括号包裹变量名,如{{my_variable}},表示引用名为my_variable的变量。

    参数值使用变量时可以包含变量以外的字符串,如:参数值设置为prefix-{{my_variable}}-surfix,假设运行时变量my_variable的值为123,则实际请求时参数的值为prefix-123-surfix。


    返回响应

    在这里插入图片描述

    返回响应定义主要包含以下几部分

    • 接口返回的 HTTP 状态码
    • 返回内容的数据格式:JSON、XML、HTML、Raw、Binary
    • 数据结构:仅JSON、XML可配置数据结构

    当一个接口在不同情况下会返回不同数据结构时,可设置多个返回响应。点击返回响应模块右上方的+ 新建即可添加。

    定义好数据结构后,接口调试时,系统会自动校验返回的数据是否符合定义的数据结构,非常方便,更多说明请查看文档:接口调试/接口用例。

    定义好数据结构后,使用 mock 功能时,系统会自动根据定义的数据结构 mock 出非常人性化的数据,非常方便,更多说明请查看文档:Mock 数据

    在这里插入图片描述


    接口调试 / 接口用例

    设计好接口文档后,就可以直接 运行 接口来调试了

    快速上手

    打开接口文档,点击运行 tab 即可

    在这里插入图片描述


    保存为用例

    保存为用例 是将当前填写的参数保存起来,方便下次或者其他人用来调试接口。保存为用例后,接口用例 会显示在左侧树状菜单里接口的下一级

    接口用例是非常有用的。从团队协作的场景出发,建议每次运行后都保存为用例,后续用接口用例来调试接口是非常高效的。

    通常一个接口会有多种情况用例,比如参数正确用例、参数错误用例、数据为空用例、不同数据状态用例等等。


    接口参数

    • 接口路径、参数名会自动从 修改文档 读取,无需手动输入

    • 参数值默认读取 修改文档 里的 示例值,也可手动修改,进行调试

    • 填写好参数后,点击发送按钮即可运行。


    前置操作/后置操作

    前置操作/后置操作 的设置维度支持 项目维度、分组维度、单个接口、单个接口用例

    项目维度

    可以在 项目概览 中设置,会对整个项目下的接口/接口用例生效。
    在这里插入图片描述

    分组维度

    点击对应的 分组 即可设置,会对分组下的接口/接口用例生效。

    在这里插入图片描述

    单个接口

    在 接口文档-运行 页设置 前置操作/后置操作 ,需要 保存为接口用例 ,点击 保存 不会被保存在接口文档中,也不会对该接口下面的 接口用例 生效。

    在这里插入图片描述

    单个接口用例

    在这里插入图片描述

    断言

    后置操作支持添加断言,可对接口返回的数据(或响应时间)设置断言,判断是否符合预期


    提取变量

    后置操作支持添加提取变量,可从接口返回结果里提取数据,设置到变量(临时变量/环境变量/全局变量),方便其他接口运行的时候直接使用。


    数据库操作

    前置操作、后置操作支持添加数据库操作,可读写数据库数据,查询结果可在接口请求参数、断言、自定义脚本等场景中使用。目前支持MySQL、SQL Server、Oracle、PostgreSQL,未来会支持更多数据库类型。

    在这里插入图片描述


    校验响应

    校验响应 是一个高效的测试工具,以 接口文档-修改文档 页面内填写的 返回响应 作为判断标准,与 请求接口 的获得的返回值进行对比。

    1. 校验响应 的校验范围

    在这里插入图片描述

    • 接口返回的 HTTP 状态码
    • 返回内容的数据格式:JSON、XML、HTML、Raw、Binary
    • 数据结构:仅JSON、XML可配置数据结构
    1. 如果上述 2 者一致,则显示 ”返回数据结构校验通过!“。说明真实的接口返回值是符合接口文档定义的,不需要人工核对,提高效率和准确性。

    2. 当不一致时,就会报错并提示具体是哪部分不一致。此时你可以选择修改 接口文档-修改文档 内的 返回响应

    在这里插入图片描述

    1. 校验响应 开关默认打开。可以在界面左下角 设置-通用-校验响应 关闭全局开关,注意:全局开关只会对 接口文档-运行 生效,不会对已保存的 接口用例 生效

    控制台

    控制台主要用来展示,脚本里输出的调试信息,以及脚本运行时的错误信息,方便进行脚本调试。


    Socket 接口快速上手

    Apifox 版本号大于等于 1.1.0 才支持Socket接口管理。

    示例场景

    假设我们有一个宠物商店的项目,其中有一个 Socket 服务宠物资料服务,服务器的地址为:dev.server.com,端口为:9001。

    该服务提供4个接口:

    • 新建宠物资料
    • 修改宠物资料
    • 查询宠物资料
    • 删除宠物资料

    我们以新建宠物资料接口作为示例讲解。

    【新建宠物资料】接口说明

    请求报文
    报文示例:

    00000187<data><name>Kitty 猫name><photoUrl>http://dummyimage.com/400x400photoUrl><tags>花斑tags><categoryId>12categoryId><status>pendingstatus>data>
    
    • 1

    报文说明:

    • 前8位0000187为包头,存储包体的字节长度。
    • 剩余部分为包体,为XML格式。
    • XML 中节点存储需要新建的宠物资料数据。

    返回报文
    报文示例:

    00000230<data><errorCode>0errorCode><data><name>Kitty 猫name><photoUrl>http://dummyimage.com/400x400photoUrl><tags>花斑tags><categoryId>12categoryId><status>pendingstatus>data>data>
    
    • 1

    报文说明:

    • 前8位00000217为包头,存储包体的字节长度。
    • 剩余部分为包体,为XML格式。
    • XML 中节点表示状态码,0表示操作成功。
    • XML 中节点存储新建成功的宠物资料数据。

    Apifox 操作示例

    一、创建服务

    1. 切换到SOCKET,然后新建 SOCKET 服务:

    在这里插入图片描述

    1. 填写宠物资料服务相关信息:
      在这里插入图片描述

    二、创建接口

    1. 在刚建的服务下添加接口:

    在这里插入图片描述
    2. 填写接口相关信息:

    在这里插入图片描述
    使用数据处理器,实际发送请求前对输入的数据进行处理:

    • 计算内容长度并添加到包头:用来计算 XML 字节长度并添加到包头。
    1. 设置返回结果:

    在这里插入图片描述
    使用数据处理器,对接口返回的数据进行处理后再展示:

    • 去除包头(指定包头长度):去除返回数据里的包头(展示的时候不需要)。

    • XML 转 JSON(可表单展示):将返回包体里的 XML 转成 JSON 方便查看。

    三、运行接口

    1. 打开刚新建的接口,切换到“运行” tab,可以看到“报文内容”通过表单方式输入:

    在这里插入图片描述
    2. 填写需要新建的宠物信息,点击“发送”即可发送请求并查看返回结果:

    在这里插入图片描述

    1. 点击下方“Request” tab 即可查看实际发送的数据:

    在这里插入图片描述
    4. 点击“Response”下的“原始报文”,即可查看接口返回的“报文原始内容”
    在这里插入图片描述

    四、保存为用例

    “运行”接口后,建议点击右上方“保存为用例”,方便下次直接使用。

    在这里插入图片描述


    在线分享

    在 API 开发、沟通、协作中,逻辑上是以 API 文档为标准的,但实际操作中,存在以 Word、PDF 格式的文件传来传去的问题。为此我们提倡以 在线文档 的形式,提高团队之间的沟通效率

    分享在线文档

    在软件界面左侧,就可以设置当前项目的在线文档

    在这里插入图片描述
    点击新建分享,就可以根据需要,设置分享的信息内容:

    • 文档语言
    • 访问密码
    • 分享在线文档的日期
    • 分享范围:可以选择项目全部,也可以选择部分接口,也可以根据标签维度导入
    • 运行环境:可以选择运行的环境,和显示对应的前置 URL。选择后,分享出去的在线接口文档支持运行调试
    • 可以显示接口文档对应的责任人、修改时间、前置 URL
      在这里插入图片描述
      在这里插入图片描述

    测试管理

    测试用例

    测试用例是将多个接口有序地组合在一起运行,用来测试一个完整业务流程。

    新建测试用例

    路径:自动化测试-测试用例

    点击新建测试用例,根据需要新建一个测试用例。

    在这里插入图片描述
    在这里插入图片描述

    添加测试步骤

    选中某个测试用例,进入编辑页面。

    在这里插入图片描述
    在测试用例的编辑页面,把鼠标移动到添加步骤上,会展示菜单。

    在这里插入图片描述
    添加用例有两种方式:从接口导入和从接口用例导入 (推荐)

    • 从【接口】导入:根据接口参数自动生成一个用例,其参数值为空,需要手动填写。
    • 从【接口用例】导入:有两种模式复制和绑定。将接口用例以复制的方式导入,接口用例里的参数也会一同复制过来,和原来用例数据相互独立,各自改动后互不影响。将接口用例以绑定的方式导入,会直接引用原来的用例,两边的改动都会相互实时同步。

    从接口导入后,需要手动设置接口参数,否则运行的时候,接口参数是空的。

    从接口用例导入后,会同步导入接口用例里的参数,会方便很多。

    从接口用例导入例图

    在这里插入图片描述

    从接口导入例图

    在这里插入图片描述

    导入成功后,一定要记得点击保存哦。

    在这里插入图片描述

    导入的 接口 或 接口用例 在测试用例中作为一个 测试步骤 。测试步骤 是引用了 接口 或 接口用例,

    复制 测试步骤,是复制一个已经设置了绑定模式的 测试步骤

    运行测试用例

    点击运行,则进入自动化测试。
    在这里插入图片描述

    测试报告

    运行完成后,如图所示,可以看到哪些接口没有通过测试,可以点击对应的接口展开详情;点击更多详情,可以查看该接口的运行结果,方便定位问题。

    在这里插入图片描述
    在这里插入图片描述

    运行结束后可以从下面两个入口,查看之前的测试报告,也可以导出。
    在这里插入图片描述


    测试套件

    测试套件为测试用例的集合,每个测试套件包含多个测试用例。

    主要用途:

    • 实现测试用例的复用。
    • 业务流程复杂时,可避免将所有步骤都写在单个用例里,防止造成单个用例里的步骤过多,难以管理。

    测试数据

    测试用例和测试套件支持测试数据集。当用例或套件运行时,系统会循环运行数据文件里所有的数据集,并且会将数据集里的数据赋值给对应的变量。

    • 每个数据集可包含多个变量,接口运行时 使用变量 的地方会读取对应的值(变量优先级:临时变量 > 测试数据变量 > 环境变量 > 全局变量)。
    • 可创建多个数据集,系统会遍历运行所有的数据集(每个数据集都会被运行一次)。
    • 数据集云端同步,成员之间共享测试数据。
    • 可根据不同环境设置不同的数据集。

    性能测试

    性能测试有 3 种方式。

    一、Apifox 应用内测试

    在这里插入图片描述
    运行测试用例的时候,设置线程数大于1即可实现性能测试。

    线程数即同时【并发】运行的线程数,每个线程都会按顺序运行选中的所有步骤。

    二、Apifox CLI 方式测试

    Apifox CLI 是 Apifox 的命令行运行工具,主要用来做持续集成和压力测试,其压力测试功能目前正在开发中,敬请期待!

    三、导出 JMeter 测试

    测试用例和测试套件可以导出JMeter格式数据,然后可以导入 JMeter 做性能测试。


    一键直达

    API 文档、API 调试、API Mock、API 自动化测试工具推荐

    在这里插入图片描述

  • 相关阅读:
    学生DW静态网页设计——html+css+javascript+jquery+bootstarp马尔代夫旅游响应式网站
    LabVIEW中NIPackageManager功能介绍
    假期学生休闲用什么蓝牙耳机?高配置蓝牙耳机推荐
    ARM通用中断控制器GIC之中断控制
    编程码风汇总
    log4j CVE-2021-44228 RCE漏洞复现
    5、超链接标签
    json数据和文件操作
    【Unity】【VR开发疑难】Unity运行就报无法启动XR Plugin
    (附源码)计算机毕业设计SSM健身房管理系统
  • 原文地址:https://blog.csdn.net/yangshangwei/article/details/126919055