以下是一个 结构清晰的提示 你可以将(使用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 代码 遵循上述结构。 👉 确保 模块性、可读性和可维护性。 👉 避免走捷径——所有内容都应清晰地分为工具、固定装置、页面和配置。
______________________________________________________________________
