CYBERSOFT
Đăng nhập

Tự động hóa kiểm thử luồng đăng ký & đăng nhập cho người mới (có code chạy được)

Chuyên công nghệNền tảngNgười mớiChuẩn SEO
🗓 1 tháng trước19 phút đọc·👁 1,787 lượt xem👤 266 người đọc

Bài cho người mới: tự động test đăng nhập ShopEasy bằng Playwright, ghép POM, assertion và waits thành 1 bộ test hoàn chỉnh. Viết LoginPage/RegisterPage, 8 ca bao phủ đúng/sai (mật khẩu sai, để trống, email trùng), điều hướng, đăng xuất, giữ phiên. Hai tình huống thật (bỏ sót ca sai mật khẩu, email trùng mỗi lần chạy), nhiều mockup giao diện, FAQ và trắc nghiệm 5 câu. Chuẩn SEO, dẫn về khóa Tester CyberSoft.

1. Tóm tắt nhanh & luồng bạn sẽ test

⭐ TL;DR — Bài này hướng dẫn tự động test đăng nhập và đăng ký cho ứng dụng TMĐT ShopEasy bằng Playwright: viết Page Object cho màn đăng ký/đăng nhập, viết test cho ca đúng lẫn ca sai (sai mật khẩu, để trống, email đã tồn tại), kiểm tra điều hướng sau khi đăng nhập, đăng xuất và giữ phiên khi tải lại trang. Kết hợp POM, assertion và waits bạn đã học ở các bài trước, có nhiều mockup giao diện, code Playwright chạy được và trắc nghiệm cuối bài.

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.

🔒 shopeasy.vn/dang-ky ShopEasy · TMĐT ShopEasy · Đăng ký Họ và tên Mai TrầnEmail mai.tran@gmail.comMật khẩu ••••••••Đăng ký Locator: #fullname-input Locator: #email-input Locator: #password-input Locator: #btn-register
Màn hình đăng ký ShopEasy, chú thích locator từng ô nhập và nút Đăng ký
📖 Dữ liệu động (dynamic test data): dữ liệu kiểm thử được sinh mới mỗi lần chạy (ví dụ email kèm timestamp), giúp test đăng ký không bị trùng và chạy lại nhiều lần mà không lỗi.

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.

💡 Đăng nhập là bước xảy ra TRƯỚC hầu hết luồng khác — nếu test đăng nhập chạy chậm hoặc flaky, toàn bộ bộ test phía sau bị ảnh hưởng dây chuyền. Ưu tiên làm nó ổn định đầu tiê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.

Các ca cần tự động hóa cho đăng ký & đăng nhập ShopEasy Ca kiểm thửBước chínhKết quả mong đợiĐăng ký hợp lệĐiền tên/email động/mật khẩu, bấm Đăng kýĐiều hướng sang /tai-khoanĐăng ký với email đã tồn tạiDùng lại email đã đăng ký trướcHiện lỗi 'Email đã tồn tại'Đăng ký để trống trường bắt buộcBỏ trống Họ tên hoặc Mật khẩuHiện lỗi bắt buộc, không tạo tài khoảnĐăng nhập đúng mật khẩuNhập email + mật khẩu hợp lệĐiều hướng sang /tai-khoanĐăng nhập sai mật khẩuNhập đúng email, sai mật khẩuHiện lỗi, vẫn ở /dang-nhapĐăng nhập để trống mật khẩuBỏ trống ô mật khẩu, bấm Đăng nhậpNút bị chặn hoặc hiện lỗi bắt buộcĐăng xuấtBấm nút Đăng xuất ở trang tài khoảnĐiều hướng về /dang-nhap, xoá phiênGiữ phiên sau khi tải lại trangĐăng nhập xong, reload trangVẫn ở trạng thái đã đăng nhậpƯu tiên tự động hóa đủ 8 ca này trước khi mở rộng sang các luồng khác.
Bảng 8 ca cần tự động hóa cho luồng đăng ký & đăng nhập ShopEasy

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).

🔒

Nội dung bị khoá

Bạn đang xem bản xem trước. Đăng nhập để mở khoá toàn bộ bài viết và tất cả tài liệu Tester/QA.

Đã xem 24% nội dung
  • Đọc trọn vẹn mọi bài viết
  • Lưu bài & ghi chú cá nhân
  • Theo dõi tiến độ đã đọc
  • Luyện phỏng vấn, ISTQB, Mock
Đăng nhập để đọc tiếp

Chưa có mã? Lấy mã qua Fanpage / Zalo CyberSoft.

0

💬 Bình luận (0)

Bạn có thể đọc mọi bình luận. Đăng nhập để bình luận

Chưa có bình luận nào. Hãy là người đầu tiên!