Jupyter+大模型助力测试工程师:一键提升用例、分析与自动化(保姆级全流程)


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+大模型助力测试工程师:一键提升用例、分析与自动化(保姆级全流程) - 宋马

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+大模型助力测试工程师:一键提升用例、分析与自动化(保姆级全流程) - 宋马

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 示例文件或遇到实际问题,欢迎留言交流!

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容