天天看點

Robot Framework 安裝使用Robot Framework 的安裝配置和簡單的執行個體介紹

Robot Framework 的安裝配置和簡單的執行個體介紹

Robot Framework 介紹

Robot Framework 是一款基于 Python 的功能自動化測試架構。它具備良好的可擴充性,支援關鍵字驅動,可以同時測試多種類型的用戶端或者接口,可以進行分布式測試執行。主要用于輪次很多的驗收測試和驗收測試驅動開發(ATDD)。

在我們進行全球化測試的時候可以用此架構來編寫一些腳本任務,如定時下載下傳 daily build , 配合 Selenium 完成自動化截圖等,來友善我們的測試。

Robot Framework 的安裝和配置

在使用 RF(Rebot framework)的時候需要 Python 或 Jython 環境,具體可根據自己的需求來确定。本文以在有 Python 的環境的機器上安裝和使用 RF 為例。

在配置過程中需要安裝如下包:python 2.7、wxPython、robot framework、robot framework ride、robot framework selenium library。

安裝 Python 2.7

RF 架構是基于 Python 語言的,是以一定要有Python 環境。可以通過下面的下載下傳頁面下載下傳對應的 Python 版本。

下載下傳頁面:https://www.python.org/downloads/。

下載下傳完成後,選擇預設項進行安裝。

安裝完後,需要設定環境變量:計算機—屬性—進階系統設定—環境變量—系統變量—Path,寫入 C:\Python27 和 C:\Python27\Scripts(更改為您指定路徑即可)。

(環境變量必須配好,否則後續需要的pip等指令不生效)

同時我們也可以通過 DOS 環境來驗證安裝的 Python 資訊。

安裝 WxPython

下載下傳頁面:http://wxpython.org/download.php#stable。

在選擇版本下載下傳的時候要注意選擇與 Python 版本對應的版本,并且選擇 unicode 版本,比如版本:wxPython2.8-win32-unicode-py26.exe,否則安裝完成後不能支援中文。

(本人安裝過程中遇到的情況是,下載下傳64位的wxPython安裝後不比對,必須安裝32位的wxPython才能适配,此情況非個例!)

下載下傳完成後,選擇預設項進行安裝即可。

安裝 PyCrypto

下載下傳頁面:http://www.voidspace.org.uk/python/modules.shtml#pycrypto。

選擇對應的 pycrypto installer 版本,進行預設安裝。需要在安裝庫(如 SHHLibrary)之前進行安裝,否則會出現錯誤“Can't find vcvarsal.bat”。

安裝 Robot Framwork

進入 Python 的安裝路徑,執行指令“pip install robotframework”或者通過下載下傳頁面 https://pypi.python.org/pypi/robotframework下載下傳源碼。

解壓後,執行指令“python setup.py install”進行安裝。進入 Python 的安裝路徑,執行指令“pipinstall robotframework”。

安裝 robotframework-ride

進入 Python 的安裝路徑,執行指令“pip install robotframework-ride”。

安裝需要的 Library

如 selenium2library ,archivelibrary,SSHLibrary ,ftplibrary 等。進入 Python 的安裝路徑,分别執行以下指令:

清單 1. 安裝 Test Library

線上安裝:

pip install robotframework-selenium2library

pip install robotframework-archivelibrary

pip install robotframework-SSHLibrary

pip install pip2pi
           
pip install robotframework
           
pip install robotframework-ride
           
pip install robotframework-requests 
           
pip install robotframework-jsonlibrary 
           
pip install robotframework-jsonschemalibrary
           
pip install robotframework-redislibrary
           
pip install robotframework-databaselibrary 
           
pip install robotframework-sshlibrary 
           
pip install psycopg2
           
pip install pymysql      
           
pip install redis             
           
rem pip install hbasepy
           
pip install selenium
           
pip install robotframework-selenium2library
           
pip install robotremoteserver
           

完成以上步驟後,RobotFramework 的安裝工作已經完成,可以通過執行指令“pip list”檢視已經安裝的産品,如圖 1 所示:

圖 1.RobotFramework 安裝産品清單

RIDE 編輯器介紹

RF 是通過 RIDE 編輯器進行工作的,安裝成功後,執行指令“[PythonDir]\Scripts\ride.py”,就可以打開 RIDE 編輯器,如圖 2 所示。打開之後就可以進行建立測試項目,建立測試用例等操作,在後面的執行個體講解中有具體步驟。

