test(touch): 优化挂单测试流程
- 移除了 playwright 测试命令中的 --grep 参数 - 重构了员工选择和挂单操作的代码,提高了可读性和可维护性 - 优化了等待和点击操作,确保测试流程更加稳定 - 删除了冗余的代码,简化了测试逻辑
This commit is contained in:
parent
3f45ac233f
commit
52365501f0
@ -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:
|
||||
|
||||
@ -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();
|
||||
//确认选择
|
||||
|
||||
Reference in New Issue
Block a user