工具應用:Robot Framework-安裝配置與基礎使用

實驗簡介

Robot Framework是目前比較流行的自動化測試框架,其核心特點是「關鍵字驅動」,即不需要測試人員自己開發測試代碼,而是像Selenium IDE一樣,根據關鍵字進行操作即可實現相應的測試。包括對協議級介面的測試,GUI界面的測試,資料庫的測試,移動App的測試,命令行測試等,功能非常強大。本節實驗主要為大家講解Robot Framework的安裝與配置,確保能夠正常運行起來。

實驗目的

(1) 掌握Python的安裝與pip命令的使用。

(2) 熟練運用pip安裝RF框架常用的庫文件。

(3) 利用RF完成對Agileone的登錄和退出操作。

實驗流程

1. 安裝Python 2.7版本

去Python的官方網站python.org/downloads/ 下載Python 2.7.X的版本。目前Python的最新版本是3.6.X,但是由於Robot Framework及對應的GUI庫文件WxPython都無法很好地支持新版本,所以我們仍然使用2.7.X的版本。

安裝好對應的32位或64位的版本後(建議下載 32位操作系統版本),正常進行安裝即可,假定我們安裝在下述目錄中:「C:ToolsPython2.7.12」,便於後面的統一講解。

2. 為Python設置環境變數

打開「我的電腦」的「屬性」窗口,並選擇「高級設置」,將Python的安裝目錄「C:ToolsPython2.7.12」設置到環境變數「PATH」中。便於後續的各類操作和路徑識別處理。

3. 安裝WxPython的GUI庫文件

sourceforge.net/project下載相應的版本,下載完成後直接雙擊保持默認安裝即可。

4. 下載安裝RF相關庫文件

我們可以直接訪問RF的官方網站 robotframework.org/# 並獲取所有的可用庫,並對應上相應的名字和版本號即可安裝。打開Windows命令行切換到C:ToolsPython2.7.12目錄,使用命令:「cd C:ToolsPython2.7.12Scripts」回車即可,然後使用Python的安裝命令pip完成下列庫文件的安裝。

(1) Robot Framework核心庫文件:pip –install robotframework。

(2) Ride界面操作庫文件:pip install robotframework-ride,安裝後結合WxPython庫可以實現RF測試腳本的可視化編寫,更加方便。

原則上來說,以上兩個核心庫安裝完成後,就可以正常使用RF,通過其默認的內置庫也可以完成一些測試腳本的開發。但是如果我們需要進行專項的測試,比如HTTP協議介面或者基於Selenium的GUI測試等,則需要專門安裝對應的擴展庫:

(1) Selenium 2.X版本庫文件:pip install selenium==2.53.6,由於最新的Selenium版本是3.X的,所以我們必須強制指定要安裝的版本。

(2) 安裝Selenium2Library庫文件:pip install robotframework-selenium2library。主要用於實現基於Selenium的Web應用系統的測試。

(3) 用於處理HTTP請求的庫文件:pip install robotframework-requests。

以下模塊可以作為附加庫進行安裝:

(1) 用於操作資料庫的庫文件:pip install robotframework-databaselibrary。

(2) 用於操作Excel的庫文件:pip install robotframework-excellibrar。

以上的庫文件的安裝大家可以根據自己的需要選擇,或者需要更多的庫可以去官方網站上查找即可。另外,如果我們不小心將庫安裝錯了,可以使用命令:「pip uninstall PackageName」卸載該庫,由於我們在安裝一些庫文件的時候,Python會自動幫我們安裝附加的庫,所以卸載時我們也可以同步卸載這些庫文件,當然,即使安裝錯了,不卸載也不會有什麼影響。

5. 檢查已安裝的庫文件及版本

在命令行中,切換到目錄C:ToolsPython2.7.12Scripts下,運行命令pip list可查看已經安裝庫:

C:ToolsPython2.7.12Scripts>pip listcertifi (2017.7.27.1)chardet (3.0.4)decorator (4.1.1)idna (2.5)pip (8.1.1)requests (2.18.3)robotframework (3.0.2)robotframework-requests (0.4.7)robotframework-ride (1.5.2.1)robotframework-selenium2library (1.8.0)selenium (2.53.6)setuptools (20.10.1)urllib3 (1.22)

6. 啟動RF主界面

切換到目錄:「C:ToolsPython2.7.12Scripts」下並運行命令「python ride.py」,即可打開RF的主界面,如下圖所示:

Ride的主界面相對簡單,事實上,這只是一個方便我們操作RF而已,即使不使用Ride的GUI界面,直接寫關鍵字驅動的測試腳本,同樣也沒有問題。就像我們寫Java代碼一樣,即使不使用IDE集成開發環境,使用記事本寫代碼,一樣可以運行,只是效率上和對於初學階段的門檻相對要高一些而已。

7. 完成第一個測試腳本

啟動Ride後,現在我們來完成一個簡單的測試腳本,以確保整個過程運行通過,沒有明顯的問題。請按照如下步驟完成:

(1) 在「File」菜單下點擊「New Project」新建一個測試項目,此處我們命名為「RFDemo」。並指定默認文件類型,如下圖所示。

(2) 選中「RFDemo」,在右邊主窗口中,點擊「Library」,在打開的對話框中輸入「Selenium2Library」,並點擊確定,如果「Selenium2Library」已經正常安裝,那麼將會在主窗口中正常顯示。否則,會以紅色顯示錯誤。

