RF框架介紹、RIDE認識+RF環境搭建+自動化測試概述、RF的接口自動化測試、RF的內置測試庫【看Robot都有哪些庫,最靠譜的方法就是直接上官網查看。
官網地址為:https://robotframework.org】、自定義RF
持續集成自動化測試、DatabaseLibrary庫
1 Robot Framework框架介紹
Robot Framework的架構是一個通用的驗收測試和驗收測試驅動開發的自動化測試框架(ATDD)。
RF是使用關鍵字驅動的測試方法
1.1 RF特性
- 易於使用[表格式語法],統一測試用例格式。
- 重用性好,利用現有關鍵字組合新關鍵字。
- 易於閱讀,結果報告和日志采用HTML格式。
- 平台和應用程序是獨立的。
- 易於擴展,提供簡單的庫API,用戶可以自定義基於python或java的測試庫。
- 易於集成,提供命令行接口和基於XML的輸出文件。
- 功能全面,為Selenium提供Web測試,Java GUI測試,運行進程,Telnet,SSH等支持。
- 可以使用關鍵字驅動、數據驅動和行為驅動開發(BDD)完成。
- 內置對變量的支持,特別適用於不同環境的測試。
- 提供tag標簽來分類和選擇案例執行。
- 實現與源代碼控制的輕松集成:測試套件只是可以使用生產代碼進行版本控制的文件和目錄。
- 提供測試用例和測試套件級別的設置和拆卸。
- 模塊化架構支持創建測試,即使對於具有多種不同接口的應用程序。
1.2 RF框架
RF是一個通用的,應用程序和技術獨立的框架,具有高度模塊化的架構。
該測試數據是簡單,易於編輯表格格式。啟動RF時,它會處理測試數據,執行測試用例並生成日志和報告。核心框架對測試中的目標一無所知,與它的交互由測試庫處理。庫可以直接使用應用程序接口,也可以使用低級測試工具作為驅動程序。

Robot Framework自動化測試框架的組成:

1.3 如何創建一個自動化測試框架
- 創建測試項目:測試項目一般創建type選擇目錄。
- 創建測試套件:測試套件與測試項目一致。
- 創建測試用例:創建好的測試條件,右擊,選擇測試用例,輸入用例名稱。
type的選擇:測試項目(directory)-測試套件(file)-測試用例。測試用例只能放在file類型的測試套件下。
fomat的選擇:比較推薦robot和txt,在安裝VS code的插件后查詢.robot文檔會自動語法高亮,便於維護和版本管理。


