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
|
- npm config set registry https://registry.npmmirror.com
|
||||||
script:
|
script:
|
||||||
- npm install
|
- 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:
|
after_script:
|
||||||
- |
|
- |
|
||||||
if [ "$CI_JOB_STATUS" == "success" ]; then
|
if [ "$CI_JOB_STATUS" == "success" ]; then
|
||||||
echo "Tests passed! Sending success message..."
|
echo "Tests passed! Sending success message..."
|
||||||
else
|
else
|
||||||
echo "Tests failed! Sending failure message..."
|
echo "Tests failed! Sending failure message..."
|
||||||
node scripts/send-message.js "Some tests failed!"
|
|
||||||
fi
|
fi
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
|
|||||||
@ -39,11 +39,17 @@ test.describe('挂单', () => {
|
|||||||
test('查看员工名下挂单', async ({ page, customerPage }) => {
|
test('查看员工名下挂单', async ({ page, customerPage }) => {
|
||||||
let OrderLQ = 0;
|
let OrderLQ = 0;
|
||||||
let OrderZP = 0;
|
let OrderZP = 0;
|
||||||
|
|
||||||
|
const $employeeBottom = page.locator('.userpanel_item');
|
||||||
|
|
||||||
await test.step('记录员工原挂单数量', async () => {
|
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()) {
|
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();
|
await page.locator('.item_box').first().waitFor();
|
||||||
OrderLQ = await page.locator('.item_box').count();
|
OrderLQ = await page.locator('.item_box').count();
|
||||||
} else {
|
} 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()) {
|
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();
|
await page.locator('.item_box').first().waitFor();
|
||||||
OrderZP = await page.locator('.item_box').count();
|
OrderZP = await page.locator('.item_box').count();
|
||||||
} else {
|
} 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 () => {
|
await test.step('刘强挂单1', async () => {
|
||||||
//员工1开第1单
|
//员工1开第1单
|
||||||
await page.getByRole('button', { name: /^开\s单$/ }).click();
|
await page.getByRole('button', { name: /^开\s单$/ }).click();
|
||||||
@ -71,11 +79,7 @@ test.describe('挂单', () => {
|
|||||||
// 选择添加员工
|
// 选择添加员工
|
||||||
await page.locator('button.staff_btn').click();
|
await page.locator('button.staff_btn').click();
|
||||||
// 选择员工:刘强
|
// 选择员工:刘强
|
||||||
await page
|
await $employeeLq.click();
|
||||||
.locator('.counselor:nth-child(2)')
|
|
||||||
.locator('.check_item:nth-child(1)')
|
|
||||||
.filter({ hasText: Employees.FirstShop.Employee_8.name })
|
|
||||||
.click();
|
|
||||||
// 保存并复制到其他项目
|
// 保存并复制到其他项目
|
||||||
await page.locator('button.save_and_copy').filter({ hasText: '保存并复制到其他项目/卖品' }).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('button.staff_btn').click();
|
||||||
// 选择员工:刘强
|
// 选择员工:刘强
|
||||||
await page
|
await $employeeLq.click();
|
||||||
.locator('.counselor:nth-child(2)')
|
|
||||||
.locator('.check_item:nth-child(1)')
|
|
||||||
.filter({ hasText: Employees.FirstShop.Employee_8.name })
|
|
||||||
.click();
|
|
||||||
// 保存并复制到其他项目
|
// 保存并复制到其他项目
|
||||||
await page.locator('button.save_and_copy').filter({ hasText: '保存并复制到其他项目/卖品' }).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('button.staff_btn').click();
|
||||||
// 选择员工:刘强
|
// 选择员工:刘强
|
||||||
await page
|
await $employeeLq.click();
|
||||||
.locator('.counselor:nth-child(2)')
|
|
||||||
.locator('.check_item:nth-child(1)')
|
|
||||||
.filter({ hasText: Employees.FirstShop.Employee_8.name })
|
|
||||||
.click();
|
|
||||||
// 保存并复制到其他项目
|
// 保存并复制到其他项目
|
||||||
await page.locator('button.save_and_copy').filter({ hasText: '保存并复制到其他项目/卖品' }).click();
|
await page.locator('button.save_and_copy').filter({ hasText: '保存并复制到其他项目/卖品' }).click();
|
||||||
// 挂单
|
// 挂单
|
||||||
await page.locator('#cart_bottom_btn').getByText('挂单').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 () => {
|
await test.step('周萍挂单1', async () => {
|
||||||
//员工2开第1单
|
//员工2开第1单
|
||||||
await page.getByRole('button', { name: /^开\s单$/ }).click();
|
await page.getByRole('button', { name: /^开\s单$/ }).click();
|
||||||
@ -137,11 +135,7 @@ test.describe('挂单', () => {
|
|||||||
// 选择添加员工
|
// 选择添加员工
|
||||||
await page.locator('button.staff_btn').click();
|
await page.locator('button.staff_btn').click();
|
||||||
// 选择员工:周萍
|
// 选择员工:周萍
|
||||||
await page
|
await $employeeZp.click();
|
||||||
.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 page.locator('button.save_and_copy').filter({ hasText: '保存并复制到其他项目/卖品' }).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('button.staff_btn').click();
|
||||||
// 选择员工:周萍
|
// 选择员工:周萍
|
||||||
await page
|
await $employeeZp.click();
|
||||||
.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 page.locator('button.save_and_copy').filter({ hasText: '保存并复制到其他项目/卖品' }).click();
|
await page.locator('button.save_and_copy').filter({ hasText: '保存并复制到其他项目/卖品' }).click();
|
||||||
// 挂单
|
// 挂单
|
||||||
@ -175,13 +165,13 @@ test.describe('挂单', () => {
|
|||||||
|
|
||||||
await test.step('最后校验挂单数量', async () => {
|
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();
|
await page.locator('.item_box').first().waitFor();
|
||||||
const order = await page.locator('.item_box').all();
|
const order = await page.locator('.item_box').all();
|
||||||
expect(order.length).toBe(3 + OrderLQ);
|
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();
|
await page.locator('.item_box').first().waitFor();
|
||||||
const order1 = await page.locator('.item_box').all();
|
const order1 = await page.locator('.item_box').all();
|
||||||
expect(order1.length).toBe(2 + OrderZP);
|
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', { hasText: username }).waitFor();
|
||||||
await page
|
await page.locator('.item_box').first().getByRole('button', { name: /^取\s单$/ }).click();
|
||||||
.locator('.item_box')
|
await page.locator('#buyList').getByText('雪肌晶纯护理').waitFor();
|
||||||
.first()
|
|
||||||
.getByRole('button', { name: /^取\s单$/ })
|
|
||||||
.click();
|
|
||||||
//结算
|
//结算
|
||||||
await page
|
await page.locator('.pay_btn').filter({ hasText: /^结\s算$/ }).click();
|
||||||
.locator('.pay_btn')
|
|
||||||
.filter({ hasText: /^结\s算$/ })
|
|
||||||
.click();
|
|
||||||
//点击优惠券折扣
|
//点击优惠券折扣
|
||||||
await page.getByText('优惠券抵扣').click();
|
await page.getByText('优惠券抵扣').click();
|
||||||
//点击赠送优惠券
|
//点击赠送优惠券
|
||||||
await page.getByText('赠送优惠券').click();
|
await page.getByText('赠送优惠券').click();
|
||||||
//点击定额10元券
|
//点击定额10元券
|
||||||
await page
|
await page.locator('.popup_content').locator('.alloytouch-target').filter({ hasText: Coupons.coupon.coupon_1.name }).click();
|
||||||
.locator('.popup_content')
|
|
||||||
.locator('.alloytouch-target')
|
|
||||||
.filter({ hasText: Coupons.coupon.coupon_1.name })
|
|
||||||
.click();
|
|
||||||
//确认
|
//确认
|
||||||
await page
|
await page.locator('.operation_btn').first().getByRole('button', { name: /^确\s定$/ }).click();
|
||||||
.locator('.operation_btn')
|
|
||||||
.first()
|
|
||||||
.getByRole('button', { name: /^确\s定$/ })
|
|
||||||
.click();
|
|
||||||
//选择定额10元券
|
//选择定额10元券
|
||||||
await page.getByLabel(Coupons.coupon.coupon_1.name).first().check();
|
await page.getByLabel(Coupons.coupon.coupon_1.name).first().check();
|
||||||
//确认选择
|
//确认选择
|
||||||
|
|||||||
Reference in New Issue
Block a user