RobotFramework之環境安裝、關鍵字、庫詳解(三)


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 如何創建一個自動化測試框架

  1. 創建測試項目:測試項目一般創建type選擇目錄。
  2. 創建測試套件:測試套件與測試項目一致。
  3. 創建測試用例:創建好的測試條件,右擊,選擇測試用例,輸入用例名稱。

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 關鍵字的使用

腳本執行到該關鍵字后,會直接返回,不會再執行后面的腳本
用if條件來進行判斷,當滿足指定的if條件后,就執行retrun返回。返回時和Return From Keyword關鍵字一樣,可以指定返回的具體值

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 Contain 關鍵字類似,用來判斷指定的字符串包含指定的字符或者字符串多少次

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安裝

  • 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/

https://robotframework.org

常用的測試庫:

  • RF自帶的測試庫-python目錄下:\Lib\site-packages\robot\libraries。
  • RIDE加載內置庫時,顯示的關鍵字讀取路徑-python目錄下:\Lib\site-packages\robotide\lib\robot\libraries。

RF出了新版后,RIDE未及時更新,導致新的關鍵字不能被RIDE識別,此時需要把RF自帶的測試庫下的文件復制到RIDE內置庫的取值路徑。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM