Ai接口测试速成
本文最后更新于50 天前,其中的信息可能已经过时,如有错误请发送邮件到kirasu@qq.com

AI接口测试速成

【黑马程序员AI接口测试3小时速成,零基础从接口概念到客达天下系统Apifox+DeepSeek接口测试实战全流程】https://www.bilibili.com/video/BV1gfJQzYEj9?p=5&vd_source=b0ea651d3ca7dbb50ab7d09d807bb409

一、基本概念

1、接口

1、接口(API)是什么?

接口:全称是Application Programming Interface,中文翻译为应用程序编程接口

作用:给前端与后端提供交互数据的通道

步骤:

1、打开浏览器,按F12/fn+F12

2、切换到“Network”(网络)面板

3、勾选Preserve log(保留日志)

2、什么是接口测试?

测试对象: 测试API(应用程序编程接口)本身。

测试内容: 测试数据的交换、传递、状态管理是否正确。

测试重点: 关注服务器端的业务逻辑是否正确。

  • 接口测试是绕过UI,直接验证服务器逻辑的测试。
  • 它具有更早、更快、覆盖度更广的核心价值。
  • 遵循需求分析->用例设计->脚本编写->执行->报告的标准流程。

3、接口测试的标准化流程

  • 需求分析
    • 阅读接口文档
    • 理解业务逻辑
  • 用例设计
    • 设计测试用例
    • 正常、异常、边界
  • 脚本编写/录制
    • 使用工具(如:Apifox)
    • 编写或录制测试脚本
  • 测试执行
    • 执行测试脚本
    • 缺陷管理
  • 生成报告
    • 分析测试结果输出报告

4、什么是 API 文档?

API 文档是描述应用程序接口(API)如何使用的说明书,

用于指导开发者理解和调用 API。

谁来编写?

通常由后端开发工程师(架构师)设计,也可能由技术文档工程师或前后端

协作完成。

主要内容:

1.接口基本信息(名称、路径、请求方法);

2.请求参数(参数名、类型、是否必填、说明、示例);

3.响应数据(字段名、类型、说明、成功 / 失败示例);

4.认证方式(如 Token、APIKey);

5.错误码及含义;

6.调用示例(curl 或代码片段)。

2、接口测试软件

Apifox

案例 实战:创建项目并发送第一个请求

1.点击“新建项目”,输入项目名称“Itheima001”,点击创建。

2.在项目内,点击“新建接口”。

3.在中间工作区,请求方法选择GET,输入URL: http://hmshop-test.itheima.net/ 。

4.点击蓝色的“发送”按钮

特点:Apifox = Postman + Swagger + Mock + JMeter

应用:① 创建团队 ② 创建项目 ③ 创建请求

3、请求详解

QueryBodyHeader参数

信封 (Headers): 寄件人、收件人、邮票信息。

信纸 (Body): 写信的具体内容。

附言 (Query): 写在信封背面的PS备注。

Query Body Header
位置 URL中 请求体内 请求头部
常用方法 GET POST, PUT ALL
作用 过滤、查询 提交数据 元数据、认证
可见性

1、Query参数:附在URL上的“附加说明

位置: 位于URL问号?之后。

格式: 键=值 pairs,多个参数用&连接。name=张三&age=18

作用: 用于GET请求,向服务器传递过滤、分页、排序等轻量级参数

特点:拼接在 URL 后,速度快,长度受限,适合简单数据

Apifox位置: “Params” 选项卡

例:

/search.html?q=小米

/search.html?q=%E5%B0%8F%E7%B1%B3

“小” 的 UTF-8 编码为0xE5 0xB0 0x8F,对应 URL 编码为%E5%B0%8F

“米” 的 UTF-8 编码为0xE7 0xB1 0xB3,对应 URL 编码为%E7%B1%B3

2、Body参数:请求的“主体内容”

位置: 在请求内部,不会显示在URL中。

格式: 最常用的是JSON,也可以是form-data、xml等。

作用: 用于POST、PUT等请求,提交大量数据,如创建用户、登录、下单。

类型:

Json:结构化数据格式,支持复杂嵌套,常用于 API 交互,放在请求体

form-data:可传文件和键值对,数据分隔传输,无严格长度限制。

• x-www-form-urlencoded:键值对用 & 连接,URL 编码格式,适合简单表单数据

Apifox位置: “Body” 选项卡。

3、Header参数:关于请求的“元数据

位置: 在请求的头部,描述请求本身的信息

作用: 定义如何处理请求和响应,如内容类型、认证信息、客户端类型等。

