test(touch): 优化挂单测试流程

- 移除了 playwright 测试命令中的 --grep 参数
- 重构了员工选择和挂单操作的代码,提高了可读性和可维护性
- 优化了等待和点击操作,确保测试流程更加稳定
- 删除了冗余的代码,简化了测试逻辑
This commit is contained in:
LingandRX 2025-03-21 23:26:22 +08:00
parent 3f45ac233f
commit 52365501f0
2 changed files with 27 additions and 52 deletions

View File

@ -9,14 +9,13 @@ playwright_tests:
- npm config set registry https://registry.npmmirror.com
script:
- npm install
- npx playwright test /touch/boss_cashier.spec.ts --grep "挂单" --project '慧来客touch(管理员身份) - Desktop Chrome'
- npx playwright test /touch/boss_cashier.spec.ts --project '慧来客touch(管理员身份) - Desktop Chrome'
after_script:
- |
if [ "$CI_JOB_STATUS" == "success" ]; then
echo "Tests passed! Sending success message..."
else
echo "Tests failed! Sending failure message..."
node scripts/send-message.js "Some tests failed!"
fi
artifacts:
paths:

View File

@ -39,11 +39,17 @@ test.describe('挂单', () => {
test('查看员工名下挂单', async ({ page, customerPage }) => {
let OrderLQ = 0;
let OrderZP = 0;
const $employeeBottom = page.locator('.userpanel_item');
await test.step('记录员工原挂单数量', async () => {
await expect(page.getByRole('button', { name: /^开\s单$/ })).toBeVisible();
// 点击底部员工刘强
const EmployeeLQ = page.locator('.userpanel_item').getByText(Employees.FirstShop.Employee_8.name);
const EmployeeLQ = $employeeBottom.getByText(Employees.FirstShop.Employee_8.name);
if (await EmployeeLQ.isVisible()) {
await page.locator('.userpanel_item').filter({ hasText: Employees.FirstShop.Employee_8.name }).click();
await $employeeBottom.filter({ hasText: Employees.FirstShop.Employee_8.name }).click();
await page.locator('.item_box').first().waitFor();
OrderLQ = await page.locator('.item_box').count();
} else {
@ -51,9 +57,9 @@ test.describe('挂单', () => {
}
// 点击底部员工周萍
const EmployeeZP = page.locator('.userpanel_item', { hasText: Employees.FirstShop.Employee_9.name });
const EmployeeZP = $employeeBottom.getByText(Employees.FirstShop.Employee_9.name);
if (await EmployeeZP.isVisible()) {
await page.locator('.userpanel_item').filter({ hasText: Employees.FirstShop.Employee_9.name }).click();
await $employeeBottom.filter({ hasText: Employees.FirstShop.Employee_9.name }).click();
await page.locator('.item_box').first().waitFor();
OrderZP = await page.locator('.item_box').count();
} else {
@ -61,6 +67,8 @@ test.describe('挂单', () => {
}
});
const $employeeLq = page.locator('.counselor:nth-child(2)').locator('.check_item:nth-child(1)').filter({ hasText: Employees.FirstShop.Employee_8.name });
await test.step('刘强挂单1', async () => {
//员工1开第1单
await page.getByRole('button', { name: /^开\s单$/ }).click();
@ -71,11 +79,7 @@ test.describe('挂单', () => {
// 选择添加员工
await page.locator('button.staff_btn').click();
// 选择员工:刘强
await page
.locator('.counselor:nth-child(2)')
.locator('.check_item:nth-child(1)')
.filter({ hasText: Employees.FirstShop.Employee_8.name })
.click();
await $employeeLq.click();
// 保存并复制到其他项目
await page.locator('button.save_and_copy').filter({ hasText: '保存并复制到其他项目/卖品' }).click();
// 挂单
@ -93,11 +97,7 @@ test.describe('挂单', () => {
// 选择添加员工
await page.locator('button.staff_btn').click();
// 选择员工:刘强
await page
.locator('.counselor:nth-child(2)')
.locator('.check_item:nth-child(1)')
.filter({ hasText: Employees.FirstShop.Employee_8.name })
.click();
await $employeeLq.click();
// 保存并复制到其他项目
await page.locator('button.save_and_copy').filter({ hasText: '保存并复制到其他项目/卖品' }).click();
// 挂单
@ -114,17 +114,15 @@ test.describe('挂单', () => {
// 选择添加员工
await page.locator('button.staff_btn').click();
// 选择员工:刘强
await page
.locator('.counselor:nth-child(2)')
.locator('.check_item:nth-child(1)')
.filter({ hasText: Employees.FirstShop.Employee_8.name })
.click();
await $employeeLq.click();
// 保存并复制到其他项目
await page.locator('button.save_and_copy').filter({ hasText: '保存并复制到其他项目/卖品' }).click();
// 挂单
await page.locator('#cart_bottom_btn').getByText('挂单').click();
});
const $employeeZp = page.locator('.counselor:nth-child(2)').locator('.check_item:nth-child(1)').filter({ hasText: Employees.FirstShop.Employee_9.name });
await test.step('周萍挂单1', async () => {
//员工2开第1单
await page.getByRole('button', { name: /^开\s单$/ }).click();
@ -137,11 +135,7 @@ test.describe('挂单', () => {
// 选择添加员工
await page.locator('button.staff_btn').click();
// 选择员工:周萍
await page
.locator('.counselor:nth-child(2)')
.locator('.check_row:nth-child(2) .check_item:nth-child(1)')
.filter({ hasText: Employees.FirstShop.Employee_9.name })
.click();
await $employeeZp.click();
// 保存并复制到其他项目
await page.locator('button.save_and_copy').filter({ hasText: '保存并复制到其他项目/卖品' }).click();
// 挂单
@ -158,11 +152,7 @@ test.describe('挂单', () => {
// 选择添加员工
await page.locator('button.staff_btn').click();
// 选择员工:周萍
await page
.locator('.counselor:nth-child(2)')
.locator('.check_row:nth-child(2) .check_item:nth-child(1)')
.filter({ hasText: Employees.FirstShop.Employee_9.name })
.click();
await $employeeZp.click();
// 保存并复制到其他项目
await page.locator('button.save_and_copy').filter({ hasText: '保存并复制到其他项目/卖品' }).click();
// 挂单
@ -175,13 +165,13 @@ test.describe('挂单', () => {
await test.step('最后校验挂单数量', async () => {
// 点击底部员工刘强
await page.locator('.userpanel_item').filter({ hasText: Employees.FirstShop.Employee_8.name }).click();
await $employeeBottom.filter({ hasText: Employees.FirstShop.Employee_8.name }).click();
await page.locator('.item_box').first().waitFor();
const order = await page.locator('.item_box').all();
expect(order.length).toBe(3 + OrderLQ);
// 点击底部员工周萍
await page.locator('.userpanel_item').filter({ hasText: Employees.FirstShop.Employee_9.name }).click();
await $employeeBottom.filter({ hasText: Employees.FirstShop.Employee_9.name }).click();
await page.locator('.item_box').first().waitFor();
const order1 = await page.locator('.item_box').all();
expect(order1.length).toBe(2 + OrderZP);
@ -211,32 +201,18 @@ test.describe('挂单', () => {
// // 点击底部员工吴浩
// 取单
await page.locator('.item_box', { hasText: username }).waitFor();
await page
.locator('.item_box')
.first()
.getByRole('button', { name: /^取\s单$/ })
.click();
await page.locator('.item_box').first().getByRole('button', { name: /^取\s单$/ }).click();
await page.locator('#buyList').getByText('雪肌晶纯护理').waitFor();
//结算
await page
.locator('.pay_btn')
.filter({ hasText: /^结\s算$/ })
.click();
await page.locator('.pay_btn').filter({ hasText: /^结\s算$/ }).click();
//点击优惠券折扣
await page.getByText('优惠券抵扣').click();
//点击赠送优惠券
await page.getByText('赠送优惠券').click();
//点击定额10元券
await page
.locator('.popup_content')
.locator('.alloytouch-target')
.filter({ hasText: Coupons.coupon.coupon_1.name })
.click();
await page.locator('.popup_content').locator('.alloytouch-target').filter({ hasText: Coupons.coupon.coupon_1.name }).click();
//确认
await page
.locator('.operation_btn')
.first()
.getByRole('button', { name: /^确\s定$/ })
.click();
await page.locator('.operation_btn').first().getByRole('button', { name: /^确\s定$/ }).click();
//选择定额10元券
await page.getByLabel(Coupons.coupon.coupon_1.name).first().check();
//确认选择