RF學習筆記


RF即robotframework,接口、web UI、app自動化都可以支持。文本形式編寫測試用例(填表格),不是python語言(使用RF要遵循它自己的語法)。

關鍵字:都是函數

一、RF的幾大概念

1、Settings:設置項,包括導入庫、導入變量,設置變量、設置setup、teardown等。

  用法示例:

      *** Settings ***

      Library DateTime     導入DateTime

      Resource keywords.robot     導入用戶自定義關鍵字集

      Variavles name 導入變量文件

      Test Setup/Test Teardown     設置測試用例的setup/teardown

      Suite Setup/Suite Teardown     設置測試套件的setup/teardown

      Force Tags/Default Tags    設置標簽

      Test Timeout   設置測試用例運行超時時間

      Documentation    添加說明

2、Library :庫,提供了一系列關鍵字

3、KeyWords :關鍵字,即提供特定功能的函數。包括系統關鍵字和用戶關鍵字

     用法示例:

      *** Keywords ***

      keyword_name

        keyword body

        ......

4、Resource :資源,用戶關鍵字集合,用於管理用戶關鍵字,一般用戶自定義關鍵字都寫在資源文件中

5、Variables :RF語法中的變量,單變量值和列表

6、TestCases/TestSuite :測試用例/測試套件

   用法示例:

      *** Test Cases ***

      測試用例1

      測試用例2

      ……

二、RF Variable:變量

1、變量類型:

  1)純值變量(只有一個值):${變量名}

  ==> 表示一個數據。作為參數傳遞,表示一個參數。

  2)list變量:@{變量名}

  ==> 表示一組數據。作為參數傳遞時,有幾個數據就是幾個參數。

  3)dict變量:&{變量名}

  ==> 表示一組鍵值對數據。作為參數傳遞時,有幾個鍵值對就是幾個參數。

注意⚠️:關於變量聲明,由於RF底層時python實現的,所以RF與python創建變量類似,變量不需要特定聲明,只要有初始化賦值即可使用,默認情況下RF里的變量都是字符類型的。

2、變量賦值:

  1)直接賦值:a = 1

  2)函數的返回值

3、變量的取值:

4、變量的定義與作用域:

  1)局部變量

  2)全局變量

  3)變量文件

示例1:設置局部變量為套件級別的變量   Set Suite Variable

示例2:定義當前套件全局有效的變量   ***Variable***

示例3:在變量文件中定義,然后引用變量文件中定義的變量,此處的變量文件指的是.py文件

 

 

三、RF語法與測試用例編寫

RF中,做任何事都是通過調用關鍵字來完成的,當然書寫測試用例也是通過調用關鍵字來實現的。

那么RF的關鍵字從哪來呢?

==> 1)內置關鍵字:直接調用/先引入再調用

==> 2)第三方關鍵字:先安裝-再引入-再調用

==> 3)自定義關鍵字:使用python語言實現

以上三種關鍵字可以統稱為“系統關鍵字”

==> 4)用戶關鍵字:不是通過代碼實現的,用RF的語法編寫的,主要用來表達業務,因此又叫業務關鍵字

⚠️ 使用eclipse創建項目時,項目名不要含有下划線,會自動替換為空格

斷言關鍵字,基本上都在標准庫-BuiltIn中

 

⚠️ RF中關鍵字的參數都是字符串,是不能執行的,顧不能像python語句一樣,將關鍵字調用作為另一個關鍵字的參數

 

 

定義用戶關鍵字示例:

保存后,將鼠標移至關鍵字名稱上,可見關鍵字信息(來源、參數、說明等信息)

⚠️ 關鍵字在RF中是不能單獨執行的!

在測試用例中調用定義的用戶關鍵字

==> 用戶關鍵字一般不在測試套件文件中定義,而是存放在資源文件中。

 

與測套件文件的區別:

 

資源文件的引入:

調用資源文件中的用戶關鍵字

異常處理

一旦拋出異常,返回False,沒有發現異常,返回True

==> 關鍵字:Run Keyword And Return Status

如果關鍵字運行成功並無異常,返回True;如果關鍵字運行有報錯,則返回False

四、RF 用於Web UI自動化

SeleniumLibrary庫:

 

PO模式示例:

RF-命令行參數

用例運行設置-重運行/參數化/用例的自動化收集/用例篩選 參考pytest的命令行參數的形式

robot命令

1)自動化收集用例:robot 項目目錄   -- 在給定的項目目錄下開始收集用例

2)識別機制:套件/測試套件/*** Test Cases ***

3)輸出文件存放:默認存放在命令運行的目錄,如上圖為C盤Users/yxj,則會生成在此目錄下,可能會出現權限不夠的問題,顧一般先切換至項目所在路徑下,再執行運行命令

4)用例篩選:

  1⃣️ 打標簽名   

  2⃣️ -i 標簽名  運行參數設置    如:robot E:\rf\WebUITest -i smoke

==> 單用例打標簽:

==> 整個套件下的用例都打標簽:在settings中

5)重運行機制:等到所有測試用例執行完成后,會生成output.xml文件,然后根據文件,獲取其中失敗的用例,然后重運行這些用例,不能指定重運行的次數

  1⃣️ 先運行一次用例:robot 項目目錄

  2⃣️ 再運行一次失敗用例:robot -R 步驟1中生成的output.xml路徑

  3⃣️ 重運行第二次:robot -R 步驟2中生成的output.xml路徑

 6)指定文件輸出的路徑:robot -d 目錄

 7)設置運行時變量(獲取外部傳參):命令行的形式,獲取命令行設置的變量   robot -v name:value 項目目錄

五、RF 接口自動化 

1、安裝

2、關鍵字:RequestsLibrary庫的關鍵字可以分為一下三類

  1)與服務端的會話

  2)請求類型

  3)響應結果轉json

3、接口測試用例示例:略

4、RF實現數據驅動:通過將關鍵字設置為模板來實現

 

六、自定義RF擴展庫

思考:通過類來實現還是函數來實現?

⚠️ 自定義三方庫的存放路徑中最好不要含有中文(python3支持中文,但python2不支持)

1)庫名、模塊名、類名三者保持一致,這樣在robot中導入時,就可以直接導入庫名,避免一些路徑上的問題

2)實現關鍵字的時候:類 .py中的函數

3)ROBOT_LIBRARY_VERSION = 1.0

      ROBOT_LIBRARY_SCOPE= ‘GLOBAl    在運行過程中,示例對象的作用域,因為會在多個文件中引入,當scope為global時,只創建一個實例,全局有效

4)初始化函數__init__()一旦有參數,必須帶有默認值

5)文檔說明:”””文檔內容”””

6)日志融合:引入robot的日志庫,from robot.api import logger

7)自己寫的三方庫,需要經過測試,即單元測試

 

 

 


免責聲明!

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



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