特点: 与业务数据无关,是关于数据的数据(元数据)。

Content-Type: application/json (告诉服务器Body的格式)

Authorization: Bearer xxxx (身份认证令牌)

案例:重现一个登录请求

获取验证码接口:

  • 方法:get
  • url:http://kdtx-test.itheima.net/api/captchaImage

登录接口:

  • 方法:post
  • url:http://kdtx-test.itheima.net/api/login
  • 请求体类型:application/json
  • 参数:{“username”:“admin”,“password”:“HM_2023_test”,“code”:“2”,“uuid”:”图片验证码响应结果获取”}

4、断言

1、什么是断言?

断言:是判断实际测试结果预期结果是否一致的检查点,不一致则标记为失败

  • 断言就是预先设置好的预期结果
  • 测试执行时,工具会将实际响应与预期结果进行比对。
  • 比对成功则用例通过,失败则用例不通过

2、断言类型

  • 状态码断言: 验证HTTP状态码(如200成功,401未认证,404未找到,500服务器错误)。
  • 响应体断言: 验证响应正文内容(最常用、最强大)。
  • 响应头断言: 验证响应头中的字段(如Content-Type)。
  • 响应时间断言: 验证请求耗时是否在允许范围内(性能测试)。

使用JSONPath进行响应体断言:

JSONPath 表达式通过类似 XPath 的语法定位 JSON 中的数据,核心语法规则如下:

  • $ 表示根节点
  • . 用于访问子节点(如 $.data.name)
  • [] 用于访问数组元素(如 $.list[0] 取第一个元素,$..id 递归匹配所有 id)
    • 匹配所有元素(如 $.data.* 匹配 data 下所有子节点)

状态码断言是基础,JSONPath响应体断言是主力。

5、变量

环境变量: 作用于特定环境(如测试、预发布、生产)。最常用,用于管理不同环境的配置(如hostname)和流程数据(如token)。

全局变量: 作用于整个项目,所有环境共享。用于定义一些固定值。

案例 实现登录uid自动获取

获取验证码接口:-> uid

  • 方法:get
  • url:http://kdtx-test.itheima.net/api/captchaImage

登录接口:

  • 方法:post
  • url:http://kdtx-test.itheima.net/api/login
  • 请求体类型:application/json
  • 参数:{“username”:“admin”,“password”:“HM_2023_test”,“code”:“2”,“uuid”:”图片验证码响应结果获取”}

变量解决了接口之间的数据依赖问题,是自动化的基石。
核心流程: 提取 (后置操作) -> 引用 ({{varname}})。
环境变量用于管理不同环境的配置和流程数据,是实现专业测试的核心。

二、操作

1、接口关联与提取:自动处理Token、课程ID

案例 删除课程

  • 调用图片验证码接口,提取uid
  • 调用登录接口,提取token
  • 调用查询课程列表接口,提取课程id
  • 调用删除接口,删除指定id课程

2、数据库操作

为什么接口测试还需要查数据库?

接口测试验证的是逻辑正确性(请求-响应过程是否成功)。

数据库验证验证的是数据正确性(数据是否按预期准确持久化)。

两者结合,才能构成完整的测试闭环。

3、Mock神器:前后端并行开发与测试的基石

一个常见的研发困境

1.前端开发: “我页面写好了,就等接口了!”

2.后端开发: “数据库设计还没完,再等等…”

3.测试工程师: “我…我该测啥?”

1、什么是Mock?

演员(前端)在绿幕(Mock服务器)前表演。

导演(测试/前端)可以要求绿幕呈现任何背景(返回任何响应)。

Mock:就是模拟一个真实对象的行为。

在接口测试中,即模拟一个真实的服务器接口,返回预设的响应数据。

2、Mock的三大核心作用

  • 解除阻塞: 前端无需等待后端接口完成,即可对接调试;测试可提前编写测试用例。
  • 模拟异常: 轻松模拟各种异常场景(如服务器错误500、网络超时、返回空数据),测试前端兼容性和鲁棒性。
  • 隔离测试: 当某个下游接口不稳定时,可Mock它返回稳定数据,从而隔离并测试自身服务的逻辑。

实战:在Apifox中为“查询课程列表”创建Mock

  • 步骤一:设置mock
    • 找到“查询课程列表”接口。
    • 点击选项卡中的“Mock”。
    • 点击“新建Mock”,输入Mock名称。
    • 在“返回响应”中,手动编写或直接粘贴一份成功的JSON响应数据(可从文档中复制)。
  • 步骤二:使用mock
    • 创建成功后,Apifox会生成一个独特的Mock URL。
    • 复制这个Mock URL。
    • 打开一个新的浏览器标签页,直接访问这个URL,观察浏览器中返回了完整的JSON数据。
    • 打开Postman或一个新的Apifox请求,用这个Mock URL替换原来的真实URL,发送请求,同样能收到模拟数据。
  • 进阶技巧:使用Mock.js智能生成数据
    • 将 “name”: “测试开发提升课01” 改为 “name”: “@ctitle(5, 10)” (随机生成中文标题)
    • 将 “price”: 899 改为 “price”: “@integer(100, 2000)” (随机生成100-2000的整数)

3、总结

Mock用于模拟后端接口的响应。

其核心价值在于解除依赖、并行工作、模拟异常。

在Apifox中,可以轻松地为任何接口创建Mock规则,并生成一个可共享的Mock URL

4、测试场景

1、什么是测试场景?

测试用场景是一个容器,用于将多个独立的测试用例组织在一起。

它可以定义用例的执行顺序。

它可以实现用例间的数据传递(通过变量)

一键执行,生成统一的测试报告

2、为什么要使用测试场景?

  • 实现自动化测试流程
    • 将多个接口串联,模拟真实用户操作流程,实现端到端(E2E)自动化测试。
  • 高效组织测试资产
    • 按功能模块(如“课程管理”、“合同管理”)或测试类型(如“冒烟测试”、“回归测试”)分类管理用例,清晰易维护。
  • 生成聚合报告
    • 执行后生成一份完整的测试报告,清晰展示整个业务流程的通过情况,便于分析。

实战:创建“课程管理业务流程”场景

  • 在项目中,切换到“自动化测试”模块。
  • 点击“新建测试场景”。
  • 点击“添加步骤”,将之前创建好的“图片验证码”“用户登录”、“查询课程列表”、“新增课程”等接口用例添加进来。
  • 通过拖拽调整它们的顺序为:1.图片验证码 ->2. 用户登录 -> 3.查询课程列表-> 4.新增课程 ->5.删除课程。

实战:运行用例集并查看报告

  • 点击用例集右上角的“运行”按钮。
  • 观察Apifox自动依次执行每一个用例。
  • 执行完成后,自动弹出测试报告。
  • 在报告中,可以清晰看到每个用例的执行状态(成功/失败)、耗时、以及每一步的请求响应详情。

3、总结

测试场景是组织、管理和批量执行测试用例的容器。

它能串联业务流程,实现端到端自动化。

它能生成统一的测试报告,便于结果分析。

5、Runner与定时任务

搭建企业级自动化测试流水线

1、什么是Apifox Runner?

Runner是一个可以部署在独立服务器上的自动化程序(通常以Docker容器形式存在)。

它负责接收来自Apifox客户端的任务,并真正执行它们。

它将测试执行环境与个人工作环境分离,保障了测试的稳定性和连续性。

2、为什么使用Runner?

  • 稳定性
    • 环境稳定: 在纯净、统一的服务器环境中执行,避免个人电脑环境差异导致的问题。
  • 效率
    • 24小时可触发: 支持定时任务,可以在凌晨自动运行回归测试,第二天上班直接查看结果。
  • 能力
    • 扩展能力强: 可以配置数据库连接、外部脚本等,完成更复杂的测试场景(如执行前清理测试数据)。

实战:在服务器上部署Runner

  • 在Apifox桌面端,进入“团队资源” -> “通用Runner”。
  • 点击“部署通用Runner”,复制生成的Docker运行命令。
  • (概念演示)在一台Linux服务器的终端中,粘贴并执行该命令。
  • 命令执行成功后,在Apifox客户端点击刷新,看到Runner状态变为“已启动”。

实战:创建定时回归测试任务

  • 在“自动化测试”选项卡下,找到“定时任务”,点击“新建定时任务”。
  • 任务设置: 输入名称,如“每日凌晨回归测试”。
  • 测试场景: 选择之前创建好的“课程管理核心流程”等测试用例集。
  • 运行周期: 设置为“每天”,选择时间(如凌晨2:00)。
  • 运行于: 这是关键! 在“运行于”下拉列表中,选择刚刚部署好的自托管Runner。
  • 通知: 配置邮件通知,选择“仅当失败时”。

效果验证:查看定时任务报告

  • 等待定时任务执行时间过后(或手动触发一次执行),进入“定时任务”的“运行结果”列表。
  • 点击查看最新一次的执行报告。
  • 报告清晰展示了测试通过率、每个步骤的耗时和状态。
  • 检查邮箱,查看是否收到失败的测试通知

