KIỂM THỬ TỰ ĐỘNG VỚI SELENIUM WEBDRIVER: XÁC THỰC DỮ LIỆU CHO CHỨC NĂNG ĐĂNG NHẬP

Chào các bạn, hôm nay mình xin gửi đến các bạn bài viết hướng dẫn xác thực dữ liệu cho chức năng đăng nhập bằng Selenium WebDriver. Bây giờ chúng ta cùng bắt đầu nhé.

Việc xác thực dữ liệu trong và sau quá trình tự động hóa thực sự rất quan trọng. Nó góp phần giảm thiểu công việc của các Tester và đẩy nhanh quá trình tìm lỗi. Việc xác thực dữ liệu chỉ đơn giản là việc ta đưa ra giá trị mong muốn và đem so sánh với kết quả trả về hoặc dữ liệu trả về của quá trình tự động hóa. Bây giờ chúng ta cùng bắt đầu tìm hiểu việc xác thực dữ liệu thông qua các ví dụ cụ thể nhé.

Đầu tiên mình sẽ truy cập vào trang web có chức năng đăng nhập mà mình muốn Test.

Tiếp theo mình viết các câu lệnh để tự động hóa việc đăng nhập. Đầu tiên mình viết câu lệnh mô tả đăng nhập, ở lần mô tả này mình sẽ cho đăng nhập thành công (Nhập đúng Password và Username).

Tiếp theo sau khi đăng nhập thành công thì sẽ chuyển đến trang Profile với tiêu đề và đường dẫn khác. Ở đây mình sẽ viết thêm câu lệnh để xác thực tiêu đề và đường dẫn của trang web với hai giá trị mong muốn là  expectedTitle = “Profile ‹ Automation Blog — WordPress” là tiêu đề và expectedURL =  https://kiemthutudong.com/blog/wp-admin/profile.php là đường dẫn của trang web. Mình sẽ lấy hai giá trị mong muốn ở trên đem so sánh với hai giá trị trả về từ quá trình tự động là actualTitle = driver.getTitle() và actualURL = driver.getCurrentUrl() thông qua hàm Assert.assertEquals(). Xem hình bên dưới để biết thêm nhé.

Tiếp theo mình sẽ chạy Test để kiểm tra kết quả nhé.

Test chạy thành công.

Đó là một trường hợp tiêu biểu cho việc xác thực dữ liệu đăng nhập. Tiếp theo mình sẽ làm thêm bốn trường hợp nữa cho việc đăng nhập không thành công. Đầu tiên mình sẽ tạo mảng dữ liệu nhập vào cho Password và Username, cùng với một trường dữ liệu dành cho việc thông báo lỗi khi đăng nhập không thành công.

Đầu tiên mình tạo mảng dữ liệu hai chiều có tên là data.

Trường hợp đầu tiên mình cho dữ liệu tài khoản sai còn dữ liệu mật khẩu đúng và dữ liệu thông báo như hình bên dưới.

Trường hợp thứ hai mình cho dữ liệu tài khoản đúng còn dữ liệu mật khẩu sai và dữ liệu thông báo như hình bên dưới.

Trường hợp thứ ba mình để dữ liệu tài khoản trống còn dữ liệu mật khẩu đúng và dữ liệu thông báo như hình bên dưới.

Trường hợp thứ tư mình để dữ liệu mật khẩu trống còn dữ liệu tài khoản đúng và dữ liệu thông báo như hình bên dưới.

Toàn bộ mảng dữ liệu sau khi đã tạo xong.

Tiếp theo mình tạo một vòng for bên dưới trường dữ liệu, và tạo một mảng data1 chứa từng hàng dữ liệu sau mỗi lần lặp.

Lưu ý mỗi khi chúng ta đăng nhập không thành công (sai Usernam, sai Password,…) sẽ có một trường thông báo ở trên đầu của form đăng nhập như hình bên dưới.

 Nhiệm vụ trước mắt của chúng ta là lấy được địa chỉ Xpath của trường thông báo lỗi này.

Sau khi lấy địa chỉ Xpath, bên trong vòng for chúng ta tiến hành viết câu lệnh tương tác và xác thực dữ liệu. Ở bên dưới khi mình truyền dữ liệu mình muốn điền vào ô Username và Password mình sẽ truyền data1[0] cho Username và data1[1] cho Password tương ứng với dữ liệu mình đã đặt sẵn bên trong mảng theo từng trường hợp. Cuối cùng mình cho so sánh dữ liệu của trường Error khi đăng nhập không thành công. Mình cho đầu ra mong đợi là biến expectedError = data1[2] tương ứng với chuỗi thông báo mình đã để sẵn trong mảng theo từng trường hợp và mình cho đầu ra thực tế là biến actualError có giá trị là Text của ô thông báo lỗi, các bạn xem hình bên dưới để hiểu rõ thêm nhé. Lưu ý trước mỗi lần nhập dữ liệu vào ô Username và Password mình đều phải clear dữ liệu bên trong trước khi nhập dữ liệu mới để tránh việc dữ liệu bị ghi liền vào dữ liệu trước đó. Và còn một lưu ý nữa mình sẽ để thêm dòng Thread.sleep(2000) bên dưới lệnh bấm vào Button “login”  và bên dưới biến actualError để hệ thống có thời gian nghỉ và hiện các web elements đầy đủ.

Nhìn lại tổng quan code trước khi tiến hành thực thi.

Cuối cùng mình tiến hành chạy Test và kiểm tra kết quả.

Đó là toàn bộ bài viết hướng dẫn xác thực dữ liệu cho chức năng đăng nhập bằng Selenium WebDriver . Nếu có bất kì thắc mắc nào, các bạn có thể để lại phần bình luận phía bên dưới bài viết mình sẽ giải đáp. Cảm ơn các bạn đã dành thời gian đọc bài chia sẻ của mình.

Chúc các bạn thành công.

Nam Ngọc – PLT SOLUTIONS

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *