天天看點

【rf】Robot Framework用法總結

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

一,環境的搭建

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

二,最基本流程

2.1 建立項目New Project

File->New Project

【rf】Robot Framework用法總結
【rf】Robot Framework用法總結

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

2.2 建立測試套件New Suite

右鍵項目Test,點選New Suite。

【rf】Robot Framework用法總結
【rf】Robot Framework用法總結

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

2.3 建立測試用例New Test Case

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

【rf】Robot Framework用法總結
【rf】Robot Framework用法總結

最終頁面顯示

【rf】Robot Framework用法總結

三,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:傳回值。

【rf】Robot Framework用法總結

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 these Tags: 隻運作這些标記的測試案例。在case的setting裡可以添加tag。

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

【rf】Robot Framework用法總結

3.2 測試用例工作區說明

3.2.1 測試用例Edit區

(1)settings

Documentation:文檔,每一項都有。可以給目前的對象加入文檔說明。

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

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

Tags:标記某個測試用例。在Run區中Only Run Tests with these Tags和Skip Tests with these Tags,會通過這個标志位來識别是否運作或跳過用例。

Timeout:設定每一個測試案例的逾時時間,隻要超過這個時間就會失敗,并停止案例運作。這是防止某些情況導緻案例一直卡住不動,也不停止也不失敗。

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

(2) 表格區

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

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

使用技巧:

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

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

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

【rf】Robot Framework用法總結

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

【rf】Robot Framework用法總結

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

【rf】Robot Framework用法總結

3.2.2 測試用例Text Edit區

同測試套件。

3.2.3 測試用例Run區

同測試套件。

四,Robotframework庫的介紹

4.1 BuiltIn内建庫

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

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

【rf】Robot Framework用法總結

4.2 第三方庫

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

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

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

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

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

【rf】Robot Framework用法總結
【rf】Robot Framework用法總結
【rf】Robot Framework用法總結

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)      
【rf】Robot Framework用法總結

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

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

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

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

【rf】Robot Framework用法總結

五,用例編寫及執行

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

【rf】Robot Framework用法總結

關于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。

【rf】Robot Framework用法總結

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

【rf】Robot Framework用法總結

5.2.2 建立Resource

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

右鍵項目Test,點選New Resource。

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

【rf】Robot Framework用法總結
【rf】Robot Framework用法總結

5.2.3 将User Keyword移至MyResource下。

【rf】Robot Framework用法總結

5.2.4 User Keyword入參設定

由于搜尋資料可變,将其作為入參,變量用 表示,在<spanlang="EN−US">settings的<spanlang="EN−US">Arguments設定,若是有多個入參,那麼用<spanlang="EN−US">|分隔,如<spanlang="EN−US"> 表 示 , 在 < s p a n l a n g =" E N − U S "> s e t t i n g s 的 < s p a n l a n g =" E N − U S "> A r g u m e n t s 設 置 , 若 是 有 多 個 入 參 , 那 麼 用 < s p a n l a n g =" E N − U S "> | 分 隔 , 如 < s p a n l a n g =" E N − U S "> {入參1}|${入參1}

【rf】Robot Framework用法總結

5.2.5 導入Resource

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

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

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

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

【rf】Robot Framework用法總結
【rf】Robot Framework用法總結

5.2.6 檢視測試用例

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

【rf】Robot Framework用法總結

這樣可以輕松的添加多個測試案例了。

【rf】Robot Framework用法總結

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。

【rf】Robot Framework用法總結

5.3.3 将User Keyword移至ElementResource.txt下。

【rf】Robot Framework用法總結

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

【rf】Robot Framework用法總結

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

【rf】Robot Framework用法總結

5.3.5 剩餘關鍵字

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

輸入搜尋關鍵字

【rf】Robot Framework用法總結

點選搜尋

【rf】Robot Framework用法總結

校驗标題

【rf】Robot Framework用法總結

關閉浏覽器

【rf】Robot Framework用法總結

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

【rf】Robot Framework用法總結

5.4 運作測試用例

選中需要運作的用例,點選運作按鈕。

【rf】Robot Framework用法總結

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

【rf】Robot Framework用法總結

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

【rf】Robot Framework用法總結

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

【rf】Robot Framework用法總結

繼續閱讀