圖 2.RIDE 編輯器啟動界面

建立測試項目

選擇菜單欄 File —>New Project,輸入項目名稱,選擇 Directory type,選擇目錄。

圖 3. 建立測試項目

建立測試套件

右鍵點選剛建立的測試項目,選擇 New Suit,輸入 name , 選擇 File type。

圖 4. 建立測試套件

建立測試用例

右鍵點選剛建立的測試套件,選擇 New TestCase,輸入名稱。

圖 5. 建立測試用例

導入庫

在實際項目中,我們需要運用 RF 架構編寫基于 web 的測試用例,我們需要 Selenium 的庫支援。是以,我們在使用的過程中需要加載 selenium2library 庫。

圖 6. 導入測試庫

在“測試套件”的 Edit 标簽頁,點選“Library”按鈕,彈出輸入框,Name 輸入:Selenium2Library ,點選 OK 完成。

如果導入的庫顯示為紅色,表示導入的庫不存在。如果是黑色則表示導入成功。

編寫測試用例

可以通過快捷鍵 F5 來查詢腳本的關鍵字。以打開浏覽器為例,輸入關鍵字“open”進行搜尋,查詢到一個“Open Browser”的關鍵字,點選這個關鍵字,就出現了它的用法和說明,如圖 7。

圖 7.Search Keywords

熟悉這個關鍵字用法之後,可以在 test case 裡面進行嘗試。“Open Browser”顯示藍色,說明它是一個合法的關鍵字,後面為紅色說明需要輸入一個參數,從其用法可知,需要輸入 URL。更多關鍵字的用法可以熟悉 API 檔案。

圖 8.keywords 執行個體

編寫測試用例的時候還可以選擇添加變量。變量是 RF 的常用的功能,它能在測試資料的大多數地方使用。主要有以下幾種:

标量變量:文法 ${scalar }。當在測試資料中使用标量變量時,它們将被配置設定的值所代替。

清單變量:文法 @{LIST}。清單變量是複合變量,可以配置設定多個值給它。

數字變量:變量文法可以用來建立一個全是整型和浮點型的數字:整型${80}、浮點型${3.14}。

Boolean 變量:${true/false}。

Null/None 變量:${null/None}。

空格${SPACE} 和空${EMPTY} 變量等。

圖 9. 添加變量

運作測試用例

以上幾步完成後,就可以在 Run 頁面,進行運作,并檢視結果,具體如圖 10 所示:

在運作完測試之後,也可以進行檢視 log 檔案等操作。

圖 10. 運作測試用例

簡單的測試用例的編寫

安裝完成 RF 之後,通過 RIDE 編輯器的介紹,對 RF 的工作原理有一定了解之後,在這一部分主要給大家介紹一個簡單的執行個體:從伺服器上下載下傳指定的檔案。

首先按照上面的步驟來進行:建立項目---->建立 Test Suite---->建立 Test Case。

建立項目

菜單 File -> New Project,在彈出“New Project”對話框選擇 Type 為 Directory,然後填寫 Name,點選 OK 按鈕。

建立 Test Suite

在已建立的項目上點選滑鼠右鍵,選擇 New Suite,在彈出“Add Suite”對話框中選擇Type 為 File,然後填寫 Name,點選 OK 按鈕。

添加所需的庫檔案,標明 Suite 然後點選右邊 Library 按鈕,在彈出對話框的 Name 後輸入 FtpLibrary 并點選 OK 按鈕,添加其他 Library 也是如此,具體如圖 11 所示:

圖 11. 添加 Library

添加所需的變量,標明 Suite 然後點選右邊 Add Scalar 按鈕,在彈出對話框的 Name 後輸入變量名,注意變量的結構是${name}or @{name},在 Value 後輸入變量的值。

圖 12. 添加變量

建立 Test Case

在已建立的 suite 點選滑鼠右鍵選擇 New Test Case,在彈出對話框的 Name 填寫 Name,點選 OK 按鈕。

至此,項目已經建立好了,Suite 建立了也添加了所需要的 Library,Test Case 也建立好了,接下來就可以在 Test Case 裡編寫測試用例了,也就是在表格輸入關鍵字和參數或變量。

圖 13.TestCase 執行個體

