1. 程式人生 > 實用技巧 >Robot Framework用法全集

Robot Framework用法全集

今天總結下Robot Framework最基本的用法,一來呢,希望自己以後看到這篇總結,很快能回憶起如何使用Robot Framework。二來呢,以初學者的姿態總結Robot Framework,希望幫助到剛入門,卻無從下手的新手們,畢竟網上很多資料可能是一些大神整理的,跳躍性很大。

目錄

一,環境的搭建

二,最基本流程

三,Ride各個面板說明

四,Robotframework庫的介紹

五,用例編寫及執行

一,環境的搭建

點選返回目錄

關於robotframework環境搭建請參考筆者的另外一篇博文:Robot Framework的環境搭建

二,最基本流程

點選返回目錄

2.1建立專案New Project

File->New Project

注:選擇directory原因是,在directory的專案下可以建立測試套件,如果是tpye為file,則只能建立測試用例,這不利於用例的管理。

2.2建立測試套件New Suite

右鍵專案Test,點選New Suite。

注:選擇file原因是,在file的測試套件下可以建立測試用例,如果是tpye為directory,還得重新再繼續建file的測試套件,才能建立測試用例,因為測試用例只能在file型別下建立。

2.3建立測試用例New Test Case

右鍵測試套件,點選New Test Case。

最終頁面顯示

三,Ride

各個面板說明

點選返回目錄

3.1測試套件工作區說明

3.1.1測試套件Edit區

大體分成4個部分。

(1)載入外部檔案

Library:載入測試庫,主要是[PYTHON目錄]\Lib\site-packages裡的測試庫。具體操作可檢視博文下方的“4.2第三方庫”。

Resource:載入資源,主要是你工程相關的資原始檔。具體操作可檢視博文下方的“5.2.5匯入Resource”。

Variables:載入變數檔案,不怎麼用,可暫時忽略。

(2)定義內部變數

Add Scalar:定義變數。

Add List:定義列表型變數。

Add Dict:

(3)元資料定義

Add Metadata:定義元資料。

(4)settings

一般settings是隱藏的,點選settings按鈕,則會顯示。

Documentation:文件,每一項都有。可以給當前的物件加入文件說明。

Suite Setup指的是測試套件啟動的時候就執行某個關鍵字。(例:我在Suite Setup設定了Sleep | 5sec,表示等待5秒,要注意關鍵字的引數要使用|分隔)

Suite Teardown指的是測試套件結束的時候就執行某個關鍵字。

Test Setup指的就是案例啟動的時候執行某個關鍵字。

Test Teardown指的就是案例結束的時候執行某個關鍵字。

Test Template:測試模版,這是可以指定某個關鍵字為這個測試套件下所有TestCase的模版,這樣所有的TestCase就只需要設定這個關鍵字的傳入引數即可。

Test Timeout:設定每一個測試案例的超時時間,只要超過這個時間就會失敗,並停止案例執行。這是防止某些情況導致案例一直卡住不動,也不停止也不失敗。

Force Tags:在檔案型Suite這裡還可以繼續給子元素增加Force Tags,但是他不能刪除父元素設定的tags。

Default Tags:預設標記,其實和Force Tags沒啥區別的。

Arguments:傳入引數。

Return Value:返回值。

3.1.2測試套件Text Edit區

測試套件測試用例文字資訊。

3.1.3測試套件Run區

Execution Profile:選擇執行方式,裡面有pybot、jybot和custom script。預設pybot即可。

Start:執行案例。若該測試套件下的測試用例前無勾選,則預設執行該測試套件下所有的用例。若測試用例勾選,則執行該測試陶見下勾選的用例。

Stop:停止案例。

Report和Log:報告和日誌,要執行之後才能點選。他們的區別,報告更多是結果上的展示,日誌更多是過程的記錄,更多使用的還是日誌。

Autosave:自動儲存,如果不勾選,在修改了案例之後如果沒有儲存的話,執行案例時會提示是否儲存。勾選則在執行時自動儲存了。

Arguments: pybot的引數(或者jybot等)。完整版的引數可以在doc命令列輸入pybot.bat --help

