con un clic
con un clic
Browser automation CLI for AI agents. Use for frontend development, debugging, and automated testing. Supports page navigation, DOM inspection, form interaction, keyboard shortcuts, and screenshot capture.
Develop Vue 3 frontend interfaces using Arco Design Vue component library. Strictly follow Arco Design specifications for component usage, layout, spacing, typography, and visual patterns. Use this skill when building enterprise-level Vue applications with Arco Design.
Develop Web IDE using Codeblitz (OpenSumi). Create customized IDE with WebDAV filesystem support, default layout configurations, and integrated terminal. Use this skill when building browser-based code editors.
开发规范 - 开发前规范参考 + 开发后提交前检查,必要时调用子技能进行深度验证
| name | test-case-creation |
| description | 当进行功能测试时,帮助快速分析、总结测试方法并形成结构化测试用例,方便跨项目复用 |
| license | Apache-2.0 |
帮助AI在进行功能测试时,快速分析、总结测试方法,形成结构化的测试用例文档,方便跨项目复用。
| 目标 | 说明 |
|---|---|
| 及时记录 | 测试过程中随时记录,不事后补记 |
| 可复用 | 抽象成通用步骤,避免硬编码具体项目数据 |
| 可追溯 | 记录环境、时间、版本信息 |
| 可搜索 | 分类清晰,便于快速查找 |
核心原则:当进行任何功能测试时(API测试、UI测试、E2E测试等),自动将测试过程形成结构化文档,保存到项目 tests/ 目录下,方便下次复用。
测试用例是可执行的脚本文件,保存在项目的 tests/test-cases/ 目录下:
{项目根目录}/tests/
├── run.sh # 统一运行器
├── test-cases/ # 测试用例目录
│ ├── api/ # API测试
│ │ ├── webdav-list.sh
│ │ └── compress.sh
│ ├── ui/ # UI测试
│ │ └── login.sh
│ └── performance/ # 性能测试
│ └── benchmark.sh
├── examples/ # 各类语言示例(按需)
│ ├── php/ # PHP项目示例
│ ├── go/ # Go项目示例
│ └── python/ # Python项目示例
└── reports/ # 测试报告
注意:
.sh)| 占位符 | 说明 | 示例值 |
|---|---|---|
$BASE_URL | 应用基础URL | http://localhost:8080 |
$TOKEN | 认证Token | eyJhbGciOiJIUzI1NiIs... |
$API_BASE | API基础路径 | /api/v1 |
$TEST_USER | 测试用户 | testuser |
$TEST_DATA | 测试数据 | {"name":"test"} |
$WAIT_TIME | 等待时间(秒) | 5 |
$PROJECT_DIR | 项目根目录 | /path/to/project |
测试用例支持多种认证方式:
# Header认证
-H "Authorization: Bearer $TOKEN"
# Base64编码的用户名密码
-H "Authorization: Basic $(echo -n 'user:password' | base64)"
# 常见形式
-H "X-API-Key: $API_KEY"
# 或
-H "X-Auth-Token: $API_KEY"
# Cookie
-H "Cookie: session_id=$SESSION_ID"
# Access Token (与Bearer相同)
-H "Authorization: Bearer $ACCESS_TOKEN"
# 或携带refresh_token
-d "grant_type=refresh_token&refresh_token=$REFRESH_TOKEN"
| 变量 | 说明 | 用途 |
|---|---|---|
$TOKEN | 主Token | Bearer Token认证 |
$API_KEY | API密钥 | API Key认证 |
$SESSION_ID | Session ID | Cookie认证 |
$REFRESH_TOKEN | 刷新Token | OAuth2刷新 |
$USERNAME | 用户名 | Basic Auth |
$PASSWORD | 密码 | Basic Auth |
| 认证类型 | 获取方式 |
|---|---|
| Bearer Token | 登录API返回、kubeconfig、ServiceAccount |
| API Key | 系统设置、开发者设置 |
| Session ID | 登录后Cookie |
| OAuth2 | 授权流程获取 |
| 场景 | 执行动作 |
|---|---|
| 用户要求"测试一下xxx" | 创建测试用例并执行 |
| 发现Bug需要复现 | 记录复现步骤形成用例 |
| 完成功能验证 | 总结测试方法形成文档 |
| 用户要求"查找相关测试" | 搜索已有用例 |
接收测试任务
│
▼
分析测试需求
├─ 测试类型 (API/UI/E2E/Integration/Stress)
├─ 测试优先级 (P0/P1/P2)
└─ 涉及模块
│
▼
搜索现有测试用例
│ (在项目 tests/test-cases/ 目录下搜索)
│
▼
选择模板并创建/更新用例
├─ 填写测试步骤
├─ 记录预期结果
└─ 添加验证方法
│
▼
保存到项目tests目录
│ tests/test-cases/{类型}/{模块}/{名称}.md
│
▼
更新项目索引
│
▼
输出执行摘要
每个测试用例是一个可执行的脚本文件,知识库通过注释形式包含在脚本头部:
#!/bin/bash
#========================================
# 测试用例: W7Panel登录测试
#========================================
#
# ## 测试信息
# | 项目 | 内容 |
# |------|------|
# | 测试类型 | UI |
# | 优先级 | P0 |
#
# ## 测试目的
# 验证用户登录功能
#
# ## 前置条件
# - [ ] 服务已启动
# - [ ] 验证码已禁用
#
# ## 测试步骤
# 1. 打开登录页
# 2. 填写用户名密码
# 3. 点击登录
# 4. 验证跳转
#
# ## 预期结果
# - 登录成功,跳转到首页
#
#========================================
# 测试代码开始
BASE_URL="${BASE_URL:-http://localhost:8080}"
agent-browser open "$BASE_URL"
# ...
注意:知识库以 # 注释开头,使用Markdown格式,方便阅读和检索。
| 类型 | 说明 |
|---|---|
| API | 接口测试、API集成测试 |
| UI | 页面测试、组件测试 |
| E2E | 端到端测试、用户流程 |
| Integration | 多个服务集成测试 |
| Stress | 压力测试、性能测试 |
| 模块 | 说明 |
|---|---|
| authentication | 登录、注册、权限 |
| data-query | 列表、搜索、筛选 |
| data-modification | 创建、更新、删除 |
| file-operations | 文件上传、下载、删除 |
| settings | 系统配置、用户设置 |
| 优先级 | 说明 |
|---|---|
| P0 | 核心流程,必须通过 |
| P1 | 重要功能,影响使用 |
| P2 | 边缘功能,影响较小 |
创建测试用例后,输出标准摘要:
✅ 测试用例已创建: examples/authentication/login.md
📋 测试摘要
├── 类型: API
├── 优先级: P0
├── 步骤数: 3
├── 预计耗时: 30秒
└── 依赖: $TOKEN, $BASE_URL
📝 快速执行
curl -X POST "$BASE_URL/api/login" -d '{"user":"admin"}'
🔍 查找相关测试
bash scripts/search.sh login
| 模板 | 说明 |
|---|---|
.sh 脚本 | Shell测试脚本(优先使用) |
注意:
.sh)# 创建新测试用例 (保存到项目 tests/test-cases/)
bash scripts/new-test.sh api login
# 搜索测试用例
bash scripts/search.sh login
# 搜索特定类型
bash scripts/search.sh --type api
# 搜索特定优先级
bash scripts/search.sh --priority P0
# 生成索引
bash scripts/index.sh
当测试完成后,需要生成测试报告,保存到项目的 tests/reports/ 目录下。
{项目根目录}/tests/
├── test-cases/ # 测试用例
│ ├── api/
│ ├── ui/
│ └── performance/
├── reports/ # 测试报告 (按分类)
│ ├── api/ # API测试报告
│ │ └── 2024-01-01-login.md
│ ├── ui/ # UI测试报告
│ │ └── 2024-01-01-panel.md
│ └── performance/ # 性能测试报告
│ └── 2024-01-01-webdav.md
└── INDEX.md # 测试用例索引
---
id: {唯一标识}
title: {测试报告标题}
type: API | UI | Performance
date: {测试日期}
status: PASS | FAIL | PARTIAL
---
# {测试报告标题}
## 测试概要
| 项目 | 内容 |
|------|------|
| 测试日期 | YYYY-MM-DD |
| 测试类型 | API / UI / Performance |
| 测试结果 | PASS / FAIL / PARTIAL |
| 测试人员 | AI |
## 测试环境
| 环境 | 说明 |
|------|------|
| 服务地址 | $BASE_URL |
| Token | $TOKEN |
## 测试结果
### 通过项 ✅
- [ ] 测试项1
- [ ] 测试项2
### 失败项 ❌
- [ ] 测试项3
- 错误信息: xxx
- 截图: /path/to/screenshot.png
### 未通过项 ⚠️
- [ ] 测试项4
- 原因: 待确认
## 问题清单
| 问题ID | 严重程度 | 描述 | 状态 |
|--------|----------|------|------|
| BUG-001 | High | 描述 | Open |
| BUG-002 | Medium | 描述 | Resolved |
## 测试截图
- [截图1](./screenshots/1.png)
- [截图2](./screenshots/2.png)
## 修改建议
{改进建议}
## 相关测试用例
- [测试用例链接](../test-cases/xxx.md)
| 类型 | 目录 | 说明 |
|---|---|---|
| API | reports/api/ | 接口测试报告 |
| UI | reports/ui/ | 页面测试报告 |
| Performance | reports/performance/ | 性能测试报告 |
| Regression | reports/regression/ | 回归测试报告 |
{日期}-{模块}-{测试类型}.md
示例:
2024-01-01-login-api.md
2024-01-02-panel-ui.md
2024-01-03-webdav-perf.md
测试用例通过 agent-browser 执行。
| 测试操作 | agent-browser命令 |
|---|---|
| 打开页面 | agent-browser open "$BASE_URL" |
| 获取元素 | agent-browser snapshot -i |
| 点击元素 | agent-browser click @e1 |
| 填写表单 | agent-browser fill @e1 "value" |
| 验证文本 | agent-browser eval "document.body.innerText" |
| 检查错误 | agent-browser errors |
| 截图 | agent-browser screenshot /tmp/test.png |
| 关闭 | agent-browser close |
#!/bin/bash
# 执行测试用例
BASE_URL="${BASE_URL:-http://localhost:8080}"
WAIT_TIME="${WAIT_TIME:-5}"
# 打开页面
agent-browser open "$BASE_URL"
sleep $WAIT_TIME
# 获取可交互元素
agent-browser snapshot -i
# 执行操作
agent-browser fill @e1 "testuser"
agent-browser fill @e2 "password"
agent-browser click @e3
sleep 2
# 验证结果
agent-browser get url
# 关闭浏览器
agent-browser close
#!/bin/bash
# 执行API测试
BASE_URL="${BASE_URL:-http://localhost:8080}"
TOKEN="${TOKEN:-your_token}"
# GET请求
curl -X GET "$BASE_URL/api/data" \
-H "Authorization: Bearer $TOKEN"
# POST请求
curl -X POST "$BASE_URL/api/data" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"test"}'