【人工智能学习260612-软件测试篇】小工具实现 [特殊字符] Prompt工程 + RAG思路 + API调用 + 自动化测试

把前面的能力真正串起来,做一个"更像工具"的版本👇

✅ 输入接口文档

✅ 自动生成测试用例(给人看)

✅ 自动生成 pytest 脚本(可执行)

✅ 自动跑测试 + 出报告

而且我会控制在:一个脚本 + 可直接跑


✅ 一、最终效果(你会得到什么)

你只需要准备一个文件:

👉 api_doc.txt

写你的接口文档,比如:

复制代码
接口名称:登录接口
地址:https://api.xxx.com/login
方法:POST
请求头:Content-Type: application/json
参数:
{
  "username": "string",
  "password": "string"
}
规则:
- 密码错误提示
- 连续5次失败锁定

然后执行:

复制代码
python run_ai_test.py

👉 自动生成:

  • ✅ test_cases.txt(测试用例)
  • ✅ test_api.py(测试脚本)
  • ✅ report.html(测试报告)

✅ 二、完整代码(轻量但够用)

直接复制用👇

python 复制代码
import subprocess
from openai import OpenAI

client = OpenAI(api_key="你的API_KEY")

# ====== 读取接口文档 ======
with open("api_doc.txt", "r", encoding="utf-8") as f:
    api_doc = f.read()

# ====== 1. 生成测试用例 ======
case_prompt = f"""
你是一名资深测试工程师,请基于以下接口文档生成测试用例:

{api_doc}

要求:
1. 覆盖正常、异常、边界场景
2. 包含参数校验
3. 输出清晰结构(标题 + 步骤 + 预期结果)
"""

case_resp = client.chat.completions.create(
    model="gpt-5.4",
    messages=[{"role": "user", "content": case_prompt}]
)

test_cases = case_resp.choices[0].message.content

with open("test_cases.txt", "w", encoding="utf-8") as f:
    f.write(test_cases)

print("✅ 测试用例已生成")

# ====== 2. 生成pytest代码 ======
code_prompt = f"""
你是一名测试开发工程师,请基于以下接口文档生成pytest代码:

{api_doc}

要求:
1. 使用 requests + pytest
2. 包含正常和异常测试
3. 必须包含断言
4. 代码可直接运行
5. 不要解释,只输出代码
"""

code_resp = client.chat.completions.create(
    model="gpt-5.4",
    messages=[{"role": "user", "content": code_prompt}]
)

test_code = code_resp.choices[0].message.content

# 防止AI返回 ```python 代码块
test_code = test_code.replace("```python", "").replace("```", "")

with open("test_api.py", "w", encoding="utf-8") as f:
    f.write(test_code)

print("✅ 测试脚本已生成")

# ====== 3. 执行测试 ======
subprocess.run("pytest test_api.py --html=report.html", shell=True)

print("✅ 测试完成,报告:report.html")

✅ 三、你已经实现了什么(很关键)

这个小工具本质是:

👉 Prompt工程 + RAG思路 + API调用 + 自动化测试

你已经覆盖了:

  • ✅ Prompt(生成用例)
  • ✅ RAG(基于文档生成)
  • ✅ API(调用AI)
  • ✅ 自动化测试(pytest)

✅ 四、可以立刻加的3个升级(很简单但很加分)


✅ 升级1:多接口支持(推荐)

api_doc.txt 改成:

👉 一个文件多个接口(用分隔符)

比如:

复制代码
===接口1===
...

===接口2===
...

然后循环生成


✅ 升级2:自动总结测试报告(很实用)

执行完 pytest 后加一步:

python 复制代码
with open("report.html", "r", encoding="utf-8") as f:
    report = f.read()

summary_prompt = f"""
请总结以下测试报告结果,给出:
1. 通过情况
2. 失败原因分析
3. 是否建议上线

{report[:3000]}
"""

👉 自动变汇报材料


✅ 升级3:让代码更"工程化"

在 prompt 里加一句:

👉

"请按分层结构生成(base + test)"


✅ 五、你现在处在什么水平(实话)

做到这一步你已经不是:

👉 "会用AI的人"

而是:

👉 能用AI做工具的人


✅ 如果你还想再往上走一步(我建议)

下一步可以做👇

👉 ✅ 做一个简单UI(输入文档→点按钮→出报告)

👉 ✅ 或接入你们测试流程(CI/CD)


相关推荐
霸道流氓气质12 分钟前
Spring AI异常处理与重试机制
java·人工智能·spring
在所不辞兄20 分钟前
【零基础学智能仿真-07】随机森林——用多棵树获得更稳定的力学预测
人工智能·深度学习·神经网络·机器学习·工程技术
Tom·Ge1 小时前
【AI前沿】2026.08.17 SpaceX 600亿收购Cursor正式完成·DeepSeek V4 Pro万亿开源·人形机器人生态全面爆发
人工智能·大模型·ai前沿
郑州光合科技余经理2 小时前
本地生活服务系统:成品模块和定制接口怎么划界
java·前端·人工智能·后端·系统架构·php·ai编程
2603_965148112 小时前
家居百货蓝海:API挖掘高复购率生活小商品
大数据·服务器·人工智能·python·生活
2501_930472442 小时前
踩坑|CodeBuddy权限配置:AI误删文件、乱跑命令、.env泄露怎么防
人工智能·ai编程
小淮AI5 小时前
从“刷题”到“追问”:AI课堂正在重塑哪些学习旧习惯?
人工智能·学习
cui_ruicheng6 小时前
LangChain 应用开发(十四):Agent 上下文与记忆机制
服务器·人工智能·python·langchain
飞哥数智坊6 小时前
直播半小时,我聊了聊 Agent 最常见的 3 个疑问
人工智能
wixzjsh7 小时前
TCP通信与HTTP协议学习笔记:粘包、三次握手、四次挥手与C/S、B/S模型
学习·tcp/ip·http