👻 Headless là gì?
Chạy trình duyệt mà không hiện cửa sổ nào.
1
Hiểu nó là gì
Chế độ headless mở trình duyệt trong nền và không vẽ giao diện, nên chạy nhanh hơn và dùng được trên máy chủ vốn không có màn hình.
Nói theo đời thường:
Như đầu bếp nấu trong bếp kín: món vẫn ra đủ, chỉ là khách không nhìn thấy tay ai đang đảo chảo.
Như đầu bếp nấu trong bếp kín: món vẫn ra đủ, chỉ là khách không nhìn thấy tay ai đang đảo chảo.
⚠ Chỗ ẩn dụ này hỏng
Bếp kín nấu ra cùng món — nhưng không phải lúc nào cũng vậy.
Chế độ headless đôi khi có kích thước cửa sổ khác, thiếu font, hoặc trình duyệt nhận diện được và trả nội dung khác. Kinh điển: test xanh khi mở cửa sổ, đỏ khi chạy headless — hoặc ngược lại. Khi gặp, hãy nghi ngờ kích thước màn hình trước tiên.
2
Code trông thế nào
# Mặc định là headless npx playwright test # Hiện cửa sổ ra xem khi cần gỡ lỗi npx playwright test --headed --slow-mo=500
--slow-mo làm chậm từng thao tác để mắt người kịp nhìn.
3
Khi nào bạn dùng nó
✓ Dùng khi
- Chạy trên máy chủ CI không có màn hình
- Muốn chạy nhanh hơn và tốn ít máy hơn
- Chạy hàng loạt ca cùng lúc
✗ Đừng dùng khi
- Đang gỡ một ca test khó (bật cửa sổ lên mà nhìn)
- Test liên quan tới hiển thị và bố cục
Chưa cần biết: chỉnh viewport, cài font cho container, chụp màn hình lúc lỗi.
Để dành tới Mốc 3 — Tự sửa được khi nó hỏng: Test đỏ trên CI mà xanh ở máy bạn, và bạn biết bắt đầu tìm từ đâu.
Dấu hiệu bạn đã cần học nó: Khi cùng một ca test xanh trên máy bạn nhưng đỏ trên CI, và bạn chưa biết vì sao.
4
Đi đâu tiếp
- CI/CDNơi headless gần như bắt buộc.
- Test RunnerChỗ bật tắt chế độ này.
- Visual TestingLoại test nhạy cảm nhất với khác biệt headless.