mcpField
B
browserstack

browserstack

github.com/alirezarezvani测试与质量28.9k1.6k 次安装2 天前更新
代码仓库

关于 browserstack

用于配置 Playwright 并在 BrowserStack 云端网格运行测试、查看各浏览器结果的技能,适合需要跨浏览器和设备测试的团队。BrowserStack MCP 服务需手动注册,之后相关命令和工具才能使用。

主要功能

  1. 01配置 Playwright 以连接 BrowserStack
  2. 02在多个浏览器项目中运行测试
  3. 03查看构建和会话结果
  4. 04列出兼容的浏览器与操作系统
  5. 05通过隧道设置本地测试

适用场景

  1. 01在云端浏览器运行 Playwright 测试套件
  2. 02查看会话视频和日志
  3. 03测试防火墙后的 localhost

MCP 相关

使用 BrowserStack MCP 工具检查套餐和浏览器可用性、获取构建与会话、更新会话状态及读取日志。该服务不会自动注册,必须手动配置。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alirezarezvani/claude-skills --skill browserstack

安装后在 Claude Code 中输入/browserstack确认已加载。

详细介绍

BrowserStack 集成

在 BrowserStack 云端网格上运行 Playwright 测试,进行跨浏览器和跨设备测试。

前提条件

必须设置环境变量:

  • BROWSERSTACK_USERNAME — 你的 BrowserStack 用户名
  • BROWSERSTACK_ACCESS_KEY — 你的访问密钥

如果未设置,请告知用户如何从 browserstack.com/accounts/settings 获取these,并停止操作。

BrowserStack MCP 服务未自动注册(issue #978)。 pw-browserstack 已从插件的 .mcp.json 中移除,因为它对所有用户都无法连接(插件不包含 node_modules)。下文使用的 browserstack_* MCP 工具以及 /pw:browserstack 命令,在手动启用之前都会因“tool not found”而失败,具体参见插件 CLAUDE.md 中的 Integrations 部分(cd integrations/browserstack-mcp && npm install,然后在你自己的用户/项目 MCP 配置中注册该服务)。仅设置环境变量是不够的。

功能

1. 配置 BrowserStack
/pw:browserstack setup

步骤:

  1. 检查当前的 playwright.config.ts
  2. 添加 BrowserStack connect 选项:
// Add to playwright.config.ts
import { defineConfig } from '@playwright/test';

const isBS = !!process.env.BROWSERSTACK_USERNAME;

export default defineConfig({
  // ... existing config
  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,
          }))}`,
        },
      },
    },
  ] : [
    // ... local projects fallback
  ],
});
  1. 添加 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. 获取最新构建的会话
  3. 对每个会话:
    • 状态(通过/失败)
    • 浏览器和操作系统
    • 持续时间
    • 视频 URL
    • 日志 URL
  4. 整理为汇总表格
4. 检查可用浏览器
/pw:browserstack browsers

步骤:

  1. 调用 browserstack_get_browsers MCP 工具
  2. 筛选兼容 Playwright 的浏览器
  3. 显示可用的浏览器/操作系统组合
5. 本地测试
/pw:browserstack local

用于测试位于防火墙后的 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 仪表板视频/截图的链接
  • 高亮显示特定浏览器的失败项

评论

支持 Markdown