AI接口自动化测试的学习

AI接口自动化测试的学习
摘要本文详细记录了使用 AI 辅助完成一个博客系统接口自动化测试项目的全过程。从准备工作准备接口文档和测试用例模板开始到利用 AI 生成项目架构、分阶段编写公共层、配置与测试数据、接口封装层、测试用例层再到执行入口与全链路验证最后介绍了如何通过 Postman MCP Server 实现 AI 驱动的接口测试。文章重点展示了如何通过提示词工程引导 AI 完成各阶段编码任务并分享了在开发过程中遇到的接口文档不一致、断言多样性、Allure 报告叠加等典型问题的排查与解决思路为读者提供了 AI 辅助接口自动化测试的完整实践参考。这里是基于我虚拟机上部署的一个项目叫做博客系统来进行接口自动化的实现的一.准备工作首先我们想要实现AI接口自动化测试我们首先想到的是进行接口测试首先想到的就是接口测试的测试代码的编写首先我这里提前准备好了两个文件一个是博客系统接口测试用例模板用来规范AI生成的测试用例还有个是博客系统接口文档这样AI就知道你的接口内容会基于你的接口内容来进行生成接口自动化测试的代码这个接口文档就是提前用postman去发送请求然后进行撰写的现在我们让AI根据这两个文档来生成对应的测试用例提示词这里我们用的是trae因为不是什么大项目直接就是用国内免费的工具了trae好的模型要排队所以这里直接用Claude code来完成任务了等到后面进行postman来进行mcp操作时再来利用trae的免费模型这样应该可以完成任务这里完成的还是很快的非常不错这里因为.md文件不好看 在编译器里面我们这里下载一个可以很好看到.md文件的一个软件但是他有15天的免费试用够我们使用了下载地址Typora——简单却强大的Markdown阅读器。下载这个的时候记得挂梯子这样才能进行下载下载完成后这样我们看到的文件就是有序的表格也是可视化的可以用来检查AI哪些可能的接口写错了我对比了下postman 他确实有几点写错了提示词如下有几个问题需要修改 1.博客列表页获取成功的话是这样的格式 成功示例返回值 json { code: SUCCESS, errMsg: , data: [ { id: 133808, title: jmeter测试标题, content: jmeter测试内容, userId: 1, deleteFlag: 0, createTime: 2025-08-04 22:57, updateTime: 2025-08-04 22:57, loginUser: false }, { id: 133815, title: jmeter????002, content: jmeter????002, userId: 1, deleteFlag: 0, createTime: 2025-08-05 11:48, updateTime: 2025-08-04 22:57, loginUser: false } ] } 2.在博客增加页修改下请求体信息 请求体 json { content: 博客标题, title: 博客内容 } 3.获取博客详情的接口正确返回值写错了修改一下 成功示例返回值 { code: SUCCESS, errMsg: , data: { id: 133814, title: jmeter????002, content: jmeter????002, userId: 1, deleteFlag: 0, createTime: 2025-08-05 11:45, updateTime: 2025-08-05103:45:27.00000:00, loginUser: true } }二.生成项目架构我们这里提示词要注意一下接口依赖因为我们后面所得到的比如说登录凭证都是从登陆时返回的data数据得到的所以我们测试别的接口的时候要获得这个use_token_header根据接口测试用例.md文件内容直接输出接口自动化目录结构即可不需要创建项目代码或文件技术栈要求1. 编程语言Python2. 测试框架pytest3. HTTP 库requests4. 数据驱动YAML5. 报告Allure6. 接口返回值断言jsonschema7. logging日志记录日志分级输出按天分割其他设计要求1. 其他接口需要在请求头添加有效token但是token值来自于登录接口的返回值data2. 其他接口中有效的blogId取自列表页接口getList的有效返回值id这是他生成的第一版的有几点不符合我的要求还要进行修改先让他进行修改我再看看他现在之前所写 我就觉得像一个要求文件而不是项目架构还不如直接写出要求.md了这样还能将每个步骤划分一下这样AI可以更好的根据阶段性任务完成开发这是我提交到远程仓库的最终版本的要求.md:要求.md · zy/AI接口自动化测试 - 码云 - 开源中国1.阶段1这样接下来我们先让AI来实现阶段一的任务2.阶段2这里已经写好了依赖库有我们可以让他提升下版本并推送到远端仓库3.阶段34.阶段4fixture的补充阶段1 的验收三.公共层的编写1.阶段1 日志库的编写并编写gitignore来忽略一些日志文件和中间文件2.阶段23.阶段3这里在阶段三完成后调试的时候发现接口一直报错我以为是网页崩溃了没想到是跟我给的接口文档有点不符合这里让他重新看看接口然后修改了要求接口测试的复习这里是直接通过json格式的请求体发送请求的而不是参数这里使用参数会报错所以有什么我们的接口文档编写过程中可能出错了后面还得重新验证一下4.阶段45.阶段五这里直接让AI把阶段二剩下的全部实现了四.配置 测试数据 JSON Schema:遇到接口测试文档与实际的不一致导致要求.md也错误了进行全面的修改这里要注意的是这里涉及到了测试数据那么就要让AI严格按照之前设计的测试用例来完成测试数据的编写但是前面有一步我们接口测试文档有误接口返回的数据和响应的数据有点不一致对其进行了修改但是接口测试用例的一些接口数据还没有修改这里我们修改一下并且重新参照1.阶段1 全局配置文件的编写2.阶段2 环境配置文件的编写3.阶段3加载配置文件的编写4.编写 6 个 YAML 测试数据文件这里我就不进行验证了因为之前已经让AI全面审查代码了和之前的接口与接口测试用例应该没有错误5.编写 6 个 JSON Schema 文件6.完成剩下的任务并验收五.接口封装层apis/:1.编写 apis/login_api.py:2.apis/blog_api.py:3.apis/user_api.py:六.测试用例层的编写1.编写 testcases/test_login.py10 条用例解决每次执行pytest时allure-reports会自动叠加的问题2.编写 testcases/test_blog_list.py6 条用例遇到的问题还是接口返回的时候居然有多样性有个执行用例没通过貌似是断言不一致的原因3.编写 testcases/test_blog_add.py10 条用例遇到的问题仍然是接口文档与实际API返回的结果不同的问题完成对接口文档测试用例的整体性修复yaml文件的作用4.编写 testcases/test_blog_detail.py9 条用例:上面完成了修改现在进行的就很顺利了一次就通过没有报错5.编写 testcases/test_user_info.py6 条用例6.编写 testcases/test_author_info.py9 条用例七.执行入口 全链路验证:1.run_tests.py的编写值得称赞的点这个模块是可以运行以上单独的模块如果想单独运行一个模块的话可以使用这里提供的命令并且还可以按照优先级来运行就是根据测试用例的优先级来使用一下看到这里还是非常可以的列举了一下常用的命令2.全链路验证生成allure报告的命令遇到的问题allure报告打开是这样的有问题修复下现在是这个命令直接一步到位完成了对运行加生成测试报告八.Postman-mcp-server:1.什么是mcpMCP即模型上下文协议Model Context Protocol (MCP)是当前AI领域的热门概念。MCP 是一种开放标准和协议旨在规范人工智能模型如 ChatGPT 与外部数据源、工具和系统之间的通信方式。简单来说可以把 MCP 理解成 “大模型和外部世界交流的翻译官”。大模型像 GPT 这种本身只会根据输入文字来回答问题。但是如果我们希望模型能去“干活”比如• 查数据库• 打开一个网站• 运行一个自动化脚本• 调用 API 获取实时数据等等就需要一种统一的“沟通协议”让模型能知道哪些功能能用、怎么调用、结果怎么传回来这个协议就是 MCP。那么有没有可以操控postman来干活的协议有的那就是postman-mcp-serverdelano/postman-mcp-server: An MCP server that provides access to Postman.Postman MCP Server 是一个MCP 服务器它与 Postman API 集成提供对 Postman 集合collections、环境environments 和 API 的全面管理。2.使用前的环境搭建首先你的电脑中要有这两个东西这个是用来安装mcp的安装完这两个还要去安装pnpm有了npm下载pnpm就是一个命令的事这两个都是包管理工具可以问AI两者的区别安装命令通过npm安装npm install -g pnpm-g命令代表全局安装这样就显示安装完成了接下来去下载postman-mcp-server的源码git clone https://github.com/delano/postman-mcp-server.gitcd postman-mcp-server安装依赖pnpm install构建服务器pnpm run build我们现在还要在postman中设置APIKey注意这里postman的APIkey只有第一次你能看到后面直接是密文了所以要妥善保管接下来我们要配置mcp了这里就是我们需要添加配置的东西添加mcp的话这里我直接让AI帮我配置好了然后并告诉他这个mcp server只能在当前项目下使用其中进行的过程有些不顺利有BUG所以这里他给出了解决方案3.使用AI进行postman的操作这里就要依靠接口间的依赖这里想要运行整个集合而不是单个的接口就要进行接口的依赖和配置这里就简单介绍下后面我还会补充一个mcp接口自动化的实战