Showing posts with label python. Show all posts
Showing posts with label python. Show all posts

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

Data Driven Testing in Robot Framework

Chào các bạn!
Đã lâu rồi mình mới quay lại viết blog :D
Tại bài trước, chúng ta đã làm quen với testcase đầu tiên trong robotFW
Hôm nay chúng ta sẽ tìm hiểu về Data Driven Testing trong Robot Framework.
Các thư viện cần có:
  • SeleniumLibrary
    • Cài đặt tại Trang chủ , và xem cách sử dụng tại đây
    • Lưu ý:khi add Lib trong robotFW thì cần viết đúng hoa thường như trang chủ 
  • ExcellentLibrary
  • Tạo file excel chứa data test:

    • Chú ý: Do lib excel được viết từ openpyxl nên chỉ hỗ trợ excel có đuôi xlsx 
    • Chúng ta chú ý các tên cột, tên file và tên sheet trong excel
Ok, chúng ta bắt đầu thôi.
Kịch bản của chúng ta như sau:

  1. vào trang web http://demo.guru99.com/insurance/v1/index.php
  2. nhập email và pass 
  3. click button login
  4. get text của thông báo hiện lên
  5. compare text thông báo mong muốn trong excel và text show trên web
Đây là code của tips này:


*** Settings ***
Library           ExcellentLibrary
Library           SeleniumLibrary
Library            Collections

*** Test Cases ***
login
    Open Browser    http://demo.guru99.com/insurance/v1/index.php    chrome
    Maximize Browser Window
    Open Workbook    Resources/data.xlsx
    Switch Sheet    login
    @{all}=    Read Sheet Data
    @{data}=  Get Slice From List  ${all}  1
    : FOR    ${i}    IN    @{data}
    \    Clear Element Text    email
    \    Input Text    email    ${i[0]}    #first columns in excel
    \    Clear Element Text    password
    \    Input Password    password    ${i[1]}
    \    Click Button    name = submit
    \    Wait Until Element Is Visible    css=div> span
    \    ${lblActual}=    Get Text    css=div> span
    \    Should Be Equal As Strings    ${lblActual}    ${i[2]}
    Close Browser




Chú ý:

  1. các biến như ${i[0]} - do email là cột đầu tiên của excel, nhưng khi lấy về mảng, thì giá trị đầu tiên là 0. nếu email ở cột số 2 thì trong code sẽ là Input Text email ${i[1]}
  2. tại dòng số 13 : @{data}=  Get Slice From List  ${all}  1  : do khi đọc data ở excel, data trả về sẽ lấy cả header của excel, tức là giá trị (email, pass, expected), nên cần dùng lệnh này để bỏ đi giá trị đầu tiên đó. các bạn xem thêm tại đây nhé 
  3. file data.xlsx để trong thư mục Resources
OK, vậy là xong rồi. có thắc mắc các bạn hãy để lại bình luận bên dưới nhé!
Hẹn gặp lại các bạn vào các bài tiếp theo!

Set up Robot Framework - Cài đặt Robot Framework

Có thể các bạn đã từng nghe qua về Robot Framework. Bạn muốn cài đặt nó? và khi vào trang chủ, mục hướng dẫn cài đặt, các bạn thấy nó như ma trận?
Tôi cũng vậy, thật kinh khủng với những người mới bắt đầu như tôi.
Sau 1 hồi mò mẫm, cũng đã cài thành công và note lại vào đây cho các bạn!

Bài viết này chúng ta sẽ tìm hiểu về Robot Framework và cách cài đặt nó.
  1. Giới thiệu
  2. Cài đặt trên môi trường windows 7

1. Giới thiệu:

Robot Framework là một framework kiểm thử tự động dành cho acceptance testing (test nghiệm thu) và acceptance test-driven development (ATDD). Trong Robot Framework ta có thể sử dụng cách tiếp cận Keyword-driven bên cạnh data-driven hay behavior-driven.

Được sử dụng tốt nhất trên môi trường UNIX, Robot Framework có khả năng dễ dàng mở rộng với những thư viện open-source.

Format file trong Robot Framework có dạng bảng, nên ta có thể view nó dưới dang HTML hoặc TSV, nó có những bảng chính sau

1.1: Ưu điểm

  • Cú pháp rõ ràng dễ hiểu, gần giống với ngôn ngữ tiếng Anh, các từ khóa và đối số được phân cách bởi 4 kí tự trống, các từ khóa được định nghĩa khá giống với ngôn ngữ lập trình Python khi sử dụng 4 dấu cách để phân chia.
  • Có nhiều thư viện hỗ trợ cho nhiều phương thức test khác nhau như Selenium2Library, Android library, OperatingSystem, Swing, Windows GUIs,... (Libraries)
  • Linh hoạt, có thể mở rộng các chức năng thông qua các module Python hoặc Java
  • Report rõ ràng, chi tiết
  • Được hỗ trợ bởi đa số trình editor và có RIDE hỗ trợ (Robot Framework IDE)

2. Cài đặt Robot Framework trên Windows

Để cài đặt được, thì chúng ta cần cài các thành phần sau:
  • Python
  • Robot Framework
  • RIDE (Standalone RobotFramework Test Data Editor)

2.1: Cài đặt Python

Truy cập vào trang download của Python, các bạn có thể dùng python 2 hoặc 3. Ở đây mình dùng python 2



Khi cài đặt, hãy chú ý đoạn này nhé, chọn chỗ này để Python nó set path sẵn cho mình.


Nếu lỡ tay nhấn next mà không chọn chỗ này, thì phải set path bằng tay, xem hướng dẫn tại đây, và chúng ta sẽ thêm 2 dòng này vào path :

C:\Python27\;C:\Python27\Scripts;

2.2: cài đặt Robot Framework

- Mở cmd bằng cách nhấn Ctrl + R, sau đó gõ cmd và Enter


- tiếp đó paste lệnh này để cài RF

pip install robotframework

Ảnh dưới đây là do mình cài rồi nên nó thông báo vậy :D


2.3 cài RIDE

Sử dụng lệnh sau để cài RIDE (chạy trên cmd nhé)

pip install robotframework-ride

Sau khi cài xong thì dùng lệnh 
ride.py
để chạy nó.
Hiện tại bản mới nhất là robotframework-ride-1.7.3.1


Vậy là chúng ta đã hoàn thành cài đặt Robot Framework trên windows - Set up Robot Framework on Windows. Cảm ơn các bạn đã theo dõi.