引言:Prompt=AI工程师源代码
本文将以Playwright为执行引擎,结合DeepSeek等AI助手,从最基础的登录功能出发,逐步建立一个完整的Prompt构建体系,并完成购物车的自动化测试。
在AI辅助测试时代,Prompt不仅仅是提示词,更是自动化脚本的源代码。尤其是在Web UI测试中,Prompt的设计质量,决定了测试脚本的可用性、可维护性和复用性。
实战案例
一、Prompt五要素结构 🧠
构建有效Prompt,需明确以下五要素:
-
1. 🎯 目标:告诉AI你想实现什么,如“生成一个登录测试用例” -
2. 🔧 上下文:给出项目结构、API、页面元素等背景 -
3. 🧱 结构指令:明确输出形式,如"请返回完整Python代码" -
4. 🧪 样例参考:给出已有代码作为模版或对齐对象 -
5. 🧩 约束条件:如不可使用XPath、需使用async风格
✅ 示例Prompt结构:
你是一个Web自动化专家。请基于Playwright生成测试用例,目标是测试登录功能。
要求:
- 使用Python sync风格
- 用户名输入id为#user-name,密码为#password
- 登录按钮id为#login-button
- 成功登录后跳转到/inventory.html
二、从登录功能入门:你的第一个测试Prompt
Prompt输入:
基于Playwright生成登录测试,目标网站是 https://www.saucedemo.com。
用户名和密码分别填入ID为#user-name和#password,点击#login-button,登录后验证跳转URL为/inventory.html。
AI输出脚本:
# test_login.py
def test_login_success(page):
page.goto("https://www.saucedemo.com")
page.fill("#user-name", "standard_user")
page.fill("#password", "secret_sauce")
page.click("#login-button")
assert "/inventory.html" in page.url
三、进阶Prompt:截图 + 日志 + 异常输出
Prompt输入:
增加异常截图和失败日志输出,如果登录失败保存截图并抛出自定义异常。
AI输出示例:
import pytest
def test_login_with_log(page):
try:
page.goto("https://www.saucedemo.com")
page.fill("#user-name", "standard_user")
page.fill("#password", "secret_sauce")
page.click("#login-button")
assert "/inventory.html" in page.url
except AssertionError:
page.screenshot(path="reports/login_fail.png")
raise Exception("登录失败,已截图")
四、构建复杂Prompt:购物车测试全流程
Prompt输入:
生成一个添加商品到购物车的测试用例,要求:
- 商品按钮ID为#add-to-cart-sauce-labs-backpack
- 添加后购物车徽章应为1
- 点击购物车后页面应展示商品名为"Sauce Labs Backpack"
生成结果:
# test_cart_basic.py
def test_add_to_cart(page):
page.goto("https://www.saucedemo.com")
page.fill("#user-name", "standard_user")
page.fill("#password", "secret_sauce")
page.click("#login-button")
page.click("#add-to-cart-sauce-labs-backpack")
assert page.locator(".shopping_cart_badge").inner_text() == "1"
page.click(".shopping_cart_link")
assert page.locator(".inventory_item_name").inner_text() == "Sauce Labs Backpack"
五、Prompt技巧总结 🧰
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