注:在圖中表格裡的藍色字型是庫中的關鍵字,綠色字型是變量,黑色字型是系統自帶關鍵字。

下面對 OnPremise 這個 test case 進行解釋。

圖 14.OnPremise--連接配接 FTP 伺服器

目的:連接配接 FTP 伺服器。

通過關鍵字 ftp connect 以及參數,包括使用者名${uname_ftp_server} 和密碼${pwd_ftp_sever},來連接配接 FTP 伺服器${build_ftp_sever},并設定逾時時間為 300 秒。

圖 15.OnPremise--記錄目前路徑

目的:記錄目前路徑。

Cwd 關鍵字切換并進入所需路徑${path_ftp_server},然後通過 Pwd 輸出目前路徑并儲存到變量${output}中。

圖 16.OnPremise--建立本地檔案夾

目的:建立本地檔案夾,用來存放下載下傳的檔案。

由于伺服器路徑目錄是以日期結束,将此通過 Split String From Right 關鍵字分離出來并儲存到${currentBuildLevel},最後生成完整路徑${currentDestination},并通過 CreateDirectory 關鍵字來建立目标檔案夾。

圖 17.OnPremise--下載下傳所有所需的檔案

目的:下載下傳所有所需的檔案。

需要下載下傳的檔案不止一個,可通過 FOR 循環在清單變量 @{targetFiles} 中分别取出目标檔案名,再通過 Download File 關鍵字來逐一下載下傳并儲存到${currentDestination} 路徑下。

總結

Robot framework 關鍵字自動化架構,它擁有強大而豐富的 Library,以及簡單易用的關鍵字方式的使用,可以很好地支援全球化測試部門的測試工作,進而減少編寫代碼的時間同時也大大地提高了工作效率。相信通過對 Robot framework 關鍵字自動化架構更深的使用和了解,将不僅僅隻是幫助自動下載下傳檔案,也會在更多更廣的方面帶來越來越多的益處。

robotframework 入門

分類: LINUX

    其實我不喜歡動不動就架構,動不動就架構,整出一坨專業術語搞的玄而又玄,讓人雲山霧繞,我想做的事情很簡單,自動地測試我的多個程式,更友好的顯示出我的程式的測試結果。

    當我的程式比較少的時候,我可以手工的執行測試程式,察看結果。但是如果的程式多了之後,我不能天天手工去執行,這樣的話,太費時了,而且,通過不通過還要自己去看 $?. 有人說,你寫好的程式,不改動,為啥天天測一遍。實際情況是,有時候我會改這些程式,對外接口不變,内部實作有時候會改動,我希望有一個工具能夠每天幫我測試一遍所有的代碼,把最終的結果用更友好,更可讀的方式呈現出來。

   我的同僚Kai,做了很多這方面的學習研究工作,我向他讨教了一些經驗,昨天晚上和今天早上自己學習了下,給自己搭建了一個robot framework的架構。很多東西我也不懂,現在還是入門級别的水準,想深入學習的筒子請移步 robot framework  ,去擷取更過詳細的資訊。

    第一步: 安裝python

1.      [email protected]:~/code/c/self/hello# python -V

2.      Python 2.7.3

    我就不多說了,如果裝不上python,後面内容也不需要看了。

    第二步: 安裝 robotframework

    下載下傳位址:http://code.google.com/p/robotframework/downloads/detail?name=robotframework-2.7.5.tar.gz

1.      tar zxvf robotframework-2.7.5.tar.gz

2.       

3.      cd robotframework-2.7.5

4.       

5.      python setup.py install

    第三步:安裝robotframework-seleniumlibrary

    這步驟應該是可選的,這是一個web test library。當時我同僚建議我裝上我就裝上了,具體作用我自己也不明了。

    下載下傳位址:http://code.google.com/p/robotframework-seleniumlibrary/downloads/list

1.      tar -zxvf robotframework-seleniumlibrary-2.9.1.tar.gz

2.       

3.      cd robotframework-seleniumlibrary-2.9.1

4.       

