RF自動化腳本編寫簡介
簡介:
RF是RobotFrameWork的簡稱,一個以python為底層語言編寫的自動化測試框架,因其自帶很多已經編好的類庫,能夠很好地適應不同python基礎的人來學習及使用,甚至不懂python都可以完成腳本編寫
詳細介紹參考:
CSDN博客園:https://www.cnblogs.com/tinghai8/p/5714229.html
百度:http://yuedu.baidu.com/ebook/9772c2d0af45b307e9719709
腳本編寫:
百度文檔指導地址:
https://wenku.baidu.com/view/18eac5264b7302768e9951e79b89680203d86b19.html
https://wenku.baidu.com/view/a07e4de7336c1eb91a375db6.html(這個文檔初學者一定要看!一定要看!!一定要看!!! 重要的話說三遍^_^!一定要看哦! 好了,不然后面看不懂~)
等等,很多資料
以上文檔有詳細的編寫介紹,可以用來熟悉RF工具,我這里主要寫一些后期編寫實用的東西。正如網絡文檔上面所述,RF支持當前主流軟件幾乎所有類型的自動化測試工作,其主要包括三個方面自動化
1、 web自動化:主要指web頁面的自動化工作,
(pip install robotframework-selenium2library)
使用類庫:Selenium2Library
優點:簡單易學易編寫
缺點:web腳本過多的依賴於網頁元素的穩定性,后期維護會變的困難,且工作量大
2、 接口自動化:主要指借助協議接口調用及數據傳輸和服務器交互的測試。分為REST接口自動化和SSH類api接口測試。REST接口自動化:使用HttpLibarary.HTTP庫,通過http類協議做數據傳輸和服務器交互(pip install –upgrade robotframework-httplibrary )
SSH類api接口測試:使用SSHLibarary庫,通過ssh協議連接服務器進行測試,
優點:穩定性、容錯性較好,運行速度快,維護成本低
缺點:需要了解一定入門級的接口及網頁編輯原理,上手較為困難
3、 app類自動化:主要指適用於各類app自動化測試,如安卓系統,這里不贅述,有需要請了解以下文檔:
https://wenku.baidu.com/view/e29fc881d1d233d4b14e852458fb770bf78a3b45.html?from=search
介紹完了,言歸正傳,下面進入結合項目自動化工程創建說明
由UDP數據平台項目為例:
一、創建工程:
每個自動化工程建議有以下幾部分以方便工程后期擴展及統一管理:(在這里創建的每一個目錄都對應本地目錄層級,也可以本地創建好目錄后用RF打開,如:)
我的工程存放在D盤,這樣對應更清晰,有人說怎么多了個.idea目錄,這個是Python包創建時自動添加的,有興趣可以研究下
1、 腳本目錄:同禪道目錄層級,用於存放自動化腳本和用例一一對應。
2、 關鍵字目錄:用於存放項目編寫的公共方法及封裝的關鍵字(方法)
3、 測試數據目錄:存放測試數據,如json文件,測試輸入准備數據等
4、 參數目錄:存放提前設置好的全局變量,用於后期引用
二、創建關鍵字、編寫公共方法:
按找基礎文檔可以封裝RF提供的庫以完成自己需要的關鍵字,這里不贅述,但有些時候我們需要自己編寫python方法或者自帶庫無法完成封裝或者太麻煩怎么辦?沒關系,這里為大家介紹一下:
可以看到,這里的腳本中公共方法不是RF自帶庫,也不是通過封裝形成,而是我自己編寫的,RF中引用分為三種類型
Python庫:就是自己寫的python文件,如python編輯器里打開的自動化工程:
這里的.py文件在RF工具中不顯示,但可以引用,具體引用在腳本編寫中講
資源文檔:
存放封裝方法的文檔,一般為txt
參數變量:
存放變量,引用后腳本編寫可用
創建關鍵字:
關鍵字就是自己編寫的python方法,如下圖中的check_login()
創建變量時,一般會在目錄中創建一個interface.txt的resouce文件。然后通過將.py文件先引用到interface上面,然后腳本調用時統一引用
關鍵字創建好后如何引用:
三、創建變量
看圖(圖有點丑~)說話:同關鍵字一樣,先創建一個interface文件將自己創建的變量表引用至interface中,此時引用時使用resource,而不是library,如下下圖:
Interface引用變量:
在interface文件中點resource然后找到變量文件ok就行!
說說上圖中var_for_udp變量表中的變量都是腳本編寫會經常遇到且值不會變的參數,我們創建好后方便使用。
四、腳本編寫
好了,這里划重點了,以上的步驟都是為這里做鋪墊!此章學會,逢考必過!
在腳本編寫的時候根據用例的層級模型創建目錄,同類腳本放在一個目錄下,方便參數和關鍵字的引用具體過程如下。
1、 在工程目錄上右鍵選擇New Directory創建目錄層級,
2、 完成目錄創建后,新建測試套(NewSuite 單元)將同類腳本放入此單元內並在此單元引入腳本所需要的變量和關鍵字(此處引用后測試套內所有腳本都可以使用!)
3、 腳本創建及編寫
在上一步創建的測試套上右擊新建腳本(New test case),創建完成后腳本界面如下,依次為:
RUN 腳本運行界面:控制腳本運行和運行日志導出查看的界面,在運行日志分析時詳細說明
Text Edit 文檔編輯界面:此界面是直接編輯腳本保存的txt文檔以達到修改編輯腳本的目的(點開看一下就明白了!)
Edit 腳本編輯界面:當前截圖所示界面,用以全面編輯腳本,設置前后置等
Settings 界面設置:管理腳本配套設置界面
Documentation 文檔說明:此處用來說明腳本,一般用來存放完整用例以保證腳本忠誠度
Setup 腳本前置:腳本運行前運行的關鍵字,一般用來運行測試數據或環境准備
Teardown 腳本后置:腳本運行后運行的關鍵字,此處無論腳本運行結果成功與否都會執行,相當於編程語言中異常處理的finally語句塊,一般用來清理測試數據和恢復測試環境
Timeout 超時時間: 腳本運行的超時時間,如果腳本運行時間大於這里設定的時間就會運行失敗,標記block或者failed
Tags 腳本標記:批量運行時用於控制和識別腳本,有興趣下來了解
Template 模板:腳本模板,用來限制參數數據?不太好懂,也比較少用,有興趣下去了解
創建完成后需要進行編寫,腳本編寫時使用內置庫請參考說三遍要看的那個PPT,這里介紹使用自定義庫
①在腳本編寫時需要先引用之前編寫好的方法和定義好的公共變量,舉個栗子:有兩個測試套種都使用了自定義的方法如下圖
此測試套未引用interface文件,關鍵字不識別,不可用,但變量時全局的,可以用
此測試套正確引用,使用正常。
回到腳本編寫步驟,在測試套引用關鍵字時候只需要引用之前創建並引用好關鍵字的interface文件即可,使用resource引用,結果如下
然后回到腳本編輯界面,就可以愉快的編寫腳本了。
要注意的是在自定義方法引用后會自動首字符大寫,這個是python自動生成。引用時我們可以Ctrl+Alt+Space聯想,如下圖
完整的腳本如下圖所示根據方法的入參方式和個數,在關鍵字右側輸入入參,使用變量在關鍵字前接受關鍵字返回值
如login.check_login方法是在login包下的一個驗證碼識別登陸的方法,方法入參需要登陸的url,用戶名及密碼,及圖片輸出路徑,return返回登陸后分配的cookie值
五、腳本運行:
看下腳本運行界面,紅框中是做啟停等操作界面的輸入鍵
紅色箭頭分別表示:
運行狀態:綠色表示運行通過,紅叉表示運行失敗
Log :用於打開運行日志界面,是保存在本地的html文件
其他鍵位如其名
在腳本運行失敗后,我們要分析日志查看失敗原因,一般失敗會有以下三個問題引起:
① 版本問題:
腳本狀態及編寫無問題,環境正常仍運行失敗,說明索要執行的用例不通過,版本有問題,此時建議根據手動去驗證結果
②腳本問題
是因為腳本邏輯導致的代碼運行錯誤,分析后調試腳本,確保腳本代碼邏輯正確,運行穩定
③環境問題:
因腳本運行環境或產品服務器突發異常導致的腳本失敗,修復環境后重新運行
日志界面 通過log鍵打開日志如下
點擊測試套/腳本對應的右邊綠色條可以打開詳細信息
根據對應的關鍵字運行信息進行腳本運行結果分析,
RF常用庫及安裝方法
1、安裝Selenium2Library的依賴庫decorator
官方下載地址:https://pypi.python.org/pypi/decorator
選擇.tar.gz的安裝包下載
在dos命令窗口下安裝:python setup.py install,等待安裝成功即可
2、安裝Selenium
通過pip安裝:pip install selenium
3、安裝庫Selenium2Library
該庫用作界面ui操作
在dos命令窗口下安裝:pip install robotframework-selenium2library
4、安裝HttpLibrary
該庫主要應用於發送和接受http請求,一般用作接口測試
官方下載地址:https://github.com/peritus/robotframework-httplibrary
在dos命令窗口下安裝:pip install –upgrade robotframework-httplibrary
5、安裝,requests,requestsLibrary庫
主要用於接口測試
requestsLibrary庫基於requests
requests官方下載地址:https://pypi.python.org/pypi/requests
requestsLibrary官方下載地址:https://pypi.python.org/pypi/robotframework-requests/
均下載.tar.gz的安裝包,先安裝requests,再安裝requestsLibrary
在dos命令窗口下安裝:pip install requests
6、安裝pymysql庫
該庫為DataBase的依賴庫
在dos命令窗口下安裝:pip install PyMySQL
7、安裝DataBase Library庫
功能:提供鏈接數據庫的關鍵字
官方下載地址:https://github.com/franz-see/Robotframework-Database-Library
在dos命令窗口下安裝:pip install robotframework-databaselibrary
