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