Only Run Tests with theseTags:只執行這些標記的測試案例。在case的setting裡可以新增tag。

Skip Tests with these Tags:跳過這些標記的測試案例。在case的setting裡可以新增tag。

3.2測試用例工作區說明

3.2.1測試用例Edit區

(1)settings

Documentation:文件,每一項都有。可以給當前的物件加入文件說明。

Setup指的就是案例啟動的時候執行某個關鍵字。

Teardown指的就是案例結束的時候執行某個關鍵字。

Tags:標記某個測試用例。在Run區中Only Run Tests with theseTagsSkip Tests with these Tags,會通過這個標誌位來識別是否執行或跳過用例。

Timeout:設定每一個測試案例的超時時間,只要超過這個時間就會失敗,並停止案例執行。這是防止某些情況導致案例一直卡住不動,也不停止也不失敗。

Template:測試模版,這是可以指定某個關鍵字為這個測試套件下所有TestCase的模版,這樣所有的TestCase就只需要設定這個關鍵字的傳入引數即可。

(2)表格區

最重要的部分,編寫測試用例。

第一列一般寫的是關鍵詞,關鍵詞的來源包括BuiltIn庫,第三方匯入庫,自己編寫的匯入庫。詳見博文下方關於庫的說明:四,Robotframework庫的介紹

使用技巧:

通過ctrl+alt+space可以自動帶出相關關鍵字。以及相關用法,裡邊有對入參的說明。

Ctrl+滑鼠懸浮(即滑鼠在某個關鍵字上),可以直接顯示關鍵字的相關用法。

第二三四五列,一般是入參,紅色的表示必填的入參。淺灰色表示選填的入參。深灰色表示無需填寫。

輸入sho再同時按住ctrl+alt+space鍵,則可以自動帶出相關關鍵字,以及選中關鍵字的用法。

對於已輸入的關鍵字,忘了其用法,可以點選輸入框再同時按住ctrl+alt+space鍵,即可檢視該關鍵字的用法。

3.2.2測試用例Text Edit區

同測試套件。

3.2.3測試用例Run區

同測試套件。

四,Robotframework庫的介紹

點選返回目錄

4.1BuiltIn內建庫

首先先介紹下robotframework的庫,通過點選F5快捷鍵。目前只有內建的庫BuiltIn,關於內建的庫BuiltIn的關鍵字說明請檢視另外一篇博文:學習Robot Framework必須掌握的庫—-BuiltIn庫

注:其實關鍵字就是方法名函式名而已。

4.2第三方庫

只有內建的庫往往還不能滿足需求,還可以匯入第三方庫,如操作頁面的Selenium2Library。

第三方庫,主要是[PYTHON目錄]\Lib\site-packages裡的庫,一般安裝的庫會在此目錄下。Selenium2Library庫的安裝也可以詳看筆者的另外一篇博文:Robot Framework的環境搭建。博文中有說明Selenium2Library庫的安裝。

在測試套件下的工作區的右方,點選Library,在彈出框的name欄輸入“Selenium2Library”,點選OK即可。

當工作區的Library那一行黑色顯示,說明匯入成功(如果顯示紅色說明匯入不成功,可自行百度解決)。

點選F5快捷鍵檢視,可檢視多了一個Selenium2Library的庫。

4.3匯入自己編寫的庫

比如說有些功能想自己編寫,比如說如下程式碼,想要匯入實現校驗url的功能,檔名為Myimport.py(檔名隨意取的,最好是英文的),該檔案儲存在D:\robotframework\MyLibrary,此時需要將該路徑新增到[PYTHON目錄]\Lib\site-packages下的字尾名為pth的檔案(檔名隨意取的,最好是英文的)中。

# -*- coding:utf-8 -*-
"""
自己編寫,驗證獲得一個URL地址的副檔名。
"""
import re

def Matchurl(str0):
    u'''
    驗證url的有效性
    '''
    str1=re.split("[.]",str0)
    listt = ['php','html','asp','jsp']
    if str1[-1] in listt:
        return "TRUE"
    else:
        return "FAIL"

if __name__=='__main__':
    str_input='hehe.php'
    print match_url(str_input)

