Page Object Model In Robot Framework

Chào các bạn, chúng ta lại gặp nhau trong loạt bài về robot framework.
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

Code của 3 file như sau


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}
3. File testLogin.robot
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é!

1 comment: