BrowserStack
BrowserStack 集成
在 BrowserStack 的云端网格上运行 Playwright 测试,以进行跨浏览器和跨设备测试。
前提条件
必须设置以下环境变量:
BROWSERSTACK_USERNAME— 您的 BrowserStack 用户名
BROWSERSTACK_ACCESS_KEY— 您的访问密钥
如果未设置,请告知用户如何从 browserstack.com/accounts/settings 获取,并停止操作。
功能能力
1. 配置 BrowserStack
/pw:browserstack setup步骤:
1. 检查当前的 playwright.config.ts
2. 添加 BrowserStack 连接选项:
// 添加到 playwright.config.ts
import { defineConfig } from '@playwright/test';
const isBS = !!process.env.BROWSERSTACK_USERNAME;
export default defineConfig({
// ... 现有配置
projects: isBS ? [
{
name: "chromelatestwindows-11",
use: {
connectOptions: {
wsEndpoint: wss://cdp.browserstack.com/playwright?caps=${encodeURIComponent(JSON.stringify({
'browser': 'chrome',
'browser_version': 'latest',
'os': 'Windows',
'os_version': '11',
'browserstack.username': process.env.BROWSERSTACK_USERNAME,
'browserstack.accessKey': process.env.BROWSERSTACK_ACCESS_KEY,
}))},
},
},
},
{
name: "firefoxlatestwindows-11",
use: {
connectOptions: {
wsEndpoint: wss://cdp.browserstack.com/playwright?caps=${encodeURIComponent(JSON.stringify({
'browser': 'playwright-firefox',
'browser_version': 'latest',
'os': 'Windows',
'os_version': '11',
'browserstack.username': process.env.BROWSERSTACK_USERNAME,
'browserstack.accessKey': process.env.BROWSERSTACK_ACCESS_KEY,
}))},
},
},
},
{
name: "webkitlatestos-x-ventura",
use: {
connectOptions: {
wsEndpoint: wss://cdp.browserstack.com/playwright?caps=${encodeURIComponent(JSON.stringify({
'browser': 'playwright-webkit',
'browser_version': 'latest',
'os': 'OS X',
'os_version': 'Ventura',
'browserstack.username': process.env.BROWSERSTACK_USERNAME,
'browserstack.accessKey': process.env.BROWSERSTACK_ACCESS_KEY,
}))},
},
},
},
] : [
// ... 本地项目回退配置
],
});
3. 添加 npm 脚本:"test:e2e:cloud": "npx playwright test --project='chrome@*' --project='firefox@*' --project='webkit@*'"
2. 在 BrowserStack 上运行测试
/pw:browserstack run步骤:
1. 验证凭据是否已设置
2. 使用 BrowserStack 项目运行测试:
BROWSERSTACK_USERNAME=$BROWSERSTACK_USERNAME \
BROWSERSTACK_ACCESS_KEY=$BROWSERSTACK_ACCESS_KEY \
npx playwright test --project='chrome@*' --project='firefox@*'3. 监控执行情况
4. 按浏览器报告结果
3. 获取构建结果
/pw:browserstack results步骤:
1. 调用 browserstack_get_builds MCP 工具
2. 获取最新构建的会话(sessions)
3. 针对每个会话:
- 状态(通过/失败)
- 浏览器和操作系统
- 持续时间
- 视频 URL
- 日志 URL
4. 格式化为汇总表格
4. 检查可用浏览器
/pw:b步骤:
1. 调用 browserstack_get_browsers MCP 工具
2. 筛选兼容 Playwright 的浏览器
3. 显示可用的浏览器/操作系统组合
5. 本地测试
用于测试 localhost 或防火墙后的预发布环境:
1. 安装 BrowserStack Local:
npm install -D browserstack-local
2. 在配置中添加本地隧道
3. 提供设置指南
使用的 MCP 工具
| 工具 | 适用场景 |
|---|---|
|
browserstack_get_plan | 检查账户限制 |
| browserstack_get_browsers | 列出可用浏览器 |
| browserstack_get_builds | 列出最近的构建 |
| browserstack_get_sessions | 获取构建中的会话 |
| browserstack_get_session | 获取会话详情(视频、日志) |
| browserstack_update_session | 标记通过/失败 |
| browserstack_get_logs` | 获取文本/网络日志 |
输出内容
- 跨浏览器测试结果表
- 每个浏览器的通过/失败状态
- 指向 BrowserStack 控制面板的视频/截图链接
- 高亮显示特定浏览器的失败项