1. Mô tả lỗi

Wait không đủ là tình huống automation tiếp tục bước tiếp theo trong khi ứng dụng chưa ở trạng thái sẵn sàng
(dữ liệu chưa load xong, element chưa sẵn sàng để thao tác, UI chưa ổn định).

Hậu quả:

  • không tìm thấy element

  • element chưa clickable

  • hoặc kiểm tra kết quả bị sai

→ làm test bị fail ngẫu nhiên (flaky).

2. Nguyên nhân phổ biến

2.1. Timeout cấu hình quá ngắn so với thực tế

Thời gian chờ mặc định:

  • không đủ cho môi trường chậm

  • không đủ khi backend / network phản hồi lâu

2.2. Chờ sai điều kiện

Ví dụ:

  • chỉ chờ element tồn tại

  • nhưng:

    • dữ liệu chưa hiển thị

    • chưa enable

    • chưa sẵn sàng để click

2.3. Dùng sleep cố định

Ví dụ:

  • sleep 1–2 giây

→ không đảm bảo trạng thái thật của UI.

2.4. Ứng dụng có nhiều bước xử lý ngầm

Ví dụ:

  • load page xong

  • nhưng còn:

    • gọi thêm API

    • render table

    • validate dữ liệu

    • load component phụ

2.5. Chạy song song / máy test yếu

Khi chạy nhiều test cùng lúc:

  • CPU, RAM bị chiếm

  • browser phản hồi chậm

→ thời gian thực tế dài hơn so với lúc thiết kế wait.

3. Dấu hiệu nhận biết

  • Test fail không ổn định

  • Chạy lại thì pass

  • Fail nhiều hơn khi:

    • chạy ban đêm

    • chạy CI

    • chạy song song

Các lỗi thường gặp:

4. Cách khắc phục (thực tế nên làm)

4.1. Dùng wait theo trạng thái, không dùng sleep

Không chờ theo thời gian.

Chờ theo điều kiện:

  • element visible

  • element clickable

  • data hiển thị xong

  • spinner biến mất

4.2. Chọn đúng loại wait

Không phải lúc nào cũng dùng một loại wait.

Ví dụ:

  • chờ load xong trang

  • chờ component hiển thị

  • chờ request xử lý xong

4.3. Tăng timeout có kiểm soát

Không tăng bừa.

Chỉ tăng khi:

  • môi trường thực sự chậm

  • đã xác nhận logic chờ là đúng

4.4. Chờ đúng “điểm kết thúc” của xử lý

Không chờ “bắt đầu có element”.

Phải chờ:

  • dữ liệu hiển thị hoàn chỉnh

  • trạng thái cuối của màn hình

4.5. Tạo wait dùng chung cho các pattern phổ biến

Ví dụ:

  • wait page ready

  • wait loading xong

  • wait table load xong

→ tránh mỗi test viết một kiểu.

Sửa lần cuối: Thứ Tư, 25 tháng 2 2026, 10:42 AM