mcpField
Q
Qa Use

Qa Use

本地服务
github.com/desplega-ai开发工具2922 周前更新

关于 Qa Use

qa-use 是一款用于浏览器自动化和 E2E 测试管理的 QA 命令行工具,与 desplega.ai 服务集成。它面向需要编写、运行和维护端到端测试的开发者与测试人员。除命令行外,它还提供 MCP 服务,便于 AI 助手调用浏览器测试能力。

主要功能

  1. 01基于 YAML 文件定义和运行 E2E 测试
  2. 02通过元素引用进行交互式浏览器控制
  3. 03支持本地与云端测试的同步
  4. 04检查与检查计划的远程管理
  5. 05Claude Code 插件与技能集成

适用场景

  1. 01在 CI/CD 流程中运行端到端测试
  2. 02在拉取请求中验证功能是否正常
  3. 03调试页面元素并录制浏览器操作为测试

MCP 相关

qa-use 提供 MCP 服务(qa-use mcp),支持 stdio 和 HTTP/SSE 两种传输方式,向 Claude Desktop、VS Code Copilot、Cursor 等 AI 助手暴露浏览器自动化与测试工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"qa-use": {
"command": "npx",
"args": [
"-y",
"@desplega.ai/qa-use-mcp"
],
"env": {
"QA_USE_API_KEY": "<QA_USE_API_KEY>"
}
}
}
}
启动命令npx -y @desplega.ai/qa-use-mcp
需要配置的环境变量
QA_USE_API_KEY密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@desplega.ai/qa-use-mcp

工具

13

收录的工具列表 · 更新于 3 周前

参数类型必填说明
apiKeystring否desplega.ai 的 API 密钥(如果已设置 QA_USE_API_KEY 环境变量,则为可选)

详细介绍

qa-use

用于浏览器测试和 E2E 测试管理的 QA 自动化 CLI。

npm version License: MIT

QA-Use 演示

快速开始

# Install globally
npm install -g @desplega.ai/qa-use

# Or use with npx
npx @desplega.ai/qa-use setup

开始使用

1. 设置
qa-use setup                    # Configure your API key
qa-use test init                # Initialize test directory with example
2. 创建第一个测试

创建 qa-tests/login.yaml:

name: Login Test
app_config: your-app-config-id
steps:
  - action: goto
    url: /login
  - action: fill
    target: email input
    value: [email protected]
  - action: click
    target: login button
  - action: to_be_visible
    target: dashboard
3. 运行测试
qa-use test run login           # Run single test
qa-use test run --all           # Run all tests

CLI 参考

测试命令
命令描述
qa-use test init使用示例初始化测试目录
qa-use test run <name>按名称运行测试
qa-use test run --all运行 qa-tests/ 中的所有测试
qa-use test list列出本地测试
qa-use test list --cloud列出云端测试
qa-use test validate <name>验证测试语法
qa-use test sync --push将本地测试推送到云端
qa-use test sync --pull将云端测试拉取到本地
qa-use test export <id>将云端测试导出到本地文件

运行 qa-use test --help 查看所有选项。

文件名后缀(≥ 2.17)。 pull 会为每个云端测试写入一个文件,文件名格式为 ${safe-name}-${short-id}.yaml,其中 ${short-id} 是测试 UUID 的前 8 个十六进制字符。测试名称在组织内可能会按设计发生冲突,因此该后缀可确保云端每一行记录都对应一个本地文件。如果你从较早版本升级,下次 pull 会将带后缀的新文件写入已有的旧版无后缀文件旁边——qa-use 会为每个孤立文件打印一行 Legacy file: … 提示,且绝不会自动删除。检查旧文件的 id: 字段;确认其不再承载重要数据后,手动将其删除。

浏览器命令

用于测试开发和调试的交互式浏览器控制:

