AI测试必学 | AI 赋能接口自动化测试系列(三):接口自动化测试脚本生成Agent Skill

在接口自动化测试的全流程中,脚本开发曾是最耗时、最考验技术功底的环节。人工编写脚本不仅要至少掌握一门编程语言,而且还要面对版本迭代快、用例量大的压力,还极易出现语法错误、场景覆盖不全、规范不统一等问题。

前两篇,我们已经分享了接口解析(api-schema-parser)和测试数据生成(api-testdata-generator)这两个Skill。

第一篇:api-schema-parser(接口解析)

  • 输入:OpenAPI/Swagger/Postman/HAR 等接口文档
  • 输出:标准化的 api_definitions.json
  • 成果:59个接口、10个功能模块的结构化定义

第二篇:api-testdata-generator(数据构造)

  • 输入:api_definitions.json 或自然语言描述
  • 输出:覆盖正向/边界/异常/安全四大维度的测试数据
  • 成果:2032条测试数据,按模块自动归档

现在,我们手握两样东西:

  1. ✅ 结构清晰的接口定义(知道每个接口要什么、返什么)
  2. ✅ 覆盖全场景的测试数据(知道测什么、怎么测)

缺什么? 缺把这些东西翻译成可执行代码的"翻译官"。

因此,今天这篇来分享——如何让 AI 基于标准化的接口定义和全场景的测试数据,批量生成符合工程规范、可直接运行的接口自动化测试脚本。这是整个 AI 赋能接口自动化链路中,工程价值最高、提效最明显的一环,让测试工程师彻底摆脱重复编码的体力劳动。

一、为什么脚本生成,是 AI 赋能接口自动化的核心环节?

很多人以为,测试用例设计完成后,脚本开发就是"照着用例一条条翻译成代码"。

实际上,这是整个自动化测试体系中工程性最强、最考验技术栈深度、最消耗人力的核心环节。

传统开发模式有多痛苦?

shop-lab 电商项目的"用户登录"接口为例,看似简单的几步操作,当你要将其转化成自动化脚本时,你需要手动完成:

步骤 工作内容 耗时估算
1 选框架、搭环境、配依赖(Requests/Pytest/Allure) 2-4小时
2 设计项目目录结构(api/testcases/data/utils/config) 1-2小时
3 封装接口请求层(处理URL/Header/Body/参数传递) 30分钟/接口
4 编写元素定位与请求组装(方法、路径、参数映射) 20分钟/接口
5 实现等待与异常处理(超时、重试、连接错误) 15分钟/接口
6 编写断言逻辑(状态码+业务码+数据字段) 20分钟/接口
7 数据驱动配置(YAML/JSON参数化绑定) 15分钟/接口
8 调试排错(定位失败、时序问题、环境差异) 30-60分钟/接口
9 代码规范化(命名、注释、分层、去冗余) 10分钟/接口
10 CI/CD集成配置(Jenkins/GitLab Pipeline) 2-4小时

一个接口脚本,熟练的工程师通常也要30-40分钟。59个接口就是约40小时(整整一周)。

而这还只是"写一遍"的时间。后续需求迭代、接口变更、脚本维护的成本更是指数级增长。

传统开发模式下,痛点分析

  • 新手门槛高:环境搭建、语法学习、框架使用,卡住一大批想转自动化的功能测试
  • 编写不规范:变量命名混乱、代码层级混乱、注释缺失、重复代码泛滥
  • 调试成本高:编码只占20%时间,80%花在反复排错上
  • 维护成本大:页面/接口一变更,脚本大面积失效,陷入"修脚本比测功能还耗时"的困境
  • 迭代跟不上:业务已经上线,自动化脚本还没写完

这也是为什么,接口脚本生成是最迫切需要 AI 赋能的环节。

AI 赋能测试脚本开发

接口自动化脚本的本质是 “发请求→传参数→验响应”,代码范式统一,这恰恰是 AI 最擅长的 “模板化输出” 场景。

