RF-用例执行及参数使用
執行測試用例
介紹:
- RF測試用例可從命令行運行,默認輸出三個文件,xml 輸出文件,html log日志,html報告文件
demo.robot實例
*** Variables *** ${msg} hello Robot Framework!*** Test Cases *** case01 log ${msg}- 可從命令行執行該測試用例,robot demo.robot,查看輸出結果
指定要執行的測試用例
- 可指定一個或幾個文件來執行,也可指定一個相對或絕對路徑來執行該目錄里面的用例
robot path/to/my_tests
robot my_test.robot your_tests.robot - 可一次給多個測試用例或目錄提供路徑,用空格分隔。
- 自動創建的名稱非常長且復雜,可使用–name選項覆蓋
robot my_tests.robot your_test.robot
robot --name Example
path/to/tests/pattern_*.robot
使用命令行參數
介紹:
- 用于控制如何執行測試用例及生成什么輸出
- 可使用 robot -h查看命令行參數
參數使用:
-
-L參數設置日志級別為debug
robot -L debug demo.robot -
–variable設置變量和變量值
robot --variable HOST:10.0.0.42 demo.robot
命令行參數縮寫:
- -t 或 --test ,選擇要執行的測試用例
- -i 或 --include ,通過tag選擇測試用例
命令行參數可使用正則表達式
- *匹配任何字符串,甚至是空字符串
- ?匹配任何單個字符
- [ abc ] 匹配括號中的一個字符
- [ !abc ] 匹配一個不在括號內的字符
- [ a-z ] 匹配括號范圍內的一個字符
- [ !a-z ] 匹配一個不在括號內的字符
實例
–test Example* #匹配名稱以 “Example” 開頭的測試
–test Example [1-2] #匹配測試 “Example1” 和 “Example2”
–include f?? #匹配以 “ f ” 開頭的標簽的測試的長度為三個字符
標簽模式
介紹:
- 與標簽相關選項都接受參數作為標簽模式,還支持and, or, not運算符,可用于將兩個或多個單獨的標簽或樣式組合在一起
使用:
-
and 或 & 如果所有單個模式都匹配,則整個模式匹配。and 和 & 等效
–include fooANDbar #匹配包含標簽 “foo” 和 “bar” 的測試
–exclude xx&yy&zz #匹配包含標簽 “xx”, “yy” 和 “zz” 的測試 -
OR 如果任何單個模式匹配,則整個模式匹配
–include fooORbar #匹配包含標簽 “foo” 或標簽 “bar” 的測試
–exclude xxORyyORzz #匹配包含標簽 “xx”, “yy” 或 “zz” 中任何一個的測試 -
NOT如果左側的圖案匹配,則整個圖案匹配,而右側的圖案不匹配。如果多次使用,則第一個NOT之后的所有模式都不得不匹配
–include fooNOTbar #匹配包含標簽 “foo” 但不包含標簽 “bar” 的測試
–exclude xxNOTyyNOTzz #匹配包含標簽 “xx”, “yy” 或 “zz” 中任何一個的測試
測試結果
命令行輸出
- 測試執行中可見的輸出是命令行中顯示的輸出
- 實時顯示所有已執行的測試套件和測試用例以及它們的狀態
生成的輸出文件
- xml 輸出文件
- html 測試報告
- html log 日志
參數文件
介紹:
- 參數文件允許將所有或某些命令行選項和參數放置到將在其中讀取它們的外部文件中。
- 可避免在命令行上出現字符問題
- 需要大量選項或參數,參數文件還可防止命令行上使用命令過長
robot -L debug -t case01 -i case01 -e case02 -r my_report.html -l my_log.html suite01.robot
參數文件語法
-
參數文件可包含命令行選項和測試數據路徑,每行一個選項或數據源
-
縮寫和長選項都受支持,建議后者,因為更易于理解
-
參數文件可包含不轉義任何字符,行首和尾的空格會被忽略,空行和以井號(#)開頭的行會被忽略
–doc This is an example (where “special characters” are ok!)
–metadata X:Value with spaces
–variable VAR:Hello, world!
#This is a comment
path/to/my/tests -
在上面的實例中,選項及其值之間的分隔符是一個空格。可使用等號(=)或任意數量的空格
以下三行相同:
–name An Example
–name=An Example
–name An Example
使用參數文件
- 參數文件可單獨使用,以便包含測試數據的所有選項和路徑,也可與其他選項和路徑一起使用
- 當參數文件與其他參數一起使用時,其內容將放置在原始參數列表中,并位于參數文件選項所在的位置
- 意味著參數文件中的選項可覆蓋它之前的選項,并且其選項可被它后面的選項覆蓋,可多次使用 --argumentfile選項,甚至可以遞歸使用
robot --argumentfile all_arguments.robot
robot --name Example --argumentfile other_options_and_paths.robot
robot --argumentfile default_options.txt --name Example my_tests.robot
robot -A first.txt -A second.txt -A third.txt tests.robot
創建啟動腳本
介紹:
- 測試用例通常由持續集成系統,jenkins或某些其他機制自動執行。此情況下,需要一個腳本來啟動測試執行,可能還需要以某種方式對輸出進行后處理
- 手動運行測試時,類似腳本也很有用,尤其在需要大量命令行選項或設置測試環境復雜情況下
- 類似UNIX環境中,shell腳本提供一種簡單而強大的機制來創建自定義啟動腳本。也可使用windows批處理文件
- 與平臺無關的替代方法是使用python或其他一些高級編程語言。無論使用哪種語言,使用長選項名,比短名稱更易于理解
- 使用不同瀏覽器執行相同Web測試,然后將結果合并。使用shell腳本很容易,實際上只是一個接一個地列出了所需命令
#!/bin/bash
robot --variable BROWSER:Firefox --name Firefox --log none --report none --output out/fx.xml login
robot --variable BROWSER:IE --name IE --log none --report none --output out/ie.xml login
rebot --name Login --outputdir out --output login.xml out/fx.xml out/ie.xml
注意:robot 和 rebot腳本在windows上是作為批處理文件實現,從另一個批處理文件運行它們時必須使用調用。否則,當第一個批處理文件完成時,執行將結束
@echo off
call robot --variable BROWSER:Firefox --name Firefox --log none --report none --output out\fx.xml login
call robot --variable BROWSER:IE --name IE --log none --report none --output out\ie.xml login
call rebot --name Login --outputdir out --output login.xml out\fx.xml out\ie.xml
執行流程
- 測試用例在測試套件中執行。從測試用例文件創建的測試套件直接可以測試,從目錄創建的套件具有子測試套件,這些子測試套件具有測試或自己的子套件。默認情況下,將運行已執行套件中所有測試,可使用–test, --suite, --include 和 --exclude選項選擇測試。不包含任何測試的套件將被忽略
- 從頂層測試套件開始執行。如果套件具有測試,則它們將被一對一執行,如果套件具有測試,則它們將以深度優先順序遞歸執行。當執行單個測試用例時,包含關鍵字將按順序運行。如果任何一個關鍵字失敗,則當前測試的執行將結束,但也可在失敗后繼續執行
Suite setup
- 測試套件具有setup, 則會在其測試和子套件之前執行。suite setup 通過,測試執行將繼續正常進行,失敗,則套件及其子套件包含的所有測試用例都標記為失敗
- Suite setup 用于設置測試環境,suite setup失敗,不會運行測試,可使用suite setup來驗證環境處于可執行測試狀態
Suite teardown
- 測試套件有 teardown,將在所有測試用例和子套件之后執行。無論測試狀態如何,匹配的套件設置失敗,會執行 Suite teardown。 suite teardown失敗,則套件中所有測試之后都將在報告和日志中標記為失敗
- suite teardown 用于執行后清理測試環境,為了確保完成所有這些任務,即使某些失敗,也會執行teardown中使用所有關鍵字
Test setup
- 可能的測試設置在測試用例的關鍵字之前執行。安裝失敗,不執行關鍵字。測試設置的主要用途是為該特定測試用例設置環境
Test Teardowm
-
執行完測試用例后,進行Test teardown。無論測試狀態如何,以及Test setup 是否失敗,都將執行該命令
-
與suite teardown 類似,Test teardown 主要用于清理活動。某些關鍵字失敗,也會被完全執行
Keyword teardown
- 用戶關鍵字不能具有setup,可具有與其他teardown 完全相同 teardown。無論狀態如何,都將在執行關鍵字后執行關鍵字teardown, 即使某些關鍵字失敗,它們也會被完全執行
執行順序
- 測試套件中,測試用例執行順序與測試用例文件中定義順序相同
- 較高級別測試套件中的測試套件將根據文件或目錄名稱以不區分大小寫的字母順序執行
- 命令行給出了多個文件和/或目錄,則將按照給定順序執行它們
- 需要在目錄內使用某些測試套件執行順序,則可在文件名和目錄中添加諸如01和02之類前綴。前綴與套件基本名稱分開并帶有兩個下劃線,則這些前綴不包括在生成的測試套件名稱中
01_my_suite.robot -> My Suite
02_another_suite.robot -> Another Suite - 套件中測試套件字母順序存在問題,解決方法是按要求順序分別給它們
- 容易導致啟動命令時間過長,參數文件允許每行列出一個文件
- 可使用 --randomize 選項將執行順序隨機化
通過執行
- 測試用例,setup 和 teardown 都包含所有關鍵字,且沒有一個失敗,則認為通過測試。可使用Builtin 關鍵字 Pass Execution 和 Pass Execution If 停止以PASS狀態執行并跳過其余關鍵字
通過執行和通過執行的方式(在不同情況下的行為):
- 任何 setup 或 teardown (套件,測試或關鍵字) 中使用時,關鍵字將通過該 setup 或 teardown。刪除啟動關鍵字,不會影響測試執行或狀態
- setup 或 teardown 之外測試用例中使用時,關鍵字會通過該特定測試用例。執行可能的測試和關鍵字 teardown
- 使用關鍵字之前可能發生的連續失敗以及此后執行的teardown失敗將使執行失敗
- 給出一條解釋消息,說明為什么執行被中斷,且還可以修改測試用例標簽
配置執行
選擇要解析的文件
- – extension選項將文件擴展名作為參數,解析具有該擴展名的文件。需解析不止一種文件,可使用冒號:分隔擴展名。匹配擴展名不區分大小寫
robot --extension robot path/to/tests # 只解析 *.robot 文件
robot --extension ROBOT:TXT path/to/tests #解析 *.robot 和 *.txt files
選擇測試用例
- 可通過命令行選項 --suite ( -s ) 和 --test ( -t ) 分別選擇測試套件和測試用例名稱
- 可多次使用,以選擇多個測試套件或案例
- 選項參數不區分大小寫和空格,可存在與多個名稱匹配的簡單模式
- 同時使用 --suite 和 --test 選項,僅選擇名稱匹配的匹配套件中的測試用例
–test Example
–test mytest --test yourtest
–test example*
–test mysuite.mytest
–test .suite.mytest
–suite example-??
–suite mysuite --test mytest --test your
按標簽名稱
- 可分別使用 --include( -i ) 和 --exclude ( -e ) 選項通過標記名稱包含和排除測試用例
- 使用 --include選項,選擇具有匹配標記測試用例,使用 --exclude選項,不選擇具有匹配標記測試用例
- 兩者都使用,選擇標簽與前一個選項匹配的測試,而不選擇標簽與后一個選項匹配的測試
–include example
–exclude not_ready
–include regression --exclude long_lasting
設置關鍵測試
- 關鍵測試確定測試執行最終結果。單個關鍵測試失敗,整個測試運行視為失敗
- 非關鍵測試用例可能會失敗,總體狀態仍被視為通過
- 默認情況下,所有測試用例都被認為是關鍵的,可使用 --critical ( -c ) 和 --noncritical ( -n ) 選項進行更改
- 選項指定基于標簽的關鍵測試,類似 --include 和 – exclude 用于按標簽選擇測試
- 使用 --critical, 具有匹配標簽的測試用例是關鍵測試
- 使用 --noncritical, 沒有匹配標簽的測試是關鍵測試
–critical regression
–noncritical not_ready
–critical iter-* --critical req-* --noncritical req-6??
總結
以上是生活随笔為你收集整理的RF-用例执行及参数使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机社团活动总结ppt,社团活动总结P
- 下一篇: 模型的指数移动平均EMA