1.4 Robot Framework基礎關鍵字
| 基礎關鍵字 |
說明 |
| 如何搜索 Robot Framework 的關鍵字 |
Tools->Search Keywords或F5快捷鍵 |
| 關鍵字log |
輸出內容 |
| 如何在用例中定義一個變量 |
Set Variable |
| 如何快速查詢某一個關鍵字的 API 說明 |
選中關鍵字,同時按Ctrl+Alt |
| 如何快速補全關鍵字 |
Ctrl+Alt+空格鍵 |
| 如何定義一個列表 |
@{list1} Create List |
| 如何定義一個字典 |
&{Dict1} Create Dictionary |
| 如何拼接兩個字符串 |
Catenate |
| 如何使用 for 循環 |
:FOR 變量 in 列表或字典 |
| 如何中斷 for 循環 |
Exit For Loop If |
| Run Keyword If 判斷的使用 |
邏輯判斷的關鍵字,如果滿足某一個判斷條件,就會執行關鍵字 |
| Comment 關鍵字的使用 |
注釋,注釋的腳本不會被執行 |
| Return From Keyword 和 Return From Keyword If 關鍵字的使用 |
腳本執行到該關鍵字后,會直接返回,不會再執行后面的腳本 |
1.5 robot Framework斷言關鍵字
| 斷言關鍵字 |
說明 |
| Should Be Equal |
用來判斷實際結果是否和預期結果相等 |
| Should Be True |
用來判斷返回值是否為True |
| Should Contain |
用來判斷某個字符串中是否包含了我們預期需要的字符或者字符串 |
| Should End With |
用來判斷某個字符串是否以我們預期指定的字符串來結束 |
| Should Be Empty |
判斷是否為空,若不為空,則執行失敗 |
| Should Start With |
判斷某個字符串是否以預期執行的字符串開始,若以指定的字符串開頭,則執行成功,否則執行失敗 |
| Should Not Start With |
與 Should Start With 剛好相反, 若以指定的字符串開頭,則執行失敗,否則執行成功。 |
| Should Match |
判斷某個字符串是否與預期指定的字符串相匹配,若可以匹配,則執行成功,否則執行失敗 |
| Should Not Match |
與 Should Match 剛好相反,若字符串匹配,則執行失敗,否則執行成功 |
| Should Contain X Times |
|
| Should Be Equal As Integers |
以整數的形式來進行比較 |
| Should Be Equal As Strings |
以字符串的形式來進行比較 |
| Should Be Equal As Numbers |
以 number 的形式來進行比較 |
| Should Not Be Equal |
與 Should Be Equal 用法相反,當帶比較的兩個值相等時,執行失敗,否則執行成功 |
| Should Not Be Empty |
與 Should Be Empty 用法相反,若為空,則執行失敗 |
1.6 BuiltIn庫剩余關鍵字
| 轉換類型關鍵字 |
說明 |
| Convert To Binary |
將指定的內容轉換為二進制形式 |
| Convert To Boolean |
將指定的內容轉換為布爾類型 |
| Convert To Bytes |
將指定的內容轉換為字節數 |
| Convert To Hex |
將指定的內容轉換為十六進制形式 |
| Convert To Integer |
將指定的內容轉換為 Integer 形式 |
| Convert To Number |
將指定的內容轉換為 Number 形式 |
| Convert To Octal |
將指定的內容轉換為八進制形式 |
| Convert To String |
將指定的內容轉換為字符串形式 |
| Get類型關鍵字 |
說明 |
| Get Count |
獲取某個字符串包含指定字符或者字符串的次數 |
| Get Length |
獲取指定字符串的長度 |
| Get Time |
獲取時間 |
| Get Variable Value |
獲取指定變量的值 |
| Get Variables |
獲取所有的環境變量 |
2 環境准備
2.1 Python安裝
- 1、下載python安裝包[一般建議官網進行下載安裝]:https://www.python.org/
- 2、雙擊打開下載好的安裝包,按照安裝引導一步步安裝完成,可參考:https://www.zhihu.com/question/269317143
- 3、安裝完成后,在控制台輸入python -V驗證python是否安裝成功。

- 4、python安裝后,通過命令:pip list查看pip版本,如果版本低於20,通過命令:python -m pip install --upgrade pip升級pip,便於后面通過pip安裝我們所需的包。
#pip版本過低時,升級pip python -m pip install --upgrade pip
2.2 robotframework-ride安裝
由於不同版本的ride兼容性不一樣,優劣勢不一樣,具體可參考:https://www.cnblogs.com/leozhanggg/p/11698862.html。在這里我們使用1.7.3.1版本。在控制台使用命令安裝:pip install robotframework-ride==1.7.3.1。安裝成功后,使用命令:pip list 可以在列表中查看。
#支持python3.6及以上,且當前該版本相對穩定 pip install robotframework-ride==1.7.3.1 pip list
2.3 wxPython、robotframework安裝
RIDE GUI是wxPython實現的,而使用RF框架又要依賴robotframework庫。在安裝robotframework-ride的時候,pip已經給你安裝好了。如果通過命令pip list沒有看到wxPython以及robotframework,可以手動安裝,通過命令:pip install wxPython==4.0.7.post2 以及pip install robotframework==3.1.2 安裝,安裝后可以在pip list里面查看到。
#RIDE GUI是wxPython實現,RF框架依賴庫robotframework pip install wxPython==4.0.7.post2 pip install robotframework==3.1.2 pip list
2.4 啟動RIDE
通過以上步驟就部署好robotframework基礎框架了,我們打開python的安裝目錄下的Script目錄,會發現多了一個ride.py和robot.exe文件。可以創建桌面快捷方式,后續啟動。
ride.py就是RIDE GUI的啟動程序,我們可以雙擊啟動一下看看是否能夠打開RIDE的GUI界面,如果打開后出現下面的界面,說明RIDE工具已經安裝成功了。
PS:[針對3.7.0的python版本]在使用過程中中文會出現亂碼的情況。比如我們的用例名是中文,執行用例,日志里會亂碼。 解決辦法:通過命令:where python查看python安裝路徑,在安裝路徑下找到Lib/site-packages/robotide/contrib/testrunner/testrunner.py,477行修改成mbcs。