相比人工开发:

  • 效率提升量级化:熟练工程师写一个接口脚本需 30 分钟,100 个接口耗时至少1~2 周;AI 批量生成仅需数分钟,效率提升超百倍;
  • 规范落地标准化:人工编码易出现命名混乱、断言缺失、目录结构不统一等问题,AI 严格遵循预设规范,输出脚本风格高度一致;
  • 场景覆盖全面化:人工易遗漏边界值、异常场景、安全测试等维度,AI 可基于测试数据自动覆盖正向、反向、边界、安全等全场景。

注:AI 生成脚本并非 “一劳永逸”,工程规范、业务逻辑校验仍需人工把关,但它能解决 80% 的重复工作,让工程师聚焦核心的业务与架构设计。

测试脚本开发智能生成是目前行业内 AI 自动化测试落地的核心主流场景之一:相较于复杂的测试策略设计,脚本开发标准化程度更高、落地成本更低、提效效果更直观,是企业落地 AI 测试、工程师实现效率升级的最优切入点之一

这也是为什么,在 AI 赋能测试的实践中,脚本生成是继用例设计之后最具落地价值的场景,因为它能直接降低自动化门槛、加速脚本产出、提升工程规范性。

但 AI+Agent Skill 赋能自动化测试脚本开发,也并非万能的,同样存在短板,比如:

  • 面对复杂业务联动、多场景交叉嵌套、并发测试、权限层级校验、特殊环境兼容等高难度场景,AI 生成的脚本极易出现逻辑漏洞、流程缺失、适配性不足等问题;

  • AI 不了解团队的个性化工程规范、迭代运维规则、CI/CD 集成要求,生成的脚本可能不符合项目落地标准,无法直接接入流水线。

  • AI 存在天然的内容幻觉问题,可能生成不存在的接口字段、无效的元素定位、错误的业务逻辑,或产出大量重复、冗余的无效代码;

因此,测试脚本开发环节引入 AI 辅助赋能,必须建立在完整的工程规范体系之上。AI 负责代码生成和工程模板套用,人负责业务逻辑校验和架构质量把关,形成"AI 生成初稿 → 工具初筛 → 人工审核修正 → 运行验证 → 落地执行"的闭环。

二、不要搞"万能Skill",要拆成"专业Skill"

很多新手容易踩的坑:想做一个"万能Skill",输入接口文档,直接输出完美脚本。

这里有一个非常重要的认知:千万不要寄希望于用一个 “万能 Skill” 解决所有问题

一个技能包揽解析、造数、生成、优化、执行,会导致逻辑臃肿、维护困难、扩展受限,也违背了 Agent Skill 设计的核心思想。

正确的做法是按职责拆分,每个Skill只做一件事(如解析、生成、校验),避免功能耦合。

比如,可以这样来拆:

Skill 核心职责 解决什么痛点
api-schema-parser 接口定义结构化解析 人工读文档慢、易遗漏、格式不统一
api-testdata-generator 测试数据智能生成 人工造数重复、边界场景覆盖不全
api-testscript-generator 自动化脚本批量生成 人工编码慢、风格不统一、规范难落地
api-test-optimizer 脚本质量检查与优化 AI幻觉导致脚本有错、场景缺失、健壮性不足
api-test-executor(后续教程) 脚本执行与结果复盘 人工执行繁琐、失败分析耗时

这5个Skill形成完整闭环解析→造数→生成→优化→执行,既能串联使用,也能独立调用。

目前本系列主要是聚焦接口脚本生成阶段工作,在接口执行阶段还会根据执行阶段的工作特性,将其拆分成 5 个专业的Agent Skill来各司其职。

接口文档(Swagger/Postman/HAR 等)
  │
  ▼
api-schema-parser ──→ 标准化接口数据 (api_definitions.json)
  │
  ├──→ api-testdata-generator ──→ 全场景测试数据
  │         │
  │         ▼
  │   api-testscript-generator ──→ 接口自动化脚本工程
  │         │
  │         ▼
  │   api-test-optimizer ──→ 脚本质量检查与优化
  │         │
  │         ▼
  │   api-test-tagger ──→ 智能标签化管理
  │         │
  │         ▼
  │   api-test-executor ──→ 智能执行调度
  │         │
  │         ├──→ api-failure-diagnoser ──→ 失败诊断与自动修复
  │         │
  │         └──→ api-pipeline-scheduler ──→ 全链路流水线调度
  │                 │
  │                 ├── api-test-executor(执行测试)
  │                 ├── api-testdata-cleaner(清理数据)
  │                 └── api-report-generator(生成报告)
  │
  └──→ 也可直接进入 generator-testcase-xmind/excel 生成接口级测试用例

