Vì khi chạy test automation trên môi trường mạng có thể với nhiều nguyên nhân mà mỗi lần chạy lại khác nhau, trang web có thể load lâu hơn, nhanh hơn, khiến cho test script của bạn liên tục gặp phải Exception. Hoặc là một object nào đó trên website sau một khoảng thời gian nó mới hiển thị lên nhưng chúng ta lại không biết là 3 giây nó hiện hay 5 giây 7 giây. Chính vì thế chúng ta cần cơ chế Waits cho phù hợp để test cases auto đáp ứng được nhiều trường hợp thì sẽ ổn định.
Để khắc phục điều này thì akaAt Studio cung cấp các keyword Waits để giúp cho test script trở nên ổn định hơn, đồng bộ hóa giữa những lần run test.
Cụ thể thì hiện tại akaAT Studio có 9 hàm waits.
Cái keyword wait mà chúng ta sử dụng nhiều hổm rài là Waits keyword thuộc Core Keywords thì các bạn cũng biết nó ý nghĩa gì rồi đó. Nó dùng để chờ đợi chính xác cụ thể thời gian cho từng bước thực thi.
Waits keyword thuộc về Java và sẽ khó chờ đợi cho nhiều trường hợp mà phần tử hiển thị nhanh chậm khác nhau sau các lần chạy. Ít ai dùng thằng này nhiều khi xây dựng project auto test. Vì nó không ổn định cho chung cả hệ thống. Chỉ dùng nó khi cần thiết nhất thôi. Hạn chế càng ít càng tốt.
Như vậy thì chúng ta sẽ dùng các hàm waits còn lại và cụ thể là các hàm Wait For Element. Nghĩa là nó chỉ tác động lên chính Element/Object mà mình chỉ định cụ thể. Trong bài này thì An chỉ cho các bạn vài hàm waits chính thường dùng thôi. Còn lại khi nào cần các bạn sẽ gọi dùng sau nhé.
Website Demo: https://app.hrsale.com/
Đợi phần tử chỉ định đến khi có thể nhấp được trong khoảng thời gian nhất định (tính bằng giây). Nghĩa là ví dụ chúng ta chờ đợi tối đa là 10 giây thì trong khoảng 10 giây đó nếu tới giây thứ 2 mà nó click được thì nó sẽ click chứ không phải chờ đợi đủ 10 giây mới click nhé.
Đợi cho đến khi phần tử web chỉ định sẵn sàng hiển thị lên UI trong thời gian chờ. Nghĩa là nó vừa chờ đến khi xuất hiện tồn tại trong DOM và hiển thị lên trên UI luôn. Keyword này được sử dụng rất nhiều và hầu như là dùng nó tầm 90%. Vì ý nghĩa của nó đúng với thực tế mong đợi khi chúng ta testing là các object phải sẵn sàng hiển thị rõ ràng hết thì chúng ta mới thao tác.
Keyword này khác với keyword Visible ở chổ là nó sẽ chờ đợi cho đến khi phần tử web chỉ định tồn tại trong DOM (source nguồn HTML) mà KHÔNG cần sẵn sàng hiển thị lên UI trong thời gian chờ. Nghĩa là nó chỉ cần có tồn tại là được.
🔆 Tại sao phải cần các keyword Verify?
Bởi vì trong kiểm thử phầm mềm nói chung thì cái khâu kiểm tra đúng sai chính là khâu xác nhận lại vấn đề xem nó có thoã mãn các yêu cầu đề ra hay chưa. Đáp ứng các tiêu chí test lúc nào cũng có Expected Result (kết quả mong muốn). Thế thì muốn biết nó đúng hay chưa rõ ràng là trong kiểm thử thủ công (Manual Test) chúng ta nhìn bằng mắt đúng không 😁
Còn trong Automation Test thì làm sao nó nhìn được. Thế nên akaAT Studio bày ra cho chúng ta cách để xử lý chuyện kiểm tra đúng sai ấy bằng các keyword Verify.
Cụ thể thì hiện tại akaAT Studio có 25 hàm Verify dành cho Element và 6 hàm Verify dành cho xử ký khác. Trong bài này thì An chỉ cho các bạn các hàm Verify chính dành cho Element thôi nhé.
Keyword này dùng để xác minh xem phần tử web đã cho có hiển thị hay không.
Ví dụ trên là An kiểm tra case Login sai thì hệ thống hiện alert error message. Nhiệm vụ chúng ta là kiểm tra xem message đó có hiển thị hay không bằng keyword Verify Element Visible. Và kết quả là passed hen.
Giờ thử case Login thành công, nghĩa là error message không hiện. Thì xem kết quả như thế nào nhé.
Như vậy là rõ ràng keyword này check khá chính xác hen.
Nhưng nếu chỉ xác minh một Element hiển thị thôi thì chưa đủ. Nếu cái element đó dạng message hay notifications gì đó thì hay hơn là chúng ta check luôn cái text của nó để biết nó vừa có hiển thị mà vừa có chính xác nội dung hay không.
Keyword dùng để xác minh văn bản của một phần tử bằng với đầu vào văn bản dự kiến. (Actual == Expected)
POS: https://saleserpnew.bdtask.com/saleserp_v9.8_demo/login
CRM: https://rise.fairsketch.com/signin
HRM: https://app.hrsale.com/
eCommerce CMS: https://demo.activeitzone.com/ecommerce/login
Perfex CRM (Anh Tester): https://crm.anhtester.com/admin/authentication
eCommerce CMS (Anh Tester): https://cms.anhtester.com/login
Anh Tester
Đường dẫu khó chân vẫn cần bước đi
Đời dẫu khổ tâm vẫn cần nghĩ thấu