然後重啟ride,在測試套件的工作區的右方,點選Library,在彈出框的name欄輸入“Myimport”,點選OK即可。

點選F5,即可看到匯入自己編寫的庫。

注意,在Myimport.py檔案中編寫函式描述時,前面要加u,否則F5檢視時,會亂碼。

注意,在Myimport.py檔案中函式命名為MatchUrl和Match_Url,在ride中都會解析為Match Url。

五,用例編寫及執行

點選返回目錄

5.1編寫百度搜索的測試案例。

關於selenium2Library的關鍵字使用,可自行百度“robot framework的selenium2Library的操作手冊”,網上大把說明。

這裡提一句,關於定位元素,可以通過id,name,xpath,link,css,tag等定位。

Id定位:id=kw

Name定位:name=wd

Xpath定位:xpath=//input[@id='kw']

Link定位:link=link_text

Css定位:css=#kw

Tag定位:tag=input

具體定位方式跟selenium的如出一轍,可以檢視筆者另外一篇博文:Selenuim+Python之元素定位總結及例項說明

5.2分層方法-案例層和流程層分離

如果想改變輸入框的輸入詞,則需要不停的複製case,為了減少冗餘,可以做一個簡單的分層,把搜尋流程剝離成一個關鍵字,然後再不同的case中呼叫這個關鍵字,然後傳遞不同的引數,以進行不同資料在同一流程下測試。

那如何分層呢?

5.2.1建立User Keyword

先選中case中所有的指令碼,右鍵選擇Extract Keyword。

此時左邊區域會出現“搜尋測試”User Keyword,該User Keyword在測試套件下,一般測試套件不放置User Keyword,建議User Keyword放置在Resource下。

5.2.2建立Resource

如果存在可以不需要建立。

右鍵專案Test,點選New Resource。

我這裡新建的Resource叫做MyResource.txt.

5.2.3將User Keyword移至MyResource下。

5.2.4User Keyword入參設定

由於搜尋資料可變,將其作為入參,變數用${}表示,在settings的Arguments設定,若是有多個入參,那麼用|分隔,如${入參1}|${入參1}

5.2.5匯入Resource

需要在測試套件中匯入Resource,才能使用該Resource下的User Keyword。這一步別忘了哦。如果之前匯入過,則忽略。

在測試套件下的工作區的右方,點選Resource,在彈出框的name欄輸入“MyResource.txt”,點選OK即可。

當工作區的Resource那一行藍色顯示,說明匯入成功(如果顯示紅色說明匯入不成功,可自行百度解決)。

點選F5快捷鍵檢視,可檢視多了一個MyResource.txt的庫。

5.2.6檢視測試用例

會發現原來的一串表格程式碼程式設計“搜尋測試”User Keyword,且還有個必須輸入的入參。

這樣可以輕鬆的新增多個測試案例了。

5.3分層方法-流程層和元素層分離

將搜尋測試中的內容繼續分層,將底層的關鍵字繼續拆分。

5.3.1建立Resource

如果存在可以不需要建立。

右鍵專案Test,點選New Resource。

我這裡新建的Resource叫做ElementResource.txt。

建立之後,記得在MyResource.txt工作區下,匯入ElementResource.txt資源哦。如何匯入,詳見“5.2.5匯入Resource”。

5.3.2建立User Keyword

選中Open Browser那一行,右鍵選擇Extract Keyword。

5.3.3將User Keyword移至ElementResource.txt下。

5.3.4將“開啟瀏覽器”的入參值由“http://www.baidu.com”改為${url}

此時,搜尋測試中,開啟瀏覽器的入參輸入框顯示紅色,說明必須有一個入參,可以填寫“http://www.baidu.com”。

5.3.5剩餘關鍵字

剩餘關鍵字重複5.3.2-5.3.4操作。

輸入搜尋關鍵字

點選搜尋

校驗標題

關閉瀏覽器

而此時搜尋測試頁面如下:

5.4執行測試用例

選中需要執行的用例,點選執行按鈕。

可以在Run區檢視到用例執行情況。

點選Report(或者直接複製下方的url),可以檢視到測試報告,綠底表示測試通過。

點選Log(或者直接複製下方的url)。