可以这样说,掌握了这套Agent Skill技能组合,日常接口自动化测试工作零基础的同学也能轻松搞定。

目前这套AI测试赋能的Skill技能组合,「狂师 . AI进化社」的成员都在使用,很多同学都表示,接口自动化测试落地效率明显提升了数倍,代码基础薄弱的同学也能轻松落地自动化测试了。

三、api-testscript-generator — 接口自动化测试脚本生成

技能介绍

api-testscript-generator 基于标准化接口定义全场景测试数据,按照团队既定工程规范,批量生成符合规范、可直接运行的接口自动化测试脚本

它不是"随便写一段能跑的代码",而是生成符合团队工程标准、可直接接入现有框架、能被其他同事理解和维护的标准化测试资产。

输入:三大核心 “原料”

要让 AI 生成符合预期的脚本,需提前准备三类输入:

  • 基础原料:api_definitions.json(由api-schema-parser解析生成的标准化接口定义);
  • 数据原料:test_data/目录(由api-testdata-generator生成的全场景测试数据,含正向、边界、异常、安全数据);
  • 规则原料:团队定制的框架规范(目录结构、命名规则、断言策略、日志 / 异常处理要求)。

前置条件:先定规范,再让AI写

规范直接决定 AI 生成脚本的格式、结构、健壮性与可维护性。

比如框架选型:

  • 语言:Python 3.9+
  • 接口请求:Requests
  • 测试框架:Pytest
  • 数据驱动:YAML / JSON
  • 报告:Allure2
  • 日志:Logging

项目目录结构:

api_auto_project/
├── config/             # 环境配置、全局常量
│   ├── dev.yaml
│   ├── test.yaml
│   └── config.py
├── api/                # 接口请求层(封装所有接口)
│   └── user_api.py
├── testcases/          # 测试用例层
│   └── test_user_login.py
├── data/               # 测试数据(AI生成)
│   └── user_login_data.yaml
├── utils/              # 工具类
│   ├── logger.py
│   ├── request_util.py
│   ├── assert_util.py
│   └── token_util.py
├── reports/            # 报告输出
├── conftest.py         # Pytest全局钩子
└── pytest.ini          # Pytest配置

