🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx @anthropic-ai/skills install github/awesome-copilot/scoutqa-test

💡 提示:需要 Node.js 和 NPM

ScoutQA 测试技能

使用 scoutqa CLI 对 Web 应用程序执行 AI 驱动的探索性测试。

将 ScoutQA 视为一个智能测试伙伴,它可以自主探索、发现问题并验证功能。委托给多个并行的 ScoutQA 执行任务,以最大化覆盖率,同时节省时间。

何时使用此技能

在两种场景下使用此技能:

  1. 用户请求测试 – 当用户明确要求测试网站或验证功能时
  2. 主动验证 – 在实现 Web 功能后,自动运行测试以验证实现是否正确

主动使用示例:

  • 实现登录表单后 → 测试身份验证流程
  • 添加表单验证后 → 验证验证规则和错误处理
  • 构建结账流程后 → 测试端到端的购买流程
  • 修复错误后 → 验证修复是否有效且未破坏其他功能

最佳实践:当您完成一个 Web 功能的实现后,主动在后台启动一个 ScoutQA 测试来验证其是否工作,同时您可以继续处理其他任务。

运行测试

测试工作流程

复制此清单并跟踪您的进度:

测试进度:

  • 编写带有明确预期的具体测试提示
  • 在后台运行 scoutqa 命令
  • 告知用户执行 ID 和浏览器 URL
  • 提取并分析结果

步骤 1:编写具体的测试提示

有关指南,请参阅下面的“编写有效提示”部分。

步骤 2:运行 scoutqa 命令

重要:使用 Bash 工具的 timeout 参数(5000毫秒 = 5秒)来捕获执行详情:

在调用 Bash 工具时,设置 timeout: 5000 作为参数:

  • 这是 Claude Code 中 Bash 工具内置的超时参数(不是 Unix 的 timeout 命令)
  • 5 秒后,Bash 工具返回控制权并附带一个任务 ID,该进程继续在后台运行
  • 这与会杀死进程的 Unix timeout 不同——这里的进程会继续运行
  • 前 5 秒会从 ScoutQA 的输出中捕获执行 ID 和浏览器 URL
  • 测试会继续在 ScoutQA 的基础设施上远程运行,作为后台任务
scoutqa --url "https://example.com" --prompt "您的测试指令"