2.5 安裝常用庫
RobotFramework全部內置標准庫及第三方庫介紹參考:https://blog.csdn.net/weixin_40326608/article/details/101058416 。
我們常用的第三方外置庫包括以下:
1、安裝requests,主要用於Get、Post等請求。
cmd>pip install requests (支持第二步,否則RF引入RequestsLibrary庫會報錯) cmd>pip install -U robotframework-requests(-U 升級原來已經安裝的包,不帶U不會裝新版本,帶上U才會更新到最新版本。)
2、安裝mysql,用於對數據庫進行操作。
cmd>pip install robotframework-databaseslibrary cmd>pip install PyMySQL
3、安裝ExcelLibrary,用於對表格進行操作。
目前支持python3.7的excellibrary未更新,一直沿用的是python2.X對應的版本,由於語法上的一些不同,也導致了直接通過pip安裝會報錯,當提示如圖所示錯誤時:execfile(join(dirname(file), ‘ExcelLibrary’, ‘version.py’)) NameError: name ‘execfile’ is not defined
可以通過修改文件,使excellibrary適用與3.X版本。
首先下載robotframework-excellibrary-0.0.2[建議下載的所有庫都去官網進行下載]:https://pypi.org/project/robotframework-excellibrary/0.0.2/
修改以下幾個文件:
#1、robotframework-excellibrary-0.0.2,進入對應的包: A. \robotframework-excellibrary-0.0.2\setup.py #execfile(join(dirname(__file__), 'ExcelLibrary', 'version.py')) exec(open(join(dirname(__file__),'ExcelLibrary','version.py')).read()) B. \robotframework-excellibrary-0.0.2\ExcelLibrary\ExcelLibrary.py 將所有的print xxx 語句修改為 print(xxx) C. \robotframework-excellibrary-0.0.2\ExcelLibrary\__init__.py #from ExcelLibrary import ExcelLibrary #from version import VERSION from .ExcelLibrary import ExcelLibrary from .version import VERSION D. \robotframework-excellibrary-0.0.2\ExcelLibrary\ExcelLibrary.py #from version import VERSION from .version import VERSION #2、文件修改完畢后,cd到\robotframework-excellibrary-0.0.2\路徑,通過python setup.py install 安裝。 #安裝成功后,python路徑下在site-packages里可以看到ExcelLibrary包。 cd xx/robotframework-excellibrary-0.0.2 python setup.py install #安裝好相應庫后,在使用時,只需要import即可使用。
3 RF的接口自動化測試
數據驅動測試的核心:測試數據與測試腳本分離,實現測試腳本參數化,提高測試腳本的可重用性。

接口自動化,主要用到了get request和post request。
基於RF的接口測試庫,主要包含requests和requestsLibrary(robotframework-requests)。
接口測試:系統之間交互的接口,或者某個系統對外提供的一些接口服務。
cmd>pip install requests (支持第二步,否則RF引入RequestsLibrary庫會報錯) cmd>pip install -U robotframework-requests(-U 升級原來已經安裝的包,不帶U不會裝新版本,帶上U才會更新到最新版本。)
requestsLibrary(robotframework-requests)關鍵字:
- Create Session:創建一個session,連接某個服務器;
- Create Ntlm Session:也是創建一個session,只不過加上了域、用戶名、密碼用於NTLM認證;
- Get Request:通過GET方式發起請求;
- Post Request:通過POST方式發起請求;
- Head Request:發送一個HEAD請求;
- To Json:將文本轉換成json對象;
4 RF的內置測試庫
RF內置庫官網文檔:http://robotframework.org/robotframework/
常用的測試庫:
- RF自帶的測試庫-python目錄下:\Lib\site-packages\robot\libraries。
- RIDE加載內置庫時,顯示的關鍵字讀取路徑-python目錄下:\Lib\site-packages\robotide\lib\robot\libraries。
RF出了新版后,RIDE未及時更新,導致新的關鍵字不能被RIDE識別,此時需要把RF自帶的測試庫下的文件復制到RIDE內置庫的取值路徑。
