Robot Framework介紹
Generic test automation framework for acceptance testing and ATDD. 通用的測試自動化框架,用于驗收測試和(ATDD)驗收測試驅動開發。
Robot Framework特點
使用簡單;
非常豐富的庫;
可以像編程一樣寫測試用例;
支持開發系統關鍵字;
*可以很好的把自動化測試人員進行劃分;
Robot Framework庫
*Builtin: 提供了一組通常需要的通用關鍵字
String: 生成、修改和驗證字符串的庫
Screenshot: 提供關鍵字捕捉桌面截圖
XML: 生成、修改和驗證xml文件的庫
DateTime: 日期和時間轉換庫
第三方庫:
Web自動化測試: SeleniumLibrary, Selenium2Library, Selenium2Library for Java, watir-robot等
Windows GUI測試:AutoItLibrary
移動測試:Android library, ios library, Appium Library等
數據庫測試:DatabaseLibrary(Java), DatabaseLibrary(Python), MongoDBlibrary等
文件對比測試:DiffLibrary
HTTP測試:HTTP library(livetest), HTTP library(Requests)等
ROBOT Framework與單元測試框架比較
相同點:
SetUP/tearDown
提供測試套件(用于運行一組測試用例的集合)
測試運行
生成HTML測試結果
不同點:
語法:robot framework 自建語法;unit test使用Python語法
支持庫:robot framework支持特定庫;unit test支持Python的任意庫
腳本對比:
Robot Framework安裝
RF準備
Python2.x/Python3.: https://www.python.org/
rf: https://github.com/robotframework/robotframework
wxPython 2.8.12.1(win 32)(可選):http://soureforge.net/projects/wxpython/files/wxpython/2.8.12.1/
robot framework-ride(可選):https://github.com/robotframework/RIDE
運行
運行rf腳本命令:.pybot
Robot Framework基礎關鍵字
定義列表:Create List
連接字符串:Catenate
時間關鍵字:獲取時間get time, 休眠時間sleep
分支語句關鍵字
循環語句關鍵字
強大的Evaluate
命令輸入:
執行全部TC:pybot base_keys.txt
執行特定TC:pybot --test if base_keys.txt
(base_keys.txt為測試套件名;if為指定用例名)
Robot Framework用戶關鍵字
Robot Framework提供了用戶關鍵字的概念,可以很好的減少測試腳本冗余。
創建用戶關鍵字
創建:在robot framework中右擊Add Suite("user_key")>在新建的測試套件下右擊New User Keyword("myrange").
引用:在測試套件下右擊New Test Case("test_case")>引用keyword名稱即可。
例2 帶返回值的關鍵字:
創建資源
setUp/tearDown
New Test Case下通過用戶關鍵字可設置setUp/tearDown.
setUp: Run before TC
tearDown: Run after TC
Robot Framework之Selenium2Library
Selenium是當前主流的Web自動化測試工具,它支持多瀏覽器與多種編程語言。Selenium2Library基于Selenium針對robot framework開發的一個庫,用于Web自動化測試。
安裝Selenium2Library
下載項目網址:https://github.com/robotframework/Selenium2Library
導入到Robot Framework
在Add Suite測試套件>Edit>Setting右邊選擇Library進行導入。
基本關鍵字使用
Robot Framework之RequestLibrary(接口自動化測試)
RequestLibrary基于Request針對robot framework開發的一個庫。用于HTTP接口自動化測試。
項目地址:https://github.com/bulkan/robotframework-requests
安裝Requests(基于Python): pip instal -u requests
安裝RequestLibrary: pip instal -v robotframework-requests
調用一個get請求的接口
調用一個post請求的接口
Robot Framework系統關鍵字
當我們要實現一些功能,而這些功能robot framework有沒有提供相應的關鍵字,這個時候我們就可以自己通過Python開發關鍵字。
關鍵字的本質是在robot framework的庫中所開發的方法。
分析robot framework系統關鍵字
文件路徑:python/Lib/site-packages/robot/librarys/Builtln.py
例如:log關鍵字
自己動手開發系統關鍵字
在python/Lib/site-packages/robot/MyTestLibrary(自創庫包-文件夾)/count.py中輸入代碼,使用sublime打開。
可利用斷言方法進行驗證:
將MyTestLibrary文件夾變成Python標準模塊
需要在文件夾下創建一個默認的_init_.py文件。
調用MyTestLibrary庫
① 打開RIDE>創建新套件Mytest>引入MyTestLibrary: (黑色顯示表明正確引入)
② 查看關鍵字:Tools>Search keywords(F5)>選擇MyTestLibrary進行查看
③ 創建測試用例調用add, sub關鍵字
勾選用例執行結果為:35 (unexpected!原因:在rf中輸入的不管是字符串還是數字,都默認當成字符串處理!)
④ 修改關鍵字,將3和5轉換成整型相加