在最初几秒内,命令将输出:

  • 执行 ID(例如,019b831d-xxx
  • 浏览器 URL(例如,https://scoutqa.ai/t/019b831d-xxx
  • 显示测试进度的初始工具调用

在 5 秒超时后,Bash 工具返回一个任务 ID,命令继续在后台运行。您可以在测试运行时处理其他任务。超时仅用于捕获初始输出(执行 ID 和浏览器 URL)——测试会同时在本地作为后台任务以及在 ScoutQA 的基础设施上远程继续运行。

步骤 3:告知用户执行 ID 和浏览器 URL

在 Bash 工具返回任务 ID(已在最初 5 秒内捕获执行详情)后,告知用户:

  • ScoutQA 执行 ID 和浏览器 URL,以便他们可以在浏览器中监控进度
  • 后台任务 ID,以便他们稍后检查本地命令输出

测试在后台继续运行,您可以继续其他工作。

步骤 4:提取并分析结果

有关完整格式,请参阅下面的“呈现结果”部分。

命令选项

  • --url(必需):要测试的网站 URL
  • --prompt(必需):自然语言的测试指令
  • --project-id(可选):关联到一个项目以进行跟踪

何时使用每个命令

正在启动新测试? → 使用 scoutqa --url --prompt
代理需要更多上下文? → 使用 scoutqa send-message(参见“跟进卡住的执行”)

编写有效提示

专注于要探索和验证的内容,而不是规定性的步骤。ScoutQA 自主决定如何测试。

示例:用户注册流程

scoutqa --url "https://example.com" --prompt "
探索用户注册流程。测试表单验证的边界情况,
验证错误处理,并检查可访问性合规性。
"

示例:电商结账

scoutqa --url "https://shop.example.com" --prompt "
测试结账流程。验证价格计算、购物车持久化、
支付选项和移动端响应性。
"

示例:并行运行测试以实现全面覆盖

通过在单条消息中进行多次 Bash 工具调用来启动多个并行测试,每次调用都设置 Bash 工具的 timeout 参数为 5000(毫秒):

# 测试 1:身份验证与安全性
scoutqa --url "https://app.example.com" --prompt "
探索身份验证:登录/登出、会话处理、密码重置、
以及安全边界情况。
"

# 测试 2:核心功能(并行运行)
scoutqa --url "https://app.example.com" --prompt "
测试仪表板和主要用户工作流程。验证数据加载、
CRUD 操作和搜索功能。
"

# 测试 3:可访问性(并行运行)
scoutqa --url "https://app.example.com" --prompt "
进行可访问性审计:WCAG 合规性、键盘导航、
屏幕阅读器支持、颜色对比度。
"

实现:发送一条包含三个 Bash 工具调用的消息。对于每次 Bash 调用,将 timeout 参数设置为 5000 毫秒。5 秒后,每个 Bash 调用返回一个任务 ID,同时进程在后台继续运行。这在初始输出中捕获了每个测试的执行 ID 和浏览器 URL,然后所有三个测试(在本地作为后台任务以及远程在 ScoutQA 的基础设施上)继续并行运行。

关键指南:

  • 描述要测试什么,而不是如何测试(ScoutQA 会自行找出步骤)
  • 专注于目标、边界情况和关注点
  • 为不同的测试领域运行多个并行执行
  • 相信 ScoutQA 能够自主探索并发现问题
  • 在调用 scoutqa 命令时,始终将 Bash 工具的 timeout 参数设置为 5000 毫秒(这会在 5 秒后返回控制权,同时进程在后台继续)
  • 对于并行测试,在单条消息中进行多次 Bash 工具调用
  • 记住:Bash 工具超时 ≠ Unix timeout 命令(Bash 工具超时会在后台继续进程,Unix timeout 会杀死它)

常见测试场景

部署后冒烟测试:

scoutqa --url "$URL" --prompt "
冒烟测试:验证部署后关键功能是否正常工作。
检查首页、导航、登录/登出以及关键用户流程。
"

可访问性审计:

scoutqa --url "$URL" --prompt "
审计可访问性:WCAG 2.1 AA 合规性、键盘导航、
屏幕阅读器支持、颜色对比度和语义化 HTML。
"

电商测试:

scoutqa --url "$URL" --prompt "
探索电商功能:产品搜索/筛选、
购物车操作、结账流程和价格计算。
"

SaaS 应用程序:

scoutqa --url "$URL" --prompt "
测试 SaaS 应用:身份验证、仪表板、CRUD 操作、
权限和数据完整性。
"

表单验证:

scoutqa --url "$URL" --prompt "
测试表单验证:边界情况、错误处理、必填字段、
格式验证和成功提交。
"

移动端响应性:

scoutqa --url "$URL" --prompt "
检查移动端体验:响应式布局、导航、
触摸交互和视口行为。
"

功能验证(实现后):

scoutqa --url "$URL" --prompt "
验证新[功能名称]是否正常工作。测试核心功能、
边界情况、错误处理以及与现有功能的集成。
"

示例:在编写功能代码后主动测试

在实现用户注册表单后,自动验证其是否工作:

scoutqa --url "http://localhost:3000/register" --prompt "
测试新实现的注册表单。验证:
- 表单验证(电子邮件格式、密码强度、必填字段)
- 错误消息是否正确显示
- 成功注册流程
- 边界情况(重复电子邮件、特殊字符等)
"

这能在实现还记忆犹新时立即发现问题。

呈现结果

即时呈现(测试启动后)

在运行 scoutqa 命令后,立即向用户呈现执行详情:

**ScoutQA 测试已启动**

执行 ID:`019b831d-xxx`
实时查看:https://scoutqa.ai/t/019b831d-xxx

测试正在远程运行。您可以通过上方链接在浏览器中查看实时进度,同时我会继续处理其他任务。

最终结果(完成后)

当执行完成时,使用此格式呈现发现:

**ScoutQA 测试结果**

执行 ID:`ex_abc123`

**发现的问题:**

[高] 可访问性:Logo 图像缺少替代文本

- 影响:屏幕阅读器无法描述该 Logo
- 位置:页眉导航

[中] 可用性:提交按钮在移动视口中不可见

- 影响:用户无法在移动设备上完成表单
- 位置:联系表单,页面底部

[低] 功能性:搜索对有效查询返回无结果

- 影响:搜索功能看似损坏
- 位置:主搜索栏

**总结:** 在可访问性、可用性和功能性类别中共发现 3 个问题。请在上方 URL 处查看包含屏幕截图的完整交互式报告。

始终包括:

  • 执行 ID(例如,ex_abc123)以供参考
  • 发现的问题,包含严重性、类别(可访问性、可用性、功能性)、影响和位置

跟进卡住的执行

如果远程代理卡住或需要澄清,使用 send-message 继续:

# 示例:代理卡在登录,用户提供凭据
scoutqa send-message --execution-id ex_abc123 --prompt "
使用这些测试凭据:用户名:testuser@example.com,密码:TestPass123
"

# 示例:代理询问接下来测试哪个流程
scoutqa send-message --execution-id ex_abc123 --prompt "
接下来专注于结账流程,跳过心愿单功能
"

检查测试结果

ScoutQA 测试在 ScoutQA 的基础设施上远程运行。在通过短时超时启动测试以捕获执行 ID 后:

  1. 测试会继续远程运行(不是在本地后台)
  2. 您可以立即继续其他工作
  3. 要稍后检查结果,请访问测试启动时提供的浏览器 URL
  4. 或者,使用 scoutqa get-execution --execution-id <id> 通过 CLI 获取结果

最佳实践:通过将 Bash 工具的 timeout 参数设置为 5000 毫秒来启动测试。5 秒后,Bash 工具返回控制权和一个任务 ID 以及执行详情(执行 ID 和浏览器 URL),同时测试在后台继续运行。然后您可以继续其他工作,并在需要时在 ScoutQA 网站上或通过 CLI 检查结果。

故障排除

问题 解决方案
command not found: scoutqa 安装 CLI:npm i -g @scoutqa/cli@latest
认证过期 / 未授权 运行 scoutqa auth login
测试挂起或需要输入 使用 scoutqa send-message --execution-id
检查测试结果 访问浏览器 URL 或运行 scoutqa get-execution --execution-id

📄 原始文档

完整文档(英文):

https://skills.sh/github/awesome-copilot/scoutqa-test

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。