今天總結下Robot Framework最基本的用法,一來呢,但願本身之後看到這篇總結,很快能回憶起如何使用Robot Framework。二來呢,以初學者的姿態總結Robot Framework,但願幫助到剛入門,卻無從下手的新手們,畢竟網上不少資料多是一些大神整理的,跳躍性很大。php
一,環境的搭建html
二,最基本流程編程
三,Ride各個面板說明瀏覽器
五,用例編寫及執行ide
點擊返回目錄學習
關於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 these Tags: 只運行這些標記的測試案例。在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 these Tags和Skip 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庫。
注:其實關鍵字就是方法名函數名而已。
只有內建的庫每每還不能知足需求,還能夠導入第三方庫,如操做頁面的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}
須要在測試套件中導入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)。