qa-use browser create                  # Start browser session
qa-use browser goto https://example.com
qa-use browser snapshot                # Get element refs like [ref=e3]
qa-use browser click e3                # Click by element ref
qa-use browser fill e5 "hello"         # Fill input field
qa-use browser run                     # Interactive REPL mode
命令描述
qa-use browser create启动浏览器会话
qa-use browser goto <url>导航到 URL
qa-use browser snapshot获取页面元素引用
qa-use browser click <ref>按引用点击元素
qa-use browser fill <ref> <value>填写输入字段
qa-use browser screenshot <path>保存屏幕截图
qa-use browser run交互式 REPL 模式
qa-use browser close关闭浏览器会话
qa-use browser status --list列出所有进程中的活动会话

运行 qa-use browser --help 查看完整的 29 个浏览器命令列表。

隧道和维护命令

当目标为 localhost 且 API 位于远程时,browser create 会自动建立隧道。对于独立隧道(或跨进程注册表检查),请使用 qa-use tunnel:

qa-use tunnel start http://localhost:3000 --hold   # Hold a public tunnel
qa-use tunnel ls                                   # List active tunnels
qa-use tunnel status <target|hash>                 # Detail for one entry
qa-use tunnel close <target|hash>                  # Force-release a tunnel
qa-use doctor                                      # Reap stale sessions/tunnels
qa-use doctor --dry-run                            # Preview what would be reaped
命令描述
qa-use tunnel ls列出注册表中的活动隧道
qa-use tunnel status <target>显示单个隧道的详情
qa-use tunnel close <target>强制释放隧道(终止脱离终端运行的持有进程)
qa-use doctor清理过期会话/隧道(已退出的 PID)

注意: qa-use tunnel * 是 CLI 端的跨进程隧道注册表,不同于 qa-use mcp tunnel,后者是 MCP 模式下的持久隧道封装器(见下文)。

API 命令

通过实时 OpenAPI(/api/v1/openapi.json)提供动态 API 访问,并在无法获取时回退到本地缓存。

qa-use api ls                             # List endpoints from live/cached OpenAPI
qa-use api /api/v1/tests                  # Call endpoint (method inferred)
qa-use api -X POST /api/v1/tests-actions/run --input body.json
qa-use api ls --refresh                   # Force refresh OpenAPI cache
qa-use api ls --offline                   # Use cached OpenAPI only
命令描述
qa-use api ls列出 OpenAPI 中的 /api/v1/* 端点
qa-use api <path>向端点发送 API 请求
qa-use api ... --refresh强制刷新 OpenAPI 规范
qa-use api ... --offline不联网,使用缓存的规范

如果无法获取实时规范,qa-use 会回退到上次缓存的规范,并打印缓存过期警告。

检查和检查计划

远程 API 检查和计划是 CLI 的一等资源。它们直接调用 desplega.ai API;计划运行完全在远程执行,不会创建浏览器会话。

qa-use check list --app-config <app-config-id> --q login
qa-use check info <check-id>

qa-use check create \
  --name "Auth token" \
  --app-config <app-config-id> \
  --config auth-check.json \
  --alias auth \
  --capture token=$.access_token

qa-use check-schedule create \
  --name "Claims chain" \
  --app-config <app-config-id> \
  --cron "*/15 * * * *" \
  --check <auth-check-id> \
  --check <claim-check-id>

qa-use check-schedule run <schedule-id> --var env=staging --var claim_id=123
qa-use check-schedule delete <schedule-id> --force
qa-use check delete <check-id> --force

目前还没有独立的 qa-use check run <check-id> 命令,因为公共 API 目前提供的是计划运行,而非单个检查运行操作。完整工作流请使用 qa-use docs checks,当前检查负载约定请使用 qa-use api info /api/v1/checks -X POST。

设置命令
命令描述
qa-use setup交互式配置(API 密钥、基础 URL 等)
qa-use info显示当前配置
qa-use install-deps安装 Playwright 浏览器

测试定义格式

测试是包含描述用户交互步骤的 YAML 文件:

name: Checkout Flow
app_config: your-app-id
variables:
  email: [email protected]
depends_on: login-test          # Optional dependency
steps:
  - action: goto
    url: /cart
  - action: click
    target: checkout button
  - action: fill
    target: email input
    value: $email
  - action: to_be_visible
    target: order confirmation

支持的操作:

