1. 环境准备(详细到每个小白都不会卡壳)
1.1 安装 Python(如果还没装)
推荐 Python 3.9-3.12,官网下载:Python 官网
安装好后,命令行输入:
python --version
pip --version
有正确输出即可。
1.2 安装 JupyterLab
打开命令行,输入:
pip install jupyterlab
启动 JupyterLab(默认浏览器会自动打开页面):
jupyter lab
![图片[1] - Jupyter+大模型助力测试工程师:一键提升用例、分析与自动化(保姆级全流程) - 宋马](https://pic.songma.com/blogimg/20250607/5bee9fd14317466daecf2b0fefec87a2.png)

1.3 安装大模型 SDK(以 OpenAI/DeepSeek 为例)
你需要有 DeepSeek/OpenAI 的 API Key(DeepSeek注册)。
安装依赖:
pip install openai
这里我们使用阿里云百炼大模型的deepseek。
(可选)安装 Jupyter AI 插件,支持 AI 代码自动生成:
pip install jupyter_ai
1.4 新建你的第一个 Notebook
在 JupyterLab 页面左上角点击【Python 3 Notebook】新建。
文件另存为 ai_test_demo.ipynb。
2. 配置 API 密钥与调用大模型(每一步都详细)
2.1 设置 API 密钥(安全不暴露)
在第一个单元格输入并运行:
import os
from openai import OpenAI
client = OpenAI(
# 如果没有配置环境变量,请用百炼API Key替换:api_key="sk-xxx"
# api_key='sk-xxx',
api_key='sk-712a634dbaa7444d838d20b25eb938xx', # todo 此处需更换
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
注意:不要把密钥硬编码在 Notebook 里,防止泄漏。
3. 大模型调用函数 & 单条用例体验
3.1 封装一个通用调用函数
在新单元格输入:
def call_deepseek_model(prompt,client):
"""
输入 prompt,返回大模型的回复文本
"""
reasoning_content = "" # 定义完整思考过程
answer_content = "" # 定义完整回复
is_answering = False # 判断是否结束思考过程并开始回复
# 创建聊天完成请求
completion = client.chat.completions.create(
model="deepseek-r1", # 此处以 deepseek-r1 为例,可按需更换模型名称
messages=[
{
'role': 'user', 'content': f'提示词:{
prompt}'}
],
stream=True,
# 解除以下注释会在最后一个chunk返回Token使用量
# stream_options={
# "include_usage": True
# }
)
print("
" + "=" * 20 + "思考过程" + "=" * 20 + "
")
for chunk in completion:
# 如果chunk.choices为空,则打印usage
if not chunk.choices:
print("
Usage:")
print(chunk.usage)
else:
delta = chunk.choices[0].delta
# 打印思考过程
if hasattr(delta, 'reasoning_content') and delta.reasoning_content != None:
print(delta.reasoning_content, end='', flush=True)
reasoning_content += delta.reasoning_content
else:
# 开始回复
if delta.content != "" and not is_answering:
print("
" + "=" * 20 + "完整回复" + "=" * 20 + "
")
is_answering = True
# 打印回复过程
print(delta.content, end='', flush=True)
answer_content += delta.content
return answer_content

3.2 体验一次 AI 生成
prompt = "请生成3条针对用户注册接口的边界用例,包含输入和预期输出。"
result = call_deepseek_model(prompt, client)
print(result)
效果:你会看到 AI 自动产出结构化的用例描述。

4. 用 Jupyter 批量自动生成测试用例
4.1 准备批量用例主题
test_prompts = [
"请生成5条针对登录接口正常流程的测试用例,内容结构化。",
"请生成3条针对密码找回接口的异常场景测试用例。",
"请用中英双语各写2条输入校验用例,适用于邮箱注册。"
]
4.2 批量调用并保存结果
import pandas as pd
results = []
for idx, prompt in enumerate(test_prompts):
output = call_deepseek_model(prompt, client)
results.append({
"主题": prompt, "AI生成用例": output})
df = pd.DataFrame(results)
df.to_csv("ai_testcase_batch.csv", index=False)
df
技巧:用表格保存,方便团队复用和后期维护。
![图片[2] - Jupyter+大模型助力测试工程师:一键提升用例、分析与自动化(保姆级全流程) - 宋马](https://pic.songma.com/blogimg/20250607/30e7a680e78a4a9aa164758d24326a4a.png)

5. AI 辅助生成自动化测试脚本
5.1 用 Jupyter AI 插件一步生成代码
在 Notebook 新单元格输入:
%%ai gpt-3.5 --format=code
请生成一个 pytest 测试函数,校验接口 https://api.xxx.com/login 对错误密码返回 code=401
效果:AI 会自动返回如下代码,直接可用:
import requests
def test_login_wrong_password():
url = "https://api.xxx.com/login"
data = {
"username": "testuser", "password": "wrongpass"}
response = requests.post(url, json=data)
assert response.status_code == 401
assert response.json().get("code") == 401
注意:你也可以让 AI 生成多条、不同接口、不同断言的自动化脚本,大大提升脚本开发速度。
6. 批量执行自动化用例并统计结果
6.1 执行所有 AI 生成的用例(举例)
假设你已把用例脚本存为 test_ai_api.py,在命令行运行:
pytest test_ai_api.py --maxfail=3 --disable-warnings -q
6.2 在 Notebook 中可视化结果
如果用例执行结果已收集到 DataFrame,可直接画图:
import matplotlib.pyplot as plt
result_df = pd.read_csv("ai_testcase_batch.csv") # 假设有 status 字段
# 这里演示构造数据
result_df["status"] = ["PASS", "FAIL", "PASS"]
pass_count = result_df["status"].value_counts().get("PASS", 0)
fail_count = result_df["status"].value_counts().get("FAIL", 0)
plt.bar(["PASS", "FAIL"], [pass_count, fail_count], color=["green", "red"])
plt.title("AI自动化用例执行结果统计")
plt.ylabel("用例数")
plt.show()
7. AI 辅助日志分析与异常定位
7.1 收集日志,AI 帮你归因
with open("error.log", "r") as f:
log_content = f.read()
# 让 AI 分析
prompt = f"请分析以下测试日志,列出主要异常类型和可能原因:
{
log_content}"
analysis = call_deepseek_model(prompt, max_tokens=600)
print(analysis)
8. 多语言、多格式用例自动生成
8.1 一句话让 AI 生成多语言测试内容
prompt = "请用英文和法文各写一条针对搜索接口的边界条件测试用例,结构化输出"
result = call_deepseek_model(prompt, client)
print(result)

9. 团队协作与知识沉淀
9.1 Notebook+Git 管理团队测试资产
在 JupyterLab 页面点击【Terminal】,用如下命令初始化 Git 仓库:
git init
git add .
git commit -m "初始提交:AI测试用例与自动化脚本"
推送到远程仓库,团队成员可直接拉取、复现所有流程。
9.2 用 requirements.txt 或环境导出,确保依赖一致
在终端输入:
pip freeze > requirements.txt
任何人拿到 Notebook 和 requirements.txt,
pip install -r requirements.txt
即可一键复现环境。
10. 常见问题与避坑指南
| 问题或场景 | 解决方法 |
|---|---|
| API Key 泄漏风险 | 只用 getpass 或环境变量输入,绝不明文写在 Notebook |
| 大模型调用频率限制 | 批量用例时加延时(如 time.sleep(1)),防止被限流 |
| Notebook 卡死或崩溃 | 不要单元格批量生成超大数据,分批处理/分文件保存 |
| AI 生成代码不符合预期 | 明确详细需求,补充“结构化输出”或“代码风格”等提示 |
| 团队环境不一致 | 用 requirements.txt/Conda 环境统一依赖 |
11. 进阶技巧与最佳实践
用 Papermill 自动化批量 Notebook 运行,适合定时任务、回归测试。
用 JupyterLab 插件(如 Table of Contents、Variable Inspector)提升 Notebook 可读性和可维护性。
结合 JupyterHub 或 Binder 部署团队级 Notebook 服务,无需本地安装,随时协作。
用 AI 自动生成文档、报告、知识库,让测试经验沉淀下来。
总结&行动建议
环境准备:确认 Python、JupyterLab、大模型 SDK 均装好。
API 配置安全:优先用 getpass 或环境变量。
用 Notebook 做到:AI 批量生成用例→自动化执行→一键分析结果。
团队协作:所有 Notebook、脚本、数据、环境文件统一用 Git 和 requirements.txt 管理。
持续复盘:遇到问题及时反馈优化 prompt,让 AI 成为你的生产力伙伴。
现在就打开 JupyterLab,照着本文每一步去实践,你会发现——AI + Jupyter,让测试工程师的效率和创造力直线上升!
测试自动化不是梦,智能化时代已来临。祝你成为团队最会玩的测试 AI 工程师!
补充资料
Jupyter 官方文档
Jupyter AI 项目
DeepSeek API 文档
Papermill 自动化 Notebook 运行
如需详细 Notebook 示例文件或遇到实际问题,欢迎留言交流!




















暂无评论内容