[akaAT Studio] Bài 6: Sử dụng các hàm Verify và Wait trong akaAT Studio

✅ Tại sao phải cần dùng Waits trong Automation Test
✅ Các hàm xác minh Verify trong akaAT Studio
✅ Các hàm chờ đợi Wait trong akaAT Studio

📝 BÀI TẬP: Bài tập viết test cases trên akaAT Studio

✅ Tại sao phải cần dùng Waits trong Automation Test

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ác hàm chờ đợi Wait trong akaAT Studio

Cụ thể thì hiện tại akaAT Studio có 9 hàm waits.

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

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/

1. Wait For Element Clickable

Đợ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é.

  • Object Repository: từ khoá này cần truyền vào một UIObject.
  • Data Input: có một tham số là timeout, thời gian chờ đợi tính bằng giây.

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

Khi các bạn đã dùng wait for element rồi thì chúng ta disable cái Waits keyword đi hoặc xoá.

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

Và các bạn lưu ý là các hàm Wait For Element khác nó cũng sẽ có cấu trúc y như vậy. Và mang ý nghĩa chung là chờ đợi tối đa trong khoảng thời gian chỉ định, trong khoảng thời gian đó nếu nó xử lý được theo điều kiện thì nói sẽ thao tác hành động chứ không phải chờ đợi cho đủ thời gian mới thao tác nhé.
Đó cũng là cái hay của nó so với Waits keyword vì nó sẽ áp dụng được cho nhiều trường hợp object đó xuất hiện nhanh hay chậm, hoặc đến khi nào mới thao tác lên nó được, thì rõ ràng khoảng thời gian mà chúng ta set sẽ bao quát được nó hơn là con số chính xác.

2. Wait For Element Visible

Đợ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.

  • Object Repository: từ khoá này cần truyền vào một UIObject.
  • Data Input: có một tham số là timeout, thời gian chờ đợi tính bằng giây.

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

Các bạn thấy rõ ràng là nếu như không dùng Wait For Element Visible chổ step 2.6 thì nó sẽ bị lỗi vì không tìm thấy element menu Employee. Do bị dính cái modal loading sau khi nhấn Login.

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

3. Wait For Element Present

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.

  • Object Repository: từ khoá này cần truyền vào một UIObject.
  • Data Input: có một tham số là timeout, thời gian chờ đợi tính bằng giây.

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

Keyword Wait For Element Present này cần kết hợp với các hàm Verify thì mới có tác dụng nhiều hơn và đầy đủ hơn tính trong một test cases.

🔆 Yeah còn mấy keyword Waits còn lại thì cũng ít dùng. Nó cũng rất dễ hiểu nên các bạn tìm hiểu thêm nhé.

✅ Các hàm xác minh Verify trong akaAT Studio

🔆 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é.

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

1. Verify Element Visible

Keyword này dùng để xác minh xem phần tử web đã cho có hiển thị hay không.

  • Object Repository: từ khoá này cần truyền vào một UIObject.
  • Data Input: 1 tham số timeout, chờ đợi tối đa trong khoảng thời gian để xác nhận. Giống keyword Wait For Element Visible. Nhưng cái này có xác nhận đúng sai luôn.


[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

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

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

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.

2. Verify Element Text

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)

  • Object Repository: từ khoá này cần truyền vào một UIObject.
  • Data Input: có 3 tham số gồm

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

  • expectedText: Kết quả mong muốn nhận được, cũng như mang đi so sánh với kết quả text lấy từ Element trên website. Trong ví dụ này An càn keierm tra text của error message có đúng hay không và chúng ta sử dụng Key word “Verify Element Text” để xác minh chính xác nội dung phải là “Invalid email or password”.
  • trimText: Kiểu Boolean: true/false để xóa khoảng trắng trước và sau của chuỗi, chỉ để lại khoảng trắng giữa các từ.
  • ignoreCase: Kiểu Boolean: true/false để bỏ qua kiểm tra chữ hoa, chữ thường.

Lưu ý là thường chúng ta nên kết hợp cả 2 hàm Verify Element Visible và Verify Element Text chung nhé. Cái Visible trước sau mới tới Text. Vì phải cần kiểm tra nó xuất hiện và hiển thị thì mới kiểm tra nội dung được chứ 😁

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

Khi chúng ta sửa cái text mong muốn lại thành “Invalid email or password 123” để kiểm tra case sai thử xem nó có chắc đúng hay chưa thì rõ ràng là tools báo Fail ngay.

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

[akaAT Studio] Bài 6:  Sử dụng các hàm Verify và Wait trong akaAT Studio | Anh Tester

Ok hen. Như vậy là rõ ràng tools check khá chính xác và qua đây chúng ta thấy hàm Verify Element Text này rất hay và được sử dụng rất nhiều để kiểm tra cũng như xác minh các giá trị trên website. Đáp ứng được các nhu cầu test cases manual đề ra và đúng với bản chất là Automation Testing. (vừa chạy tự động vừa có kiểm tra)


🔆 Các website rèn luyện học auto test

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 sẽ cập nhật thêm trong quá trình học đủ cho các bạn !!
  • 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