类别操作
导航goto、go_back、go_forward、reload
输入fill、type、click、hover、press、check、uncheck、select_option
等待wait_for_selector、wait_for_timeout、wait_for_load_state
断言to_be_visible、to_have_text、to_have_url、to_contain_text、to_be_checked
高级ai_action、ai_assertion、extract_structured_data

完整的测试定义指南请参阅 SETUP.md。

配置

环境变量
QA_USE_API_KEY=xxx              # Required: Your desplega.ai API key
QA_USE_REGION=us                # Optional: "us" or "auto" (default)
配置文件

也可以在项目根目录创建 .qa-use.json,或在主目录创建 ~/.qa-use.json:

{
  "$schema": "https://qa-use.dev/cli-schema.json",
  "api_key": "your-api-key-here",
  "region": "us"
}

优先级(优先使用排在前面的项):

  1. 环境变量
  2. 当前目录中的 .qa-use.json
  3. 主目录中的 ~/.qa-use.json
变量描述默认值
QA_USE_API_KEY用于身份验证的 API 密钥(必需)
QA_USE_API_URLAPI 端点https://api.desplega.ai
QA_USE_APP_URL应用 URLhttps://app.desplega.ai
QA_USE_REGION区域(us 或 auto)auto
QA_USE_DEFAULT_APP_CONFIG_ID默认应用配置(取自 API 密钥)
QA_USE_FORCE_HEADLESS值为真(1/true/yes/on)时,会强制每次启动浏览器都设置 headless=true,并对任何明确请求有头模式(--no-headless、--headful、defaults.headless: false)报错。(未设置)

CI/CD 集成

基础 GitHub Actions
# .github/workflows/e2e.yml
name: E2E Tests

on: [push, pull_request]

jobs:
  e2e:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Run E2E Tests
        env:
          QA_USE_API_KEY: ${{ secrets.QA_USE_API_KEY }}
        run: |
          npm install -g @desplega.ai/qa-use
          qa-use test run --all --download

      - name: Upload Results
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: e2e-results
          path: /tmp/qa-use/downloads/
使用 Claude Code 验证 PR

将 qa-use 插件与 Claude Code 搭配使用,自动验证 PR:

# Add from the marketplace
claude plugin marketplace add desplega-ai/qa-use

# Then install the plugin
claude plugin install [email protected]

# Verify a feature works
/qa-use:verify "the login form accepts valid credentials"

# Verify PR changes
/qa-use:verify-pr

包括 AI 辅助测试生成在内的高级 CI 工作流,请参阅 SETUP.md。

Claude Code 插件

qa-use 包含一个 Claude Code 插件,用于 AI 辅助测试工作流:

# Add from the marketplace
claude plugin marketplace add desplega-ai/qa-use

# Then install the plugin
claude plugin install [email protected]

# Install the skill
npx skills add https://github.com/desplega-ai/qa-use --skill qa-use

可用技能:

技能描述
/qa-use:verify <description>通过浏览器自动化验证功能是否正常运行
/qa-use:verify-pr使用自动化浏览器测试验证 PR 变更
/qa-use:explore交互式浏览网页
/qa-use:record将浏览器操作录制为测试定义
/qa-use:test-run运行 E2E 测试
/qa-use:test-validate验证测试语法

MCP 服务

为集成 AI 助手(Claude Desktop、VS Code Copilot、Cursor 等),qa-use 提供了具备完整浏览器自动化能力的 MCP 服务。

qa-use mcp                      # Start stdio server (default)
qa-use mcp --http               # Start HTTP/SSE server
qa-use mcp tunnel               # Start persistent tunnel mode

完整的 MCP 服务文档请参阅 MCP.md,其中包括:

  • 主流 AI 助手的客户端配置
  • 用于 Web 集成的 HTTP 传输模式
  • 用于后端发起测试的隧道模式
  • 完整的 MCP 工具参考

开发

git clone https://github.com/desplega-ai/qa-use.git
cd qa-use
bun install
bun run build
bun run dev

注意: 本项目使用 bun 作为包管理器。

开发指南请参阅 CONTRIBUTING.md。

文档

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。