一、前言:为什么要让 AI 学会“你的测试风格”
许多团队在引入 AI 辅助编写测试脚本时,常遇到以下问题:
- • “生成的代码能跑通,但结构混乱,不符合项目规范。”
- • “每次都要手动调整命名、格式和注释,效率提升有限。”
这些问题的核心在于:AI 不理解你的“测试风格”(Testing Style & Convention)。
而真正的 AI 测试提效,并非只是“让 AI 写代码”,而是让 AI 学会并模仿你的团队风格。
这正是Prompt 工程的进阶目标:
✅ 让 AI 理解并复用你的命名习惯、代码结构、注释风格与断言逻辑
✅ 将团队经验转化为可复用的“AI 测试模板”
✅ 实现从“辅助生成”到“风格化自动输出”的跃迁
本文将带你系统构建一个风格化 AI 测试生成体系,以 DeepSeek 为例,实现真正“懂你”的自动化测试助手。
二、目标与思路:把“团队风格”变成“Prompt 模板”
要让 DeepSeek 学会你的风格,可以把整个过程拆成 3 个阶段:
| | |
|---|
| 1. 采集风格样本 | | 收集历史测试脚本(pytest/unittest/Playwright) |
| 2. 构建 Prompt 模板 | | 使用few-shot示例 +style summary提示 |
| 3. 封装生成器 | | |
三、样例场景:团队标准与原始生成对比
假设你的团队测试风格如下:
- • 断言采用 assert actual == expected 格式;
- • 变量命名简洁、英文动词开头,如 click_login_button()。
而普通 AI(默认 Prompt)生成的代码可能是这样的👇:
def login_test():
page.click('#login')
assert "Welcome" in page.text_content('#msg')
经过“风格提示强化”的 Prompt 模板,DeepSeek 输出的代码会变成:
import pytest
from pages.login_page import LoginPage
@pytest.mark.ui
def test_user_can_login_successfully(page):
"""验证用户登录功能是否正常"""
login = LoginPage(page)
login.open()
login.login("standard_user", "secret_sauce")
assert login.is_logged_in(), "登录后应跳转到主页面"
可以看到,经过 风格引导后:
四、Prompt 模板设计:从模仿到风格固化
模板结构
下面是一个适用于 DeepSeek 的风格化 Prompt 模板:
你现在是一个资深自动化测试工程师,擅长 Playwright + Pytest。
请根据下面的上下文和风格要求,生成符合我们团队规范的测试代码。
【上下文】
{{ test_description }}
{{ page_structure }}
{{ element_actions }}
【风格规范】
- 使用 pytest
- 每个测试函数以 test_ 开头
- 每个测试函数都要有中文 docstring,简短描述测试目标
- 页面对象类以 Page 结尾
- 断言使用 assert 表达式
- 变量命名应简洁、有意义
【输出格式】
```python
# 完整可执行代码
这种 Prompt 模板属于“Prompt Schema”,可以反复复用,只需要替换测试目标部分。
五、实践:构建风格化测试生成器
示例脚本:stylegen.py
importjson
fromdeepseekimportDeepSeekClient
client = DeepSeekClient(api_key="YOUR_API_KEY")
defgenerate_test_with_style(description, style_rules):
prompt =f"""
你是一名测试专家。请根据以下说明生成测试代码。
【测试说明】
{description}
【风格规则】
{style_rules}
【输出要求】
生成可运行的 pytest + playwright 测试代码,包含中文注释和断言。
"""
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role":"user","content": prompt}],
)
returnresponse.choices[0].message.content
if__name__ =="__main__":
desc ="验证用户可以正常登录 saucedemo 网站,并成功看到产品列表"
rules ="""
- pytest 风格
- 页面对象模式(POM)
- 中文注释
- assert 断言风格
"""
print(generate_test_with_style(desc, rules))
运行后,DeepSeek 会自动输出风格一致的 Python 测试文件。
六、让 AI 真正“学会你”:微调与示例积累
如果希望 DeepSeek 更贴近你团队风格,可以:
- • 将团队的约定(函数前缀、断言规则、变量风格)结构化保存;
{
"framework": "pytest",
"naming_convention": {
"test_func_prefix": "test_",
"page_class_suffix": "
age"
},
"assert_style": "assert expr, message",
"docstring_language": "zh-CN"
}
七、扩展方向
| |
|---|
| 将 style.json 转换为 Prompt 模板仓库 |
| |
| 结合 Prompt 学习测试设计模式(POM、AAA) |
| |
八、结语:Prompt 工程是 AI 测试的灵魂
Prompt 不是一次性技巧,而是测试知识的编码方式。
当你的团队积累了自己的 Prompt 模板库,就相当于拥有了一套 AI 可学习的“测试文化”。
未来,你甚至可以让 DeepSeek:
这,才是真正意义上的 AI 测试团队风格化演进。