This repository has been archived on 2025-04-22. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
LingandRX d44f457d86 test(boss_cashier): 优化挂单测试流程
- 移除不必要的挂单数量记录步骤
- 简化挂单流程,每个员工只挂单一次
- 使用 expect.soft 进行软断言,提高测试稳定性
- 优化员工选择和挂单校验的代码结构
2025-03-23 11:54:08 +08:00
tests test(boss_cashier): 优化挂单测试流程 2025-03-23 11:54:08 +08:00
tests-examples feat: 初始化慧来客自动化测试项目 2024-12-22 19:18:27 +08:00
.env refactor(tests): 重构测试代码并优化环境变量配置 2025-01-01 13:02:27 +08:00
.env.staging feat: 初始化慧来客自动化测试项目 2024-12-22 19:18:27 +08:00
.env.test feat: 初始化慧来客自动化测试项目 2024-12-22 19:18:27 +08:00
.gitignore feat: 初始化慧来客自动化测试项目 2024-12-22 19:18:27 +08:00
.gitlab-ci.yml ci: 为 Playwright 测试添加超时限制和报告生成 2025-03-22 12:18:48 +08:00
.prettierrc feat: 初始化慧来客自动化测试项目 2024-12-22 19:18:27 +08:00
package.json test(boss_cashier): 优化挂单测试流程 2025-03-23 11:54:08 +08:00
playwright.config.js test(boss_cashier): 优化挂单测试流程 2025-03-23 11:54:08 +08:00
Readme.md feat: 初始化慧来客自动化测试项目 2024-12-22 19:18:27 +08:00
tsconfig.json feat: 初始化慧来客自动化测试项目 2024-12-22 19:18:27 +08:00

这是慧来客的自动化测试系统规范此项目支持图像化界面管理测试case自动化测试流水线发布且支持报告发送和错误现场回溯。如有不懂请联系WQ||Co!

支持的能力

  • 图形化测试用例管理
  • 多环境支持测试
  • 多线程测试
  • 多角色测试
  • 测试报告生成
  • 错误现场还原跟踪
  • 测试过程录像
  • 测试报告推送到企业微信
  • API接口测试
  • API压力测试

目录结构

playwright_project/
│
├── .auth/                   # 认证信息存放位置
├── node_modules/            # 存放 npm 包
├── playwright-report/       #测试报告存放目录
├── package.json             # 项目配置文件
├── test-results/             #测试解过
├── playwright.config.ts      # Playwright 配置文件
├── tests/                   # 测试case文件存放目录
│   ├── touch/               # 慧来客touch端case的存放
│   │   ├── cashier_registration.spec.js     # 挂单
│   │   ├── cashier_collection.spec.js       #收款
│   │   └── ...
│   ├── mallh5/             # 慧来客客户端h5
│   │   ├── Mine_card.spec.js      # 会员卡查看
│   │   └── ...
│   ├── business/          # 测试套件目录
│   │   ├── Member_search.spec.js      # 搜索会员
│   │   └── ...
│   ├── fixtures/            # 测试公用套件
│   │   ├── user.json         # 用户数据
│   │   └── cashier_set.json  #收银数据设置
│   └── utils/               # 工具函数目录
│       ├── screenshotHelper.ts  # 截图辅助函数
│       └── ...
└── tests-examples/               # 测试例子参考目录
│   └── ...
└── .env*                      # 环境变量存放位置,根据 process.env.NODE_ENV 读取不同的配置文件
└── my-awesome-reporter.ts     # 自定义报告生成器用于推送
└── playwright.config*         # 测试项目基础配置文件

测试框架技术文档

项目规范

  1. case的存放地址/tests,所有的文件名应该让人看见名称知道case文件具体的含义使用 当前测试的角色_case一级菜单菜单命名如管理员身份的收银用例的文件命名应该为:cashier.spec.js。
  • 总部管理员 boss
  • 门店员工 staff
  1. case的编写规范二级菜单下使用test.describe用二级菜单名字做分组然后二级菜单下的具体功能点则放在使用每一个test做声明。每一个功能点以具体的测试用例命名收银-挂单的例子如下。
//收银挂单测试
test.describe('收银-挂单', () => {
  //挂单
  test('挂单', async ({ page }) => {
    await page.getByRole('button', { name: '开 单' }).click();
    await page.getByRole('button', { name: '1' }).click();
    await page.getByText('搜索').click();
    await page.getByLabel('icon: close').locator('svg').click();
    await page.locator('.top > .anticon').first().click();
  });


  //取单
  test('取单', async ({ page }) => {
    await page.getByRole('button', { name: '开 单' }).click();
    await page.getByRole('button', { name: '1' }).click();
    await page.getByText('搜索').click();
    await page.getByLabel('icon: close').locator('svg').click();
    await page.locator('.top > .anticon').first().click();
  });
})
  1. 测试参数设置,项目启动会根据名 process.env.NODE_ENV 读取不同文件的配置.env.${环境变量}设置到当前启动线程中启动命令中使用cross-env设置环境变量。
  2. 预设的npm命令和后期添加规则,命令命名为 作用-环境名
npm run prepared #安装必要的测试框架依赖


npm run codegen
npm run codegen-staging #启动staging录制

npm run ui  #启动图形化管理界面
npm run ui-staging

npm run report #获取测试报告 

npm run test #启动测试 全量测试
npm run test-staging #启动staging环境测试 全量测试

npm run ui-server #启动服务器图形化管理界面服务
npm run ui-server-staging #启动服务器图形化管理界面服务
  1. 写case的过程中请尽量避免使用waitfor利用平台自身的等待机制

测试case索引

cese名称 case地址 case名称 状态 最后时间 编写人
收银-挂单 touch/boo_cashier_registration.spec.js cosavebill 2024-08-16 co
收银-挂单 touch/boo_cashier_registration.spec.js cosavebill 2024-08-16 co
收银-挂单 touch/boss_cashier.spec.js cosavebill 2024-08-19 chenjihuang

图形化管理工具

点击 测试管理工具.bat 启动

case地址

Mat用例点我打开