写自动化难的不是“会不会”,而是:
项目一多,POM 结构乱、用例模板不统一、后期维护成本爆炸。
本篇我们直接解决一个“工程级”问题:
✅ 如何让 AI 按你的规范,自动生成 Page Object + 测试用例模板
一、真实痛点:POM 写着写着就“形态各异”
在实际项目中,你很可能见过这些情况:
-
• 页面类命名随意(LoginPage、login_page、pageLogin) -
• 定位器散落在测试文件中 -
• 有的页面 3 个方法,有的 30 个 -
• fixture / setup 风格不统一 -
• 新人根本不知道“该怎么写才算对”
👉 问题本质不是技术,而是「缺统一结构」。
二、AI 介入的正确姿势
我们不是让 AI“随便写”,而是:
把结构规范当作 Prompt 的一部分
让 AI 成为:
✅ POM 结构生成器
✅ 样板代码生成器
✅ 测试模板统一出口
三、目标效果(最终你会得到什么)
给 AI 一份输入:
页面:登录页 + 商品页
功能:登录 → 加购 → 结算
它输出:
project/
├─ pages/
│ ├─ base_page.py
│ ├─ login_page.py
│ ├─ inventory_page.py
│ └─ cart_page.py
├─ tests/
│ ├─ test_login.py
│ └─ test_order_flow.py
└─ conftest.py
✅ 结构统一
✅ 命名规范
✅ 可直接运行
四、项目基础结构(先统一认知)
推荐标准结构(Python + Playwright)
project/
│
├─ pages/ # POM 页面对象
│ ├─ __init__.py
│ ├─ base_page.py
│ ├─ login_page.py
│ └─ inventory_page.py
│
├─ tests/ # 测试用例
│ ├─ test_login.py
│ └─ test_checkout.py
│
├─ conftest.py # pytest fixtures
└─ requirements.txt
👉 后面的 Prompt 都会强制 AI 遵守这个结构。
五、核心:让 AI“按你想要的结构写代码”
✅ 标准 Prompt 模板(强烈建议收藏)
你是一名资深自动化测试工程师。
请使用 Python + Playwright + Pytest,
为 https://www.saucedemo.com/ 生成 UI 自动化代码,要求:
【结构要求】
1. 使用 Page Object Model(POM)
2. pages 目录只存页面类,每个页面一个类
3. 测试逻辑只存在于 tests 目录
4. 定位器统一集中在页面类中
5. 页面类只包含业务方法,不写断言
6. 测试文件负责断言
7. 所有类和方法添加清晰注释
【目录结构必须如下】
- pages/base_page.py
- pages/login_page.py
- pages/inventory_page.py
- tests/test_login.py
【功能需求】
1. 登录页面:standard_user / secret_sauce
2. 登录成功后跳转 inventory 页面
3. 做基础断言
【输出要求】
请直接输出完整 Python 代码文件内容,
并标明文件名。
六、调用 DeepSeek API(完整可执行)
✅ 与上一篇教程可直接复用
import os
import requests
API_KEY = os.getenv("DEEPSEEK_API_KEY")
API_URL = "https://api.deepseek.com/chat/completions"
prompt = """(粘贴上面的 Prompt 模板)"""
def call_deepseek(prompt):
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
data = {
"model": "deepseek-chat",
"messages": [{"role": "user", "content": prompt}],
"temperature": 0.2
}
r = requests.post(API_URL, headers=headers, json=data)
r.raise_for_status()
return r.json()["choices"][0]["message"]["content"]
if __name__ == "__main__":
content = call_deepseek(prompt)
print(content)
七、AI 输出示例(精简版)
pages/base_page.py
class BasePage:
def __init__(self, page):
self.page = page
def open(self, url):
self.page.goto(url)
pages/login_page.py
from pages.base_page import BasePage
class LoginPage(BasePage):
USERNAME = "#user-name"
PASSWORD = "#password"
LOGIN_BTN = "#login-button"
def login(self, username, password):
self.page.fill(self.USERNAME, username)
self.page.fill(self.PASSWORD, password)
self.page.click(self.LOGIN_BTN)
tests/test_login.py
from pages.login_page import LoginPage
def test_login_success(page):
login = LoginPage(page)
login.open("https://www.saucedemo.com/")
login.login("standard_user", "secret_sauce")
assert "inventory" in page.url
✅ 已是 完全合格的 POM 项目起点
八、进阶:让 AI 一次生成「多页面 + 用例模板」
你可以继续让 AI 输出:
-
• cart_page.py -
• checkout_page.py -
• test_order_flow.py
👉 非常适合:
-
• 新项目初始化 -
• 多人协作统一规范 -
• 培训新人
九、最佳实践总结(非常重要)
✅ Prompt 里 必须写结构约束
✅ 输出要求“完整 .py 文件”
✅ 人负责 Review,不盲目粘代码
✅ 把 AI 当“高级代码生成器”,不是架构师
十、这一套方案适合谁?
✅ 已用 Playwright,但项目不规范
✅ 想推广 POM,但落地困难
✅ 希望 AI 真正进入测试开发流程
✅ 带团队 / 做企业级自动化的人
十一、下一篇可以继续写什么?
你这套体系,已经天然可以继续拓展:
-
• 🔥 AI 自动生成测试前置 / 清理逻辑(setup / teardown) -
• 🔥 AI 生成断言 & 校验点 -
• 🔥 AI 自愈定位器(多 locator + 回退策略) -
• 🔥 AI 代码 Review 自动化
如果觉得本教程和本公众号对你有帮助,还请 点个赞,关个注,下次更新不迷路!