導入Selenium庫成功後的界面。

(3) 在「RFDemo」上點擊右鍵「New Test Case」新建一個測試用例,此處命名為「AgileoneLogin」。

(4) 在右邊窗口手工輸入下面的關鍵字和參數,完成第一個RF測試腳本:

(5) 最終,我們可以在測試用例的「Text Edit」視圖下看到的腳本如下圖所示。該測試腳本保存在我們最開始創建項目時指定的文件目錄下,且後綴名為:「.robot」。

*** Settings ***Library Selenium2Library*** Test Cases ***AgileonLogin [Documentation] 這是專門用於測試Agileone系統的登錄功能的腳本。 [Tags] Agileone # Agileone Open Browser http://localhost/agileone firefox Wait Until Element Is Enabled id=username Input Text id=username admin Input Text id=password admin Click Button id=login Sleep 3s 等待頁面載入完成 ${value} Get Text id=myproject Should Contain ${value} Agileone*** Keywords ***

8. 執行測試腳本

當我們點擊「Tools」菜單下的「Run Tests」,便可以正常運行該腳本。此處需要注意的是,由於Firefox版本的原因,目前Selenium 2.53.6的版本只能支持到Firefox 47及以下版本。如果我們需要測試的是更新版本的Firefox,與Selenium WebDriver一樣,需要安裝GeckDriver才可以,但是Selenium3.X目前的兼容性也有待提高,所以建議先使用2.x版本,待後續功能層面穩定後再進行移植即可,這一點我們在使用WebDriver時已經感受到了其新版本的不穩定。執行後的結果窗口如下圖所示。

在結果窗口中,我們可以看到關於成功或失敗的日誌信息。同時,我們也可以看到保存當前測試報告的文件路徑,我們可以複製上述的HTML日誌文件路徑並在瀏覽器中打開,路徑格式大致為「c:usersdennyappdatalocal empRIDElsbtb6.dlog.html」,可以看到如下的結果:

如果我們的腳本運行有錯誤,該測試報告中也會以紅色顯示出錯的代碼行。

9. 查看關鍵字及用法

此時大家一定在思考一個問題,我怎麼知道RF中到底有哪些關鍵字呢?它們的具體用法和參數又是怎樣的呢?事實上,RF有內置庫和擴展庫。在同一個測試用例腳本中,我們可以隨時使用內置庫的關鍵字,如果要使用擴展庫,則必須在創建的測試項目中先導入該庫,導入後方可使用庫中所帶的關鍵字。

當我們在書寫測試用例關鍵字時,當我們不清楚關鍵字列表及功能時,可以隨時按快捷鍵「F5」打開關鍵字搜索窗口,搜索或瀏覽當前載入的庫中所有的關鍵字。

通過搜索,並查找到相應的關鍵字後,我們便可以正常使用並且傳遞對應的參數了。好在這些關鍵字都是標準的見文識義,我們很容易通過其關鍵字名稱來獲得其作用。同時,在關鍵字的下方的說明中也提供了很詳細的介紹,並且很多關鍵字也為我們提供了樣例供使用時參數,非常的方便。而且很多操作跟Selenium IDE也很類似,所以相信大家並不會陌生。由於本書的重點並不在這些關鍵字的詳細講解上,所以此處不再贅述,給大家說明使用方法即可。

10. 使RF腳本在IE上運行

就像在WebDriver中我們可以通過載入不同的驅動程序來讓Selenium的測試腳本運行於不同的瀏覽器上一樣,在RF的Selenium關鍵字型檔中,也同樣支持其測試腳本運行於不同的瀏覽器之上。在這裡我們只需要做兩步操作即可:

(1) 將IEDriverServer.exe驅動程序複製到系統的默認PATH路徑中,此處我們可以直接複製到Python的安裝目錄中,因為本身這個目錄就位於環境變數PATH中。

(2) 將上述測試腳本的第一行,修改為「Open Browser http://localhost/agileone ie」即可。關於RF默認所支持的瀏覽器類別及關鍵字寫法,大家可以參考關鍵字「Open Browser」的用法說明。

11. 直接運行.robot文件

到目前為止,我們所有的運行均通過Ride完成,操作當然是很方便的。但是如果我們要更好進行持續集成的話,或者通過其它程序來自動運行RF腳本的情況下,我們其實更希望能夠直接通過命令行來完成運行,而不是通過Ride界面。其過程也非常簡單,我們只需要運行如下命令即可:

思考練習

(1) 請利用RF來完成對Agileone的需求提案的測試功能。

(2) 請自學RF的其它高級用法,比如變數,比如條件控制等。

:學習更多技術,觀看更多免費視頻,歡迎進入蝸牛學院官網 www.woniuxy.com

希望繼續在IT行業突破提升自己的各位朋友,歡迎加群384053806,不管你自我感覺牛不牛B。

推薦閱讀:

小白學PYTHON時最容易犯的6個錯誤,看看你遇到過幾個
2. 掀起介面測試的蓋頭-HTTP 初窺 (一)
3.掀起介面測試的蓋頭-HTTP初窺(二)
Testing Mobile Apps Using Katalon Studio
寫在CNAS現場評審之後

TAG:自動化測試 | 軟體測試 | RobotFramework |