From 52365501f03dcf1839b0f64602037af7d8892842 Mon Sep 17 00:00:00 2001 From: LingandRX Date: Fri, 21 Mar 2025 23:26:22 +0800 Subject: [PATCH] =?UTF-8?q?test(touch):=20=E4=BC=98=E5=8C=96=E6=8C=82?= =?UTF-8?q?=E5=8D=95=E6=B5=8B=E8=AF=95=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了 playwright 测试命令中的 --grep 参数 - 重构了员工选择和挂单操作的代码,提高了可读性和可维护性 - 优化了等待和点击操作,确保测试流程更加稳定 - 删除了冗余的代码,简化了测试逻辑 --- .gitlab-ci.yml | 3 +- tests/touch/boss_cashier.spec.ts | 76 +++++++++++--------------------- 2 files changed, 27 insertions(+), 52 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 581a280..e0053a5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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: diff --git a/tests/touch/boss_cashier.spec.ts b/tests/touch/boss_cashier.spec.ts index 0900d21..dd6c426 100644 --- a/tests/touch/boss_cashier.spec.ts +++ b/tests/touch/boss_cashier.spec.ts @@ -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(); //确认选择