Câu hỏi thường gặp
Lỗi thường gặp
Lỗi: Không tìm thấy element
❌ Locator sai cú pháp: button:Text nút (có dấu cách)
✓ Đúng: button:Textnút (hoặc) button:Text nút (nếu text có dấu cách, dùng exact match)
❌ Selector CSS sai: #my-btn (nhưng HTML là my_btn)
✓ Kiểm tra HTML trước khi viết selector
Lỗi: DataSheet không nạp
❌ Đặt tên sheet sai: NNTT_DATA (nhưng Excel sheet là NNTT data)
✓ DataSet phải khớp đúng tên sheet trong Excel
❌ Quên header dòng 1 và selector dòng 2
✓ DataSheet luôn cần: dòng 1 = header, dòng 2 = selector
Lỗi: Biến không resolve
❌ Value: ${UNDECLARED_VAR} (biến chưa khai báo)
✓ Chỉ dùng: ${DOMAIN}, ${MENU}, tiền tố từ DataSet, hoặc đã save trước đó
❌ Value: ${NNTT_DATA.row1.FIELD} (FIELD không tồn tại trong DataSheet)
✓ Kiểm tra tên field trong header DataSheet chính xác
Lỗi: Page không active
❌ Mở popup nhưng không đóng → steps tiếp theo chạy trên popup
✓ Sau khi xong popup, gọi closePage để quay về main
❌ Mở tab nhưng không switchPage
✓ Sau khi mở tab mới, phải switchPage nếu cần chạy step trên tab khác
Hướng dẫn thực thi test (Chạy test)
Dưới đây là các lệnh phổ biến để chạy các kịch bản kiểm thử bằng Playwright. Các lệnh này được thực thi trong cửa sổ Terminal (Command Prompt / PowerShell) tại thư mục gốc của project.
1. Chạy tất cả các file test
npm run test:engine
- Ý nghĩa: Lệnh này sẽ tự động duyệt qua và chạy tất cả các file Excel kịch bản có trong thư mục dữ liệu (
data/). - Chế độ: Mặc định chạy ẩn (headless mode - không hiển thị UI trình duyệt) giúp tốc độ thực thi nhanh và tiết kiệm tài nguyên.
2. Chạy một file test cụ thể
Khi bạn đang xây dựng hoặc sửa lỗi cho một chức năng, việc chỉ chạy file chức năng đó sẽ tiết kiệm nhiều thời gian. Ví dụ để chạy file login.xlsx:
npx playwright test tests/runner.spec.ts login
- Ý nghĩa: Lệnh này sẽ lọc và chỉ thực thi file kịch bản có chứa tên là
login.
3. Chạy test có hiển thị trình duyệt (Headed mode)
Để quan sát trực quan các bước thao tác (click, điền form, chuyển trang...) đang diễn ra như thế nào trên màn hình, bạn cần thêm cờ --headed:
npx playwright test tests/runner.spec.ts --headed
- Ý nghĩa: Mở hẳn cửa sổ trình duyệt Chromium/Firefox/Webkit lên để bạn dễ dàng quan sát quá trình automation thay vì chạy ngầm.
4. Chạy tuần tự với 1 Worker (Phục vụ Debug)
Playwright hỗ trợ chạy đa luồng (nhiều worker) để tăng tốc độ. Tuy nhiên, khi debug bạn sẽ muốn xem log một cách tuần tự.
npx playwright test tests/runner.spec.ts --workers=0
- Ý nghĩa: Bắt buộc trình chạy test chỉ sử dụng 1 luồng duy nhất. Các testcase sẽ chờ nhau chạy xong lần lượt, giúp Terminal log in ra rõ ràng, không bị xáo trộn giữa các testcase với nhau.
💡 Mẹo: Bạn hoàn toàn có thể kết hợp các tùy chọn lại với nhau. Ví dụ: Chạy file
login, có hiển thị giao diện, và chạy tuần tự để quan sát tìm lỗi:npx playwright test tests/runner.spec.ts login --headed --workers=0
Debug & Log
Khi step fail, kiểm tra:
- Console log → Xem message lỗi chi tiết
- Playwright report → playwright-report/index.html
- Execution log → execution.log (append log từ mỗi run)
- Video/Screenshot → Nếu cấu hình, tự động capture khi fail