核心规范要求:

  • 接口只封装在 api/ 层,用例只写在 testcases/ 层,数据只放 data/
  • 文件命名:小写字母+下划线,一个接口一个文件
  • 类名:大驼峰(如 UserAPIUserLoginNormal
  • 测试方法:必须以 test_ 开头,见名知意(如 test_login_success
  • 变量名:小写+下划线,禁止单字母、禁止歧义缩写
  • 常量:全大写+下划线,集中存放于配置文件,禁止硬编码

断言策略(每条用例至少3层):

  1. 状态码断言
  2. 业务码断言
  3. 业务数据断言(字段非空、关键字段匹配、长度/格式校验)

全局健壮性:

  • 超时统一:30s
  • 自动重试:失败重试2次
  • 异常捕获:连接超时、读取超时、连接错误、代理异常、数据解析异常
  • 失败重跑:Pytest重跑1次
  • 脚本不中断:单个用例失败不影响整体执行

统一鉴权:

  • 登录接口统一获取 Token
  • 全局 headers 统一注入:Authorization: Bearer {token}
  • Token 过期自动刷新

规范是地基,Skill 是建筑工。把这些规范固化到 Skill 的系统提示词中,AI 每次生成脚本都会严格遵循。

核心处理逻辑

AI 生成脚本并非简单的 “代码拼接”,而是遵循工程化思维的全流程构建:

  1. 分层架构设计:严格按「接口层 + 用例层 + 数据层 + 工具层」生成代码,适配企业级项目结构;
    • 接口层:封装各模块接口调用(如 auth、order、product),统一处理请求头、鉴权、Token 注入;
    • 用例层:按 Normal/Exception/Boundary/Security 四类场景拆分测试用例,逻辑清晰;
    • 数据层:自动关联测试数据文件,支持 Pytest/TestNG 数据驱动;
    • 工具层:内置日志、断言、请求工具类,无需重复封装。
  2. 全维度逻辑补齐
    • 自动生成三层断言(状态码 + 业务码 + 业务数据),避免只断言状态码的低级问题;
    • 注入异常处理逻辑(超时重试、Token 过期刷新、请求失败捕获);
    • 添加 Allure 报告埋点、日志输出,适配 CI/CD 集成要求;

api-testscript-generator 的核心处理流程概况起来:

输入(api_definitions.json + test_data/ + 团队规范)
        ↓
  Step 1: 读取接口结构与参数约束
        ↓
  Step 2: 按团队目录规范生成分层项目结构
        ↓
  Step 3: 封装接口请求层(api/)
        ↓
  Step 4: 生成测试用例层(testcases/)
        ↓
  Step 5: 绑定数据驱动(data/)
        ↓
  Step 6: 补充三层断言 + 异常处理 + 鉴权逻辑
        ↓
  Step 7: 生成工具层与配置文件(utils/ + config/)
        ↓
  输出:完整可运行的接口自动化项目

上述流程,具体能力拆解

能力维度 说明 AI赋能价值
分层架构生成 config/ + api/ + testcases/ + data/ + utils/ 严格分层,禁止混用,符合工程最佳实践
语义化命名 中文模块名自动映射(认证管理→auth),方法名语义化(/api/auth/login→login()) 告别拼音命名、无意义命名
双数据模式 数据驱动模式(外部YAML/JSON数据文件)+ 内联数据模式(自动生成默认测试数据) 用户可自主选择是否提供测试数据
请求封装 自动引入Requests依赖、拼接URL、设置Header/Body/Params、处理鉴权Token注入 无需手动编写重复请求代码
四场景分类 Normal(正向)/ Exception(异常)/ Boundary(边界)/ Security(安全) 覆盖全场景,结构清晰
三层断言 状态码 + 业务码 + 业务数据(not_empty/equals/type/contains/length) 告别"只断言status_code"的敷衍
企业级健壮 30s超时、重试2次、5类异常捕获、Token自动刷新、失败重跑、Allure报告 生产级脚本,非Demo玩具
数据解耦 测试数据与脚本分离,YAML参数化绑定 数据变更无需改脚本

实战效果

场景A:提供接口定义 + 测试数据

输入 api_definitions.json + test_data/(2032条数据),输出:

  • 159个测试脚本文件

  • 59个API封装文件

  • 完整项目结构,可直接 pytest 运行

具体操作如下:

从技能列表中,选择api-testscript-generator技能。

找到上述生成好的test_dataapi_definitions.json文件目录

将接口文件和接口测试数据目录拖到对话框中,如下图所示:

等待了一会后,skill 就帮我们自动生成好了shop-lab项目完整的接口测试脚本(共157个测试脚本文件)。

项目测试脚本生成好之后,接下来,我们就可以用VSCode或PyCharm打开检查一下,还可根据测试需求,适当对测试脚本进行优化调整。

api_auto_project/
├── config/          3 文件(config.py + dev.yaml + test.yaml)
├── api/            59 文件(10 模块目录:auth/user/order/product/cart/address/captcha/banner/search/admin)
├── testcases/      59 文件(4 场景类:Normal/Exception/Boundary/Security)
├── data/           59 文件(YAML 格式测试数据)
├── utils/           4 文件(logger + request_util + assert_util + token_util)
├── conftest.py      1 文件
├── pytest.ini       1 文件
└── requirements.txt 1 文件

从执行结果以及测试脚本中可知,生成好的测试脚本和测试数据已经进行了参数化绑定:

需要注意,在利用api-testscript-generator技能生成项目测试脚本时,数据模式有两种选择:

模式 适用场景 优势
数据驱动模式(传入test_data/) 正式项目、长期维护 数据与脚本解耦,变更灵活
内联数据模式(仅传接口定义) 快速Demo、 POC验证 上手快,无需准备数据文件

从长期维护角度,强烈推荐数据驱动模式。 测试数据往往被多套脚本共享,独立的数据文件让变更可控、复用度更高。

四、脚本生成后,还要做什么?

api-testscript-generator生成的脚本虽能直接运行,但要达到企业级落地标准,还需两步关键操作:

1. 脚本质量优化

AI 生成的脚本可能存在语法小错误、断言覆盖不全、安全场景遗漏等问题,需通过api-test-optimizer进行:

  • 4 类校验(语法、规范、健壮性、逻辑);
  • 10 维度场景补齐(正向 / 必填 / 边界 / 安全等);
  • 6 大自动优化(语法修复、规范对齐、健壮性增强等)。

2. 人工审核与微调:聚焦业务逻辑

AI 无法完全替代人的业务理解,测试工程师需重点审核:

  • 业务规则覆盖(如 “已取消订单不可支付”“重复登录限制”);
  • 接口依赖关系(如购物车→下单→支付的业务流);
  • 企业定制化逻辑(如加密接口、限流规则处理)。

五、Skill 组合使用:完整的 AI 流水线

api-testscript-generator并非孤立存在,它是 AI 赋能接口自动化全链路的核心一环,串联前序和后序 Skill,就是一条接口自动化测试的 AI 流水线

接口文档(Swagger/OpenAPI/Postman)
        │
        ▼
┌─────────────────┐
│ api-schema-     │
│ parser          │  ──→  api_definitions.json(59接口结构化定义)
│ (接口解析)       │
└─────────────────┘
        │
        ▼
┌─────────────────┐
│ api-testdata-   │
│ generator       │  ──→  test_data/(2032条全场景测试数据)
│ (数据生成)       │
└─────────────────┘
        │
        ▼
┌─────────────────┐
│ api-testscript- │
│ generator       │  ──→  api_auto_project/(159个脚本文件)
│ (脚本生成)       │
└─────────────────┘
        │
        ▼
┌─────────────────┐
│ api-test-       │
│ optimizer       │  ──→  优化后脚本 + 质检报告(下一篇讲解)
│ (质量优化)       │
└─────────────────┘
        │
        ▼
┌─────────────────┐
│ 人工审核 + 微调  │
│ (业务逻辑校验)   │
└─────────────────┘
        │
        ▼
┌─────────────────┐
│ CI/CD 集成运行  │
│ (持续回归)       │
└─────────────────┘

六、项目源码与完整教程

项目完整实操教程、开发架构、设计思路(AI测试实战教程,平均每篇约3.5W字图文教程,非常详细,保姆级手把手喂饭教程,零基础也能快速上手)和项目源码(含30多个AI测试全场景Agent Skill),AI 知识库统一在「狂师 . AI 进化社」中。

目前「AI 进化社」中已经有非常多的AI 项目实战、AI测试实战保姆级教程(图文教程、视频教程)。

写在最后

api-testscript-generator能帮我们快速产出脚本,但要让脚本 “能用、好用、易维护”,核心还是测试工程师的工程思维:

  1. 规范先行:没有清晰的框架规范、命名规则,AI 生成的脚本只是 “一次性代码”;
  2. 懂框架原理:理解 Pytest 夹具、数据驱动、Allure 报告等核心逻辑,才能驾驭 AI 生成的脚本;
  3. 持续迭代:从 “基础可用” 到 “工程落地”,需逐步优化异常处理、鉴权逻辑、CI/CD 集成,让脚本适配真实业务场景。

AI 不是替代测试工程师,而是把我们从重复编码中解放出来 —— 让 AI 做 “体力活”,我们聚焦 “脑力活”,这才是 AI 赋能接口自动化的核心价值。

下一篇预告:《AI测试必学 | AI 赋能接口自动化测试系列(四):脚本质量检查与优化 Agent Skill 》——当 AI 生成的脚本存在幻觉、场景缺失、健壮性不足时,如何用自动化手段做质量把关?从4类校验到10维度场景补齐,解决 AI 生成脚本的 “不完美” 问题,敬请期待。

本文配套的实战项目源码、完整教程(含 30+AI 测试 Agent Skill),可前往「狂师 . AI 进化社」获取,零基础也能快速落地 AI 赋能的接口自动化测试体系。

posted @ 2026-06-25 09:39  狂师  阅读(75)  评论(0)    收藏  举报