1. Tóm tắt nhanh & luồng bạn sẽ test
Chào mừng trở lại! Ở các bài trước bạn đã học Page Object Model, cách viết assertion, và cách xử lý bất đồng bộ bằng waits. Bài này sẽ ghép cả ba lại để tự động test đăng nhập và đăng ký — hai luồng gần như MỌI ứng dụng web đều có, và cũng là nơi bug điều hướng, thông báo lỗi sai, hay lỗi giữ phiên rất hay xảy ra. Ta sẽ dùng đúng app TMĐT ShopEasy quen thuộc, viết Page Object cho cả màn đăng ký lẫn đăng nhập, rồi viết test bao phủ cả ca đúng lẫn ca sai.
2. Vì sao cần tự động hóa luồng đăng ký & đăng nhập
Đăng ký và đăng nhập là hai luồng phải kiểm thử lại ở gần như MỌI lần phát hành, vì hầu hết tính năng khác đều đứng sau bước đăng nhập. Nếu làm thủ công, mỗi lần release bạn phải lặp lại y hệt các bước: mở trang, điền form, bấm nút, quan sát kết quả — tốn thời gian và rất dễ chỉ kiểm tra ca 'đúng' cho nhanh, bỏ qua các ca sai vì áp lực thời gian.
Tự động hóa hai luồng này mang lại lợi ích ngay lập tức: chạy trong vài giây thay vì vài phút, chạy được TRÊN MỌI lần commit qua CI, và quan trọng nhất — không bao giờ 'quên' test ca sai mật khẩu chỉ vì đang gấp. Đây cũng là ví dụ thực hành tốt để ghép POM (tổ chức code), assertion (kiểm tra kết quả) và waits (chờ đúng cách) lại thành một bộ test hoàn chỉnh, thay vì học riêng lẻ từng phần.
3. Xác định các ca cần tự động hóa
Trước khi viết code, hãy liệt kê rõ các ca cần tự động hóa — giống như viết test case trước khi automation. Với đăng ký & đăng nhập, ta cần bao phủ cả ca hợp lệ lẫn các ca người dùng thực tế hay gặp: nhập sai, để trống, dùng lại dữ liệu đã tồn tại, và các hành vi sau khi đăng nhập như đăng xuất, giữ phiên.
Bảng trên là bản đồ cho toàn bộ phần thực hành tiếp theo: chương 5 sẽ hiện thực hóa 3 ca đầu (đăng ký), chương 6 hiện thực hóa 3 ca tiếp theo (đăng nhập), và chương 7 xử lý 2 ca cuối (đăng xuất, giữ phiên). Viết đủ bảng ca trước giúp bạn không viết thiếu, và cũng dễ review với đồng đội trước khi bắt tay vào code.
4. Chuẩn bị Page Object: LoginPage & RegisterPage (thực hành)
Áp dụng đúng nguyên tắc POM đã học: mỗi màn hình có 1 lớp riêng chứa locator + hành động. Ta viết 2 lớp — LoginPage cho màn đăng nhập, RegisterPage cho màn đăng ký — để các file test sau này chỉ cần gọi hàm, không tự viết locator.
▶ Bước 1: Tạo pages/LoginPage.js với locator ô email, mật khẩu, nút đăng nhập, khối lỗi, và hàm login(email, password).
▶ Bước 2: Tạo pages/RegisterPage.js với locator ô họ tên, email, mật khẩu, nút đăng ký, khối lỗi, và hàm register(fullName, email, password).
▶ Bước 3: Mỗi lớp có hàm goto() riêng để mở đúng URL màn hình của nó (/dang-nhap hoặc /dang-ky).
▶ Bước 4: Export cả 2 lớp để file test import và dùng chung trong cùng 1 kịch bản khi cần (ví dụ đăng ký xong rồi đăng nhập).
💬 Bình luận (0)
Chưa có bình luận nào. Hãy là người đầu tiên!