3、最佳实践与思路升华

环境隔离: 为测试、预生产等不同环境部署独立的Runner,避免相互干扰。

任务分类: 创建不同的定时任务,如“快速冒烟测试”(每1小时)和“全量回归测试”(每日凌晨)。

持续反馈: 将测试结果通知集成到团队聊天工具(如钉钉、飞书),实现质量信息透明化。

4、总结

Apifox Runner是一个部署在服务器上的执行引擎,保障了测试的稳定性和可用性。

定时任务功能让我们可以按需(每天、每周)或定时触发测试执行。

两者结合,构成了无人值守的自动化测试体系,是持续集成(CI)中至关重要的一环。

6、AI解读文档与设计测试点

1、案例

  • 实战一:让AI快速解读复杂JSON响应
    • 请扮演一名资深测试工程师,帮我分析以下JSON响应结构。请逐一说明每个字段的含义,并指出哪些字段可能为空(null),哪些是核心业务字段。

字段分析说明

  1. 核心业务字段(不可为空)
  • idnamecodeprice:业务唯一标识和关键属性。
  • totalrows:响应数据的核心结构。
  1. 可能为空的字段
  • subjectapplicablePerson:取决于业务逻辑,可能无值。
  • info:描述信息可能为空(例如未填写描述时返回空字符串或null)。
  1. 技术字段
  • code(响应码)、msg(消息):用于接口调用的状态反馈,永远非空。
  1. 业务逻辑字段
  • isDelete:软删除标志(通常为01),用于逻辑删除而非物理删除。

测试建议

  • 验证核心字段(如 idname)是否始终非空且类型正确。
  • 检查可能为空的字段(如 info)在业务场景下的返回值(空字符串、null或不返回)。
  • 测试 isDelete 字段的边界值(01)及其对业务逻辑的影响。
  • 确认 subjectapplicablePerson 字段的业务含义及为空时的处理逻辑。
  • 实战二:让AI进行测试点发散

    • 基于登录接口API描述,现在请为‘登录’这个接口设计全面的测试点。请包括:正常流程、边界值、异常场景。输出:将测试点汇总表格输出
  • 实战三:针对单个参数进行深度分析

    • 一个接口参数叫‘uuid ’,描述是‘生成验证码接口 ’。请为我设计针对这个参数的测试点。

2、定位

AI负责发散,提供大量可能性和思路。

人类负责收敛,基于业务逻辑和风险判断,筛选、修正和最终采用这些测试点。

你永远需要对最终的测试质量负责,AI只是辅助工具

7、AI生成Apifox测试脚本

1、什么是Apifox可执行脚本?

它是一种JSON格式的文件,明确定义了请求的所有部分和断言。

它可以被Apifox直接导入,瞬间生成一个配置完整的测试用例。

它是连接“想法”和“执行”的桥梁。

实战:为“用户登录”接口生成脚本

  • “请严格按照Postman Collection v2.1格式生成一个完整的JSON集合,用于用户登录接口测试。具体要求:
  • 接口信息:
  • 名称:用户登录
  • 方法:POST
  • 路径:/api/login
  • Body:{“username”: “manager”, “password”: “123456”, “code”: “2”, “uuid”: “{{$guid}}”}
  • 格式要求:
  • 所有JSON字符串内的双引号必须正确转义(使用反斜杠”)
  • 包含基础URL变量({{baseUrl}})
  • 测试脚本中包含状态码200和响应体code字段等于200的断言
  • 输出要求:
  • 必须是完整、语法正确的JSON
  • 不包含任何注释或多余内容
  • 确保所有特殊字符正确转义
  • 请生成可直接导入Postman的完整集合文件的json,json要放到代码块中。”

实战:导入脚本并验证效果

  • 全选并复制DeepSeek生成的json,保存为json文件
  • 在Apifox的接口用例页面,点击“导入”,选择“Postman”,将json文件拖拽进去。
  • 点击“导入”,观察界面上瞬间出现了一个新的、所有配置都已完成的测试用例。

2、你的新角色:AI脚本工程师的“总监”

  • 你的工作: 提出清晰、无歧义的需求指令(Prompt);审核与验证AI生成的脚本。
  • AI的工作: 承担繁重的、格式化的代码编写工作。
  • 最终,你依然是质量的最终负责人。

3、总结

  • DeepSeek可以根据自然语言描述,生成可直接导入Apifox的可执行JSON脚本。
  • 这实现了从测试设计到测试实现的跨越式自动化。
  • 测试工程师的角色向需求定义和质量审计升级
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