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(更改為您指定路徑即可)。
同時我們也可以通過 DOS 環境來驗證安裝的 Python 信息。
安裝 WxPython
下載頁面: http://wxpython.org/download.php#stable。
在選擇版本下載的時候要注意選擇與 Python 版本對應的版本,並且選擇 unicode 版本,比如版本:wxPython2.8-win32-unicode-py26.exe,否則安裝完成后不能支持中文。
下載完成后,選擇默認項進行安裝即可。
安裝 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 的安裝路徑,執行命令“pip install robotframework”。
安裝 robotframework-ride
進入 Python 的安裝路徑,執行命令“pip install robotframework-ride”。
安裝需要的 Library
如 selenium2library ,archivelibrary,SSHLibrary ,ftplibrary 等。進入 Python 的安裝路徑,分別執行以下命令:
清單 1. 安裝 Test Library
1
2
3
4
|
pip install robotframework-selenium2library
pip install robotframework-archivelibrary
pip install robotframework-SSHLibrary
pip install robotframework-ftplibrary
|
完成以上步驟后,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},並通過 Create Directory 關鍵字來創建目標文件夾。
圖 17.OnPremise--下載所有所需的文件
目的:下載所有所需的文件。
需要下載的文件不止一個,可通過 FOR 循環在列表變量 @{targetFiles} 中分別取出目標文件名,再通過 Download File 關鍵字來逐一下載並保存到${currentDestination} 路徑下。
總結
Robot framework 關鍵字自動化框架,它擁有強大而豐富的 Library,以及簡單易用的關鍵字方式的使用,可以很好地支持全球化測試部門的測試工作,從而減少編寫代碼的時間同時也大大地提高了工作效率。相信通過對 Robot framework 關鍵字自動化框架更深的使用和了解,將不僅僅只是幫助自動下載文件,也會在更多更廣的方面帶來越來越多的益處。
1、首先安裝python運行環境,我用的2.7版本,當然也有更高的版本,不過安裝其他插件的過程中,出現版本問題,所以用了2.7。
2、安裝pip(python包管理工具) https://pip.pypa.io/en/latest/index.html 進入下載get-pip.by文件,進入控制台執行easy_install pip安裝pip,以下命令都是控制台執行
3、安裝robot framework,執行pip install robotframework
4、安裝robotframework-ride,執行pip install robotframework-ride
5、安裝selenium2library,執行pip install robotframework-selenium2library
6、安裝decorator-3.3.3.tar,執行pip install decorator
7、安裝selenium,執行pip install selenium
8、安裝PythonIDE pycharm,請自行下載安裝,完成后打開后是如下界面:
9、在pycharm中配置intelliBot,見這位大神的文章:http://www.jianshu.com/p/5a97d28a596d
注意:1、在運行測試用例之前,需要為用例添加配置才能運行哦,剛開始用這個工具的人,得先找到運行入口
2、運行別人的例子時,可能會有很多包不存在,用Pip下載就可以了
3、相關的安裝包鏈接:https://pan.baidu.com/s/1o8JTdoQ(64位試用)
4、參考文章鏈接:http://www.cnblogs.com/weke/articles/4555053.html, https://www.ibm.com/developerworks/cn/opensource/os-cn-robot-framework/index.html,http://www.cnblogs.com/puresoul/p/3854963.html
黑盒測試用例設計方法包括等價類划分法、邊界值分析法、錯誤推測法、因果圖法、判定表驅動法、正交試驗設計法、功能圖法、場景圖法等。
(一)等價類划分法
定義:等價類划分法是把所有可能輸入的數據,即程序的輸入域划分策划國內若干部分(子集),然后從每一個子集中選取少數具有代表性的數據作為測試用例。方法是一種重要的、常用的黑盒測試用例設計方法。
等價類是指某個輸入域的子集合。在該子集合中,各個輸入數據對於揭露程序中的錯誤都是等效的,並合理地假定:測試某等價類的代表值就等於對這一類其 他值的測試,因此,可以把全部輸入數據合理划分為若干等價類,在每一個等價類中取一個數據作為測試的輸入條件就可以用少量代表性的測試數據取得較好的測試 結果。等價類划分有兩種不同的情況:有效等價類和無效等價類。
有效等價類,是指對於程序的規格說明來說是合理的、有意義的輸入數據構成的集合。利用有效等價類可檢驗程序是否實現了規格說明所規定的功能和性能。
無效等價類 指對程序的規格說明是不合理的或無意義的輸入數據所構成的集合。對於具體的問題,無效等價類至少應有一個,也可能多個。
划分標准:
1) 完備測試、避免冗余
2) 划分等價類重要的是:集合的划分、划分為互不相交的一組子集,而子集的並是整個集合
3) 並是整個集合:備性
4) 子集互不相交:保證一種形式的無冗余性
5) 同一類中標識(選擇)一個測試用例,同一等價類中,往往處理相同,相同處理映射到“相同的執行路徑”。
划分方法:
1) 在輸入條件規定了取值范圍或值的個數的情況下,則可以確立一個有效等價類和兩個無效等價類。如:輸入值是學生成績,范圍是0~100;
一、安裝的軟件清單見下圖:
二、安裝步驟:
順序 |
安裝包名 |
安裝方法 |
下載地址 |
備注 |
1 |
python |
exe文件,直接雙擊安裝,安裝完設置Python環境變量,將“d:\Python27”和“d:\Python27\Scripts”添加到環境變量“PATH”項中(注意環境變量之間用“;”隔開) |
一切的基礎,安裝路徑不能有空格 |
|
2 |
setuptools |
下載ez_setup.py文件,把文件放到python安裝目錄的scripts目錄下,雙擊文件名 |
Python 的套件管理程式 |
|
3 |
pip |
1.cmd進入ez_setup.py文件目錄,如: d:\Python27\Scripts 2.用setuptools安裝:easy_install pip |
Python 的套件管理程式 |
|
4 |
升級php |
Cmd命令執行: pip install --upgrade pip |
無 |
升級pip到最新版本 |
5 |
robot framework |
Cmd命令執行:pip install robotframework |
robot framework本身 |
|
6 |
wxPython |
exe文件,直接雙擊安裝 |
支撐Ride的運行庫 |
|
7 |
robotframework-ride |
Cmd命令執行:pip install robotframework-ride |
Ride |
|
8 |
robotframework-selenium2library |
Cmd命令執行:pip install robotframework-selenium2library |
https://pypi.python.org/pypi/robotframework-selenium2library |
selenium2測試庫,基於webdriver驅動 |
9 |
robotframework-databaselibrary |
Cmd命令執行:pip install robotframework-databaselibrary |
https://github.com/franz-see/Robotframework-Database-Library |
DB庫 |
10 |
Pymysql |
Cmd命令執行:pip install pymysql |
https://pypi.python.org/pypi/pymssql |
Mysql第三方庫 |
11 |
pywin32 |
exe文件,直接雙擊安裝,注意py對應的版本2.7 |
https://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/ |
AutoItLibrary安裝前提 |
12 |
AutoItV3 |
exe文件,直接雙擊安裝 |
http://www.autoitscript.com/site/autoit-news/autoit-v3-3-10-0-released/ |
AutoItLibrary使用前提 |
13 |
AutoItLibrary |
Cmd命令執行:pip install AutoItLibrary |
http://code.google.com/p/robotframework-autoitlibrary/ |
AutoItLibrary測試庫 |
14 |
Requests |
Cmd命令執行:pip install requests |
RequestsLibrary庫使用前提 |
|
15 |
RequestsLibrary |
Cmd命令執行:pip install -U robotframework-requests |
http request庫 |
三、安裝后檢查:
1. 配置ride為桌面快捷方式:
1) 新建快捷方式,在桌面右擊鼠標,彈出的菜單選擇 新建-快捷方式 ,然后在 請鍵入對象 的位置輸入這一行命令,C:\Python27\pythonw.exe -c "from robotide import main; main()",注意“C:\Python27\pythonw.exe”是python安裝的路徑,需要換成你的Python所在目錄的路徑;注意雙引號為英文。
2) 點擊下一步,輸入你要建立的快捷方式的名稱,點擊完成,看到圖標表示已經建好。
3) 顯示不爽,圖標要換成機器人圖標,需要快捷方式上點擊右鍵-屬性,點擊“更改圖標”,在瀏覽里找到目錄F:\Python27\Lib\site-packages\robotide\widgets,里面有個robot.ico的圖標(大家到自己的安裝目錄相同路徑去找一下)選它之后,點打開,確定之后再確定就可以了,雙擊圖標,進入ride操作頁面
2. Cmd命令下執行ride.py,能成功進入ride頁面說明robot framework安裝成功。
3. 在ride操作頁面新建一個項目,把AutoItLibrary、Selenium2Library類加載,加載中如果不顯示紅色說明AutoItLibrary、Selenium2Library安裝成功。
4. Cmd命令下執行pip list,可以查看安裝的包列表有哪些
四、特別說明:
1.安裝robotframework-selenium2library 后會自動安裝selenium的最新3.0版本,selenium 3.0以上版本安裝后編寫的自動化腳本打開firefox瀏覽器會失敗,robotframework會報如下錯誤
command: pybot.bat --argumentfile c:\users\administrator\appdata\local\temp\RIDEcatnr4.d\argfile.txt --listener F:\Python27\lib\site-packages\robotide\contrib\testrunner\TestRunnerAgent.py:14051:False F:\test\aaa
或者這個錯誤
WebDriverException: Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line
解決辦法:
1) 用pip命令卸載selenium3.0版本,命令:pip uninstall selenium
2) 下載selenium 2.53.6 版本,包名:selenium-2.53.6.tar.gz,下載地址:https://pypi.python.org/pypi/selenium/2.53.6#downloads
3) 安裝selenium-2.53.6.tar.gz;解壓selenium-2.53.6.tar.gz,把解壓的文件拷貝到python安裝目錄文件夾下,如:D:\Python27\Lib\site-packages;cmd進入selenium解壓的文件夾路徑,執行如下命令:python setup.py install
4) Cmd執行pip list 查看安裝的selenium版本是否正確
2.python下如何安裝.whl包?
答:pip install wheel;先安裝wheel,然后pip install 包名字.whl 即可安裝.whl包。
五、安裝過程遇到的問題匯總:
問:Python有兩個版本:2.X和3.X,裝那個版本比較好?
答:由於windows7下,Python 對應的wxPython 版本只支持 2.x 不支持3.x,因此Python目前只能裝2.x版本
問:pip安裝完畢后,如何升級?
答:使用命令:pip install --upgrade pip
問:win76下安裝autoitlibrary失敗
答:必須先安裝pywin32,並且Python的安裝目錄不能有空格,如果有空格會導致注冊autoit的dll時出錯