RobotFramework腳本語法


1.准備數據部分:

(1)設置庫文件:先調用系統自帶的庫文件Selenium2Library

*** Settings ***
Library           Selenium2Library

(2)設置關鍵字keyword:

*** Keywords *** 獲取cookie //keyword的名稱
    [Arguments]    ${username}                        //[Arguments]設置入參
    open browser   *******(測試網站地址)    chrome      //open browser 庫文件自帶關鍵字
    input text    id = username    ${username}
    click button    id=login-btn
    ${cookie}    Get Cookies                          //Get Cookies,庫文件自帶關鍵字,獲取Cookie值,給賦值給變量${cookie}
    Set Global Variable    ${cookie}                  //設置${cookie}為全局變量,使得所有用例和關鍵字中可以使用
    close browser
    [Return]    ${cookie}                            //設置出參

(3)keyword之間傳參:

 
         
*** Keywords ***
設置多個cookie
    ${cookie}    獲取cookie    chunyu     //調用其他keyword中的變量值,chunyu為入參
    Set Global Variable    ${cookie}

     當keyword:設置多個cookie   想要調用keyword:獲取cookie  中的變量值時,可以這樣調用:

     變量名${cookie}     Keyword-Name(被調用的keyword的名字)   入參(被調用的keyword的入參)

 

(4)涉及UI的腳本:

 獲取頁面元素的Xpath路徑:谷歌瀏覽器:檢查--使用元素選擇器--找到需要操作的元素--右擊copy---copy XPath

獲取待操作元素的路徑如下://*[@id="js-add-task-form"]/div[2]/div/div/div[1]/ul/li/label/span

獲取值班cookie
    [Arguments]    ${username}
    open browser    *****(測試網址)    chrome
    input text id = username    ${username}
    click button    id=login-btn
    wait until page contains element    //div[@class="ui-selects-selection"]    45
    click element    //div[@class="ui-selects-selection"]
    input text    //input[@class="js-selects-input bui-form-field"]    huatu
    wait until page contains element    '//*[@id="js-add-task-form"]/div[2]/div/div/div[1]/ul/li/label/span'    45
    sleep    2
    click element    '//*[@id="js-add-task-form"]/div[2]/div/div/div[1]/ul/li/label/span'
    click element    //a[@class="button m-button"]
    wait until page contains element    //button[@class="button button-primary"]
    click element    //button[@class="button button-primary"]
    ${cookie}    Get Cookies
    Set Global Variable    ${cookie}
    [Return]    ${cookie}

和UI操作有關的動作有:

wait until page contains element       等待直到頁面出現某個元素
例如:wait until page contains element //div[@class="ui-selects-selection"] 45

click element                                     鼠標選中某個元素
例如:click element //div[@class="ui-selects-selection"]

click button                                        點擊按鈕
例如:click button id=login-btn

input text                                            輸入框輸入值
例如:input text //input[@class="js-selects-input bui-form-field"] huatu

sleep 2                                              睡眠2秒

 

2.測試用例如何組織:

(1)用例配置:

*** Settings ***
Documentation     接口:/duty/sendToInnerDuty.action
Suite Setup       Run Keywords    獲取cookie    chunyu    AND    DutyLib.Set Cookie    ${cookie}
Test Template     duty_sendToInnerDuty
Library               ../../../Libs/DutyLib.py
Resource           准備數據.txt
Resource          ../../../opptions.txt
字段說明:
Documentation 描述測試接口的路徑
Suite Setup      配置用例運行的環境,比如說提前獲取到cookie    Run Keywords字段就是,通過調用<獲取cookie>這個keyword來設置DutyLib這個python文件中需要的cookie值
 
        
Test Template    設置運行該測試用例需要調用的python函數:duty_sendToInnerDuty
Library          設置運行該測試用例需要調用的外部庫文件,也就是自己寫的python文件,該文件中包含了函數duty_sendToInnerDuty,只有設置了這個庫文件,上述函數才可以被調用

Resource         設置運行該測試用例需要的數據資源,其中<准備數據.txt>文件和該用例處於同一個文件夾下,是一個小前提,而<opptions.txt>是一個大前提(也就上述的准備數據部分),是在整個用例組的文件夾下
 


(2)用例設計:

*** Test Cases ***
項目-常規值班-工作日9:00-客戶負責人
    [Setup]    duty_setup    startTimeStr=${next_Mon} 09:00:00    type=normal_duty    customerId=177016
    id=${duty_id}
 
        

----在用例中設置前置步驟:

[Setup]    duty_setup    startTimeStr=${next_Mon} 09:00:00    type=normal_duty    customerId=177016

關鍵字:[Setup]  用於設置該用例的前置步驟

前置步驟名稱:  duty_setup     //該前置步驟是一個keyword,后邊跟的是這個keyword的入參

入參:   startTimeStr=${next_Mon} 09:00:00 type=normal_duty customerId=177016

 

----在keyword中調用python函數:

*** Keywords ***
duty_setup
    [Arguments]    ${startTimeStr}=2018-12-31 00:00:00    ${type}=normal_duty    ${customerId}=177016
    ${duty_id}    duty_save    id=${EMPTY}    dutySn=${EMPTY}    problemId=${EMPTY}    type=${type}    customerId=${customerId}
    ...    startTimeStr=${startTimeStr}    endTimeStr=2018-12-31 23:59:59    customerContact=客戶聯系人_test    contactInfo=聯系方式_test    infoSource=internal    sourceDetail=來源詳情_test
    ...    associationEntityListJson=[]    attention=注意事項_test    priority=HIGH    title=任務主題_test    description=<p>${time}_任務描述_test</p>
    Set Suite Variable    ${duty_id}

 該keyword設置入參:   [Arguments] ${startTimeStr}=2018-12-31 00:00:00 ${type}=normal_duty ${customerId}=177016

調用python函數:  duty_save    該函數是在庫文件DutyLib.py中定義的

該python函數的出參: ${duty_id}

該python函數的入參:跟在函數名后邊

設置出參變量為全局變量:  Set Suite Variable ${duty_id}  ,方便其他用例在以該keyword為前置步驟時,可以使用這個全局變量


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM