08ea5fbe9890c57946d2ad7c47d07bb3576ac0b5
Everything Is Suitable - E2E测试项目
项目概述
本项目是一个完整的端到端(E2E)测试框架,基于Playwright构建,为uniapp和admin模块提供全面的自动化测试解决方案。
项目结构
everything-is-suitable/
├── everything-is-suitable-test/ # E2E测试框架
│ ├── e2e/ # 测试代码
│ │ ├── fixtures/ # 测试夹具
│ │ ├── core/ # 核心模块
│ │ ├── helpers/ # 测试辅助工具
│ │ └── examples/ # 示例测试
│ ├── playwright.config.ts # Playwright配置
│ ├── package.json
│ ├── README.md # 详细使用文档
│ └── QUICKSTART.md # 快速入门指南
├── everything-is-suitable-admin/ # Admin管理后台
├── everything-is-suitable-uniapp/ # Uniapp移动端应用
├── everything-is-suitable-backend/ # 后端API服务
├── docker-compose.test.yml # 测试环境Docker配置
├── .woodpecker.yml # Woodpecker CI配置
└── WOODPECKER_CI.md # Woodpecker CI使用文档
快速开始
前置要求
- Node.js >= 18.0.0
- npm >= 9.0.0
- Docker
安装依赖
cd everything-is-suitable-test
npm install
npm run test:install
配置环境
cp .env.example .env
# 编辑.env文件,配置测试环境URL和账号密码
运行测试
# 本地运行
npm run test
# Docker环境运行
docker-compose -f docker-compose.test.yml up -d
sleep 30
npm run test
docker-compose -f docker-compose.test.yml down
CI/CD集成
本项目使用Woodpecker CI作为持续集成/持续部署工具。
配置文件
.woodpecker.yml- Woodpecker CI配置文件WOODPECKER_CI.md- 详细配置说明文档
Pipeline结构
setup- 初始化Docker环境e2e-tests- 执行端到端测试(并行4个分片)api-tests- 执行API集成测试test-report- 合并测试报告notify-failure- 测试失败时发送Slack通知nightly-tests- 每日定时执行完整测试
触发条件
- 推送到main或develop分支
- 创建Pull Request
- 每天凌晨2点定时执行
详细配置说明请参考:WOODPECKER_CI.md
测试框架特性
- ✅ 基于Playwright的现代化E2E测试框架
- ✅ 支持uniapp和admin模块的全流程业务测试
- ✅ 完整的测试数据管理和清理机制
- ✅ 丰富的测试辅助工具(表单、表格、断言等)
- ✅ 详细的测试日志和截图功能
- ✅ 多种测试报告格式(HTML、JSON、JUnit)
- ✅ 完整的Woodpecker CI集成支持
- ✅ 支持多浏览器和多设备测试
文档
测试覆盖
Uniapp模块
- 黄历功能测试(搜索、详情、收藏、分享、历史记录)
- 用户功能测试(登录、注册、修改信息、退出、修改密码)
Admin模块
- 用户管理测试(创建、编辑、删除、批量删除、导出)
- 角色管理测试(创建、编辑、分配权限、删除)
API集成测试
- 用户CRUD操作
- 角色CRUD操作
- 菜单CRUD操作
- 分页查询
- 搜索功能
常用命令
# 运行所有测试
npm run test
# 运行特定测试文件
npx playwright test e2e/examples/user-management.spec.ts
# 有头模式运行
npm run test:headed
# 调试模式
npm run test:debug
# UI模式
npm run test:ui
# 查看测试报告
npm run test:report
贡献指南
- Fork本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建Pull Request
许可证
MIT License
联系方式
如有问题或建议,请联系开发团队。
Description
Languages
Java
48%
TypeScript
27%
Python
19.2%
Vue
2.3%
HTML
1.7%
Other
1.7%