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

前两篇,我们已经分享了接口解析(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分钟/接口
10CI/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/ 层
  • 文件命名:小写字母+下划线,一个接口一个文件
  • 类名:大驼峰(如 UserAPI、UserLoginNormal)
  • 测试方法:必须以 test_ 开头,见名知意(如 test_login_success)
  • 变量名:小写+下划线,禁止单字母、禁止歧义缩写
  • 常量:全大写+下划线,集中存放于配置文件,禁止硬编码

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

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

全局健壮性:

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

统一鉴权:

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

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

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