使用说明
以下是一个 结构清晰的提示 你可以将(使用Copilot或类似助手的)指令输入到你的Playwright MCP服务器中,以便它生成完全符合你需求的框架:
带有Copilot的Playwright MCP服务器提示符
您是专家级的Playwright端到端测试自动化助手。 生成一个 Playwright端到端测试框架 与;带着;用 页面对象模型(POM) 遵循以下规格。
🎯 一般指南
-
环境处理
- 管理生产和预演环境
env.config.ts。 baseUrl必须从……中挑选playwright.config.ts,该(系统/设备)会根据环境进行切换。
- 管理生产和预演环境
-
测试数据管理
- 将所有测试数据存储在内部的变量中
testData.ts。
- 将所有测试数据存储在内部的变量中
-
页面对象
- 为每个网页创建一个单独的类
pages/文件夹。 - 示例:
OrangeHRMLoginPage.ts用于登录页面。
- 为每个网页创建一个单独的类
-
公共事业服务/公用设施
-
创建一个
utils/用于可重用上下文和实用程序的文件夹。 -
里面
utils/,为(某物/某人)创建一个专用的子文件夹 Playwright 动作包装器 (为点击、填写、跳转等操作定制封装器)。 -
每个包装必须:
- 使用
try/catch - 记录成功/失败
- 在出现错误时截屏
- 使用
-
-
设施设备(或具体指“设施”,根据上下文可灵活翻译)
- 创造
testContext.ts用于可重复使用的测试夹具。 - 不要在规范文件中直接实例化页面——请使用固定装置(或“设置”)。
- 添加 `beforeEach()` 钩子函数 在每个规范文件中,以自动运行登录操作。
- 创造
-
文档
-
每个函数(包装器、实用工具、页面方法)都必须包含 JS 文档字符串(或注释字符串) 解释:
- 它的功能/作用
- 参数
- 返回类型
-
-
登录方法
-
正常登录工具
- 针对明确登录场景(例如,无效登录)的独立实用函数。
- 接受
username,password,和url。
-
可重用登录测试夹具
- 储存于
fixtures/文件夹。 - 用途
auth.json(储存于data/)用于会话存储。每次测试运行时都要执行全新登录(浏览器独立且可靠) - Fixture 返回一个已登录的页面对象(例如。,
getLoggedInPage或类似情况)。
- 储存于
-
-
请勿使用
- 硬编码
.waitForTimeout()或人为延迟。 - 相反,进行配置 在 playwright.config.ts 中设置全局超时。
- 硬编码
📝 测试场景1(登录测试)
特性/特点: 登录OrangeHRM 步骤:
- 导航至登录页面→
https://opensource-demo.orangehrmlive.com/web/index.php/auth/login - 输入用户名 →
Admin - 输入密码 →
admin123 - 点击登录按钮
- 通过检查文本是否存在来验证登录成功
"Dashboard"
🔄 必需的修改
-
在
OrangeHRMLoginPage.ts:- 不要将URL硬编码。
- 使用
baseUrl来自env.config.ts,通过……控制playwright.config.ts。
-
在
orangehrm-login.spec.ts:- 不要直接创建页面。
- 使用来自(某处/某供应商的)夹具
testContext.ts。
-
实现两种登录方式:
- 正常登录工具 用于显式登录测试。
- 可重用的登录测试夹具 用于基于会话的登录。
⚙️ 可交付成果
-
env.config.ts(环境配置) -
playwright.config.ts(带环境+全局超时) -
testData.ts(凭据,静态值) -
pages/OrangeHRMLoginPage.ts(登录页面的POM文件) -
utils/actionWrappers/自定义包装函数(例如,点击、填写、跳转),具备日志记录、错误处理和截图功能loginUtils.ts→ 正常登录功能
-
fixtures/testContext.ts→ 可重用的测试夹具,包括登录夹具 -
data/auth.json→ 用于记录登录状态的会话存储 -
tests/orangehrm-login.spec.ts→ 实际登录测试
👉 输出应为 TypeScript Playwright 代码 遵循上述结构。 👉 确保 模块性、可读性和可维护性。 👉 避免走捷径——所有内容都应清晰地分为工具、固定装置、页面和配置。