- Remove old review reports (keep latest only) - Move docs/ to deploy/docs-backup/ - Move performance-testing/ to deploy/ - Clean up test output files - Organize root directory
Sub2API 测试体系
本目录包含 Sub2API 项目的完整测试体系,包括 E2E 测试、集成测试和工具脚本。
目录结构
tests/
├── e2e/ # E2E 测试 (Playwright)
│ ├── *.spec.ts # 测试文件
│ ├── pages/ # 页面对象
│ └── setup/ # 全局设置
├── performance/ # 性能测试
│ ├── artillery/ # Artillery 负载测试
│ └── k6/ # K6 负载测试
├── scripts/ # 工具脚本
│ ├── run-tests.sh # Linux/Mac 运行脚本
│ ├── run-tests.bat # Windows 运行脚本
│ └── generate-report.ts # 报告生成
├── fixtures/ # 测试数据
│ ├── users.json # 测试用户数据
│ ├── accounts.json # 测试账号数据
│ ├── groups.json # 测试分组数据
│ └── api-keys.json # 测试 API 密钥
├── docs/ # 测试文档
│ ├── PERFORMANCE_TEST_REPORT.md # 性能测试报告
│ ├── PERFORMANCE_TEST_PLAN.md # 性能测试计划
│ ├── KEY_FORMAT_SUPPORT.md # Key 格式支持需求
│ ├── FULL_TEST_REPORT.md # 全面测试报告
│ ├── ADMIN_TEST_REPORT.md # E2E 测试报告
│ └── SUMMARY.md # 测试汇总
├── package.json # 测试依赖
├── playwright.config.ts # Playwright 配置
└── README.md # 本文件
测试文件列表
| 文件 | 描述 | 测试数 |
|---|---|---|
login.spec.ts |
登录模块测试 | 6 |
dashboard.spec.ts |
仪表盘模块测试 | 3 |
navigation.spec.ts |
导航菜单测试 | 3 |
admin-users.spec.ts |
用户管理测试 | 3 |
admin-accounts.spec.ts |
账号管理测试 | 2 |
admin-groups.spec.ts |
分组管理测试 | 2 |
admin-redeem.spec.ts |
兑换码测试 | 2 |
admin-settings.spec.ts |
系统设置测试 | 2 |
responsive.spec.ts |
响应式设计测试 | 4 |
快速开始
安装依赖
cd tests
npm install
npx playwright install
运行所有测试
npm test
运行特定类型测试
# 后端单元测试
npm run test:unit
# 前端集成测试
npm run test:integration
# E2E 测试
npm run test:e2e
E2E 测试选项
# 正常运行
npx playwright test
# 显示浏览器
npx playwright test --headed
# 交互模式
npx playwright test --ui
# 调试模式
npx playwright test --debug
# 特定浏览器
npx playwright test --project=chromium
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
| BASE_URL | http://localhost:8080 | 测试目标 URL |
| TEST_EMAIL | lon22@qq.com | 测试用户邮箱 |
| TEST_PASSWORD | admin123 | 测试用户密码 |
| CI | false | CI 环境标志 |
页面对象模式
使用页面对象模式组织测试代码:
import { LoginPage } from './pages';
test('login flow', async ({ page }) => {
const loginPage = new LoginPage(page);
await loginPage.goto();
await loginPage.login('user@example.com', 'password');
await loginPage.expectToBeLoggedIn();
});
测试数据
测试数据存储在 fixtures/ 目录:
users.json- 测试用户数据accounts.json- 测试账号数据groups.json- 测试分组数据api-keys.json- 测试 API 密钥
报告
测试报告生成在以下位置:
- HTML 报告:
playwright-report/index.html - JSON 结果:
test-results/results.json - Markdown 报告: 参见
docs/目录
添加新测试
- 在
e2e/目录创建测试文件(*.spec.ts) - 使用页面对象与页面交互
- 遵循命名规范:
*.spec.ts - 运行
npm run test:e2e验证
CI/CD 集成
# GitHub Actions 示例
- name: Run tests
run: |
cd tests
npm install
npx playwright install
npm test
测试结果
| 类别 | 状态 |
|---|---|
| 前端 (Vitest) | 301/301 通过 ✅ |
| E2E (Playwright) | 27/27 通过 ✅ |
| 后端 (Go) | ~200/~200 通过 ✅ |