5.      python setup.py install

    整個robot framework的架構搭建是非常簡單的,這也是這個東西的優勢。如果巨複雜,誰願意用啊?

    下面是關鍵部分,我用我前段時間寫的紅黑樹的測試代碼作為例子。我的紅黑樹有測試代碼:這些代碼不需要看,我測試了建立,插入,删除這幾個接口。這個測試程式會編譯成可執行程式,如果測試通過,傳回0,如果出現異常,或者傳回值是其他值,或者幹脆就段錯誤了,也會被robotframework捕獲到,最終生成結果報告。

    下面開始詳細步驟:

    1 建立一個auto_test的目錄,将來我們的測試腳本都會放在這個下面。

1.      mkdir ~/auto_test

    2 為rb_tree 這個程式建立一個測試代碼坐在的目錄

1.      cd ~/auto_test

2.      mkdir rb_tree

    3 寫測試腳本:

1.      [email protected]:~/auto_test/rbtree/library# cd ..

2.      [email protected]:~/auto_test/rbtree# ll

3.      總用量 16

4.      drwxr-xr-x 3 root root 4096 12月 23 13:48 ./

5.      drwxr-xr-x 4 manu root 4096 12月 23 13:15 ../

6.      drwxr-xr-x 2 root root 4096 12月 23 13:49 library/

7.      -rw-r--r-- 1 root root 481 12月 23 13:48test_rbtree.txt

8.      [email protected]:~/auto_test/rbtree# ll library/

9.      總用量 12

10.  drwxr-xr-x 2 root root 4096 12月 23 13:49 ./

11.  drwxr-xr-x 3 root root 4096 12月 23 13:48 ../

12.  -rw-r--r-- 1 root root 100 12月 23 13:38test_rbtree.py

    我們看下test_rbtree.txt的内容:

    上面這種格式是robot framework支援的三種文檔格式之一。這三種格式是

    1 HTML ,不多說。

    2 TSV格式 ,這個我沒用過,我也不懂,不多說

    3 純文字格式,比如說我這個test_rbtree.txt。(汗一個,總算有個稍懂一點的了)

    官方文檔裡面還提高了reST格式,這個咱也不懂。但是對這個感興趣的筒子可以去看官方文檔,如果英語不過關的筒子可以去http://blog.sina.com.cn/s/blog_654c6ec70100zj6p.html 這個位址,這個部落客寫了好多篇robot framework的文章。

    一個test case 應該有四個部分組成,Setting,Variable,Testcase,Keyword,但是也不是必須的,比如我的test case 隻有2個,Setting 和Testcase.

    Setting 一般是告訴pybot 我的測試庫檔案在哪兒,比如我的測試代碼就是library下的test_rbtree.py,一些資源檔案,變量檔案也會在這裡聲明,但是我們沒有這些。

    其中Force Tags會在輸出結果中展現。我們起一個比較有意義的tag,比如紅黑樹是基本的資料結構,我所有的基本資料結構的tag都命名為 basic data  structure 。 他們就能在輸出中聚在一起。

    Test Cases 中test_rbtree表示我這一測試項的名字是test_rbtree,這個名字可以随便起,沒關系。但是最好是能明确告知這個測試測的是什麼。

    Argument這一列下面的test_rbtree表示的是function,必須出現在測試庫檔案裡面,就是在library/test_rbtree中必須要有test_rbtree這個function。

1.      [email protected]:~/auto_test/rbtree#cat library/test_rbtree.py

2.       

3.      import os

4.      def test_rbtree():

5.          return os.system('/home/manu/code/c/self/rbtree/test')

    我們這個測試項的名字是test_rbtree,執行library/test_rbtree.py裡面的test_rbtree 函數,将傳回值給val變量,

判斷 val == 0,如果val ==0,表示測試通過,否則,測試失敗。

    Should Be True 是Robot Framework 自動提供的。表示應該是表達式應該成立,如果不成立表示failed。

    這就比較簡單了,簡單地說我們的一個測試例子就完成了,下面我們利用pybot生成報表。

    我們可以看到,我們的測試例子通過了,同時生成了三個結果檔案。我們看下生成的report。

    很好看吧。有人說,這是一個檔案的report。 其實很簡單,你在auto_test下面多建幾個類似的檔案夾,然後對auto_test 執行pybot,他會将auto_test下的每個case都會跑到,生成一個總結果。

    下面是一個有成功有失敗的例子,我故意将test_hello測試失敗。

    當然了,我接觸robot framework的時間還短,很多東西不懂,需要在實踐中學習。 我先用起來,慢慢提高。希望路過的高手可以指點下。

繼續閱讀