Hôm nay chúng ta sẽ nói về mô hình POM - Page Object Model in robot framework.
Mình tin rằng khi các bạn mới dùng robot framework thì cũng sẽ thắc mắc về cách tổ chức code trong project của robotframework như thế nào?
Đầu tiên chúng ta sẽ chia thành các thư mục như sau:
1. Page: nơi sẽ chứa các page của trang web or mobile app. ví dụ nhưng page login chả hạn
2. Resources: Nơi sẽ chứa các hàm common, hoặc các data test hoặc file cài đặt , ví dụ như apk or app
3. Test: Nơi sẽ chứa toàn bộ test case của dự án, có thể chia nhỏ hơn thành các thư mục con, ví dụ như test_login
OK, chúng ta sẽ đi từng file cụ thể như sau:
1. File common_keyword.robot:
File này sẽ chứa toàn bộ các keyword dùng chung, ví dụ như input text , click element...
Trong ví dụ này, cụ thể mình có 03 keyword như dưới đây. Để đảm bảo tetstcase luôn đúng thì mình chờ cho nó xuất hiện.
Ở đây, chúng ta sẽ khai báo tất cả các thư viện cần sử dụng vào 1 file này, khi cần sửa, xóa thì cứ vào file common_keyword.robot chứ không cần phải đi tìm ở các file khác.
*** Settings *** Library SeleniumLibrary *** Keywords *** wait and input text [Arguments] ${locator} ${txt_value} Wait Until Element Is Visible ${locator} Input Text ${locator} ${txt_value} wait and click element [Arguments] ${locator} Wait Until Element Is Visible ${locator} Click Element ${locator} Check Element Visible [Arguments] ${locator} ${present}= Run Keyword And Return Status Element Should Be Visible ${locator} 10s [Return] ${present}
2. File loginPage.robot
File này chứa các element của page cần test, và chứa các action liên quan .
Chú ý: các locator của element sẽ được đặt vào biến, để sau này khi locator bị thay đổi, thì chúng ta chỉ cần đổi ở nơi khai báo biến là được.
Trong page, cần import file common để có thể sử dụng tất cả các keywork của file common.
*** Settings *** Resource ../Resources/common_keyword.robot *** Variables *** ${url} https://www.adayroi.com/ ${btn_DangNhap_DangKy} Class:header-username ${txt_name} id:j_username ${txt_pass} id=j_password ${btn_login} css=.btn.btn-primary.btn-block.js-login-btn *** Keywords *** open website Adayroi Open Browser ${url} chrome click button DangNhap,DangKy wait and click element ${btn_DangNhap_DangKy} type username [Arguments] ${txt_value} wait and input text ${txt_name} ${txt_value} type password [Arguments] ${txt_value} wait and input text ${txt_pass} ${txt_value} click button login wait and click element ${btn_login}
file test này chúng ta chỉ cần gọi lại các action tương ứng với các step ở Page cần test.
Chú ý: trong setting cần import file loginpage để có thể dùng các keywork ở page đó.
*** Settings *** Resource ../page/loginPage.robot *** Test Cases *** test login open website Adayroi click button DangNhap,DangKy type username hainv type password 123456 click button login
OK, vậy là chúng ta đã hiểu cơ bản cách dùng Page Object Model in robot framework là như thế nào.
Hẹn gặp các bạn ở bài sau!
Các bạn có ý kiến gì hãy để lại comment nhé!
Quá hay, cảm ơn ad nhiều
ReplyDelete