全面學習robotframework框架二:整體理解框架結構
robotframework支援的檔案格式
HTML
TSV
Plain TEXT
reStructuredText
後文將以 Plain TEXT格式,以“空格”分割,以“.robot”為檔案字尾的方式來進行相關說明
robotframework目錄檔案結構
robotframework是以project為單位進行管理的
一個project可以包含多個Test Suite
一個Test Suite可以包含多個測試用例
一個Test Suite有四部分組成:Settings、Variables、Test Cases、Keywords
如何去執行這些指令碼:
1、執行整個專案所有用例,pybot 專案路徑,例如:
pybot D:\robot
2、執行某個suite用例,pybot suite路徑,例如:
pybot D:\robot\testsuit.txt
3、執行某個測試用例,pybot –測試用例名 in 該測試用例所在suite,例如
pybot --testcase1_login in D:\robot\testsuit.txt
4、將測試結果輸出到固定路徑,pybot –outputdir 報告路徑 用例路徑,例如:
pybot --ouputdir D:\ropot D:robot\testsuit.txt
5、執行某個tag的測試用例,pybot –include [tag name] [專案路徑],例如:
pybot --include nomal D:\robot
檢視報告檔案
用例執行完畢後會生成三個檔案分別是:log.html、output.xml、report.html
output.xml:記錄的測試結果是XML檔案,根據特定的需要可以編寫指令碼讀取XML檔案並生成特定的測試報告
log.html:會記錄Robotframework執行的每一步操作,主要用於編寫測試指令碼的過程檢視
report,html:為測試報告,整理性的展示測試用例的執行情況
整理結構如下:
總體結果及關鍵字說明
*** Settings ***
Documentation 這個是當前Test Suite說明文字
Library 當前Test Suite需要使用的庫
Resource 當前Test Suite需要載入使用的資源,可能是引數也可能是用例檔案
Metadata 定義後設資料
Variables 引用變數檔案
Suite Setup Test Suite執行前的動作
Suite Teardown Test Suite執行後的動作
Test Setup Test Case執行前的動作
Test Teardown Test Case執行後的動作
Force Tags Test Suite下的所有測試用例都會被打上這個tag
Default Tags Test Suite的用例如果沒有打上tag,就會用這個預設tag,如果打了tag,就會用自己的tag
Test Timeout 設定每一個測試用例的超時時間,只要超過這個時間就會失敗,並停止案例執行
... 這是防止某些情況導致案例一直卡住不動,也不停止也不是失敗
Test Template 資料驅動模板(很有用的一個引數)
*** Variables ***
${SCALAR_VARS} 建立scalar引數
@{LIST_VARS} 建立list引數
&{DICT_VARS} a=建立dictionary引數
*** Test Cases ***
Test_01
[Documentation] 測試用例說明……
[Template] 資料驅動模板,每條用例只有一個模板
[Tags] 測試用例標籤
[Setup] 測試用例執行前的動作
[Teardown] 測試用例執行後的動作
[Timeout] 測試用例的超時時間
My Keyword One
Test_02
[Documentation] 。。。
[Template] 。。。
[Tags] 。。。
[Setup] 。。。
[Teardown] 。。。
[Timeout] 。。。
My Keyword Two
*** Keywords ***
My Keyword One
[Documentation] 關鍵字描述
[Arguments] 自定義引數設定
[Return] 將返回值丟擲
[Timeout] 關鍵字流程執行超時時間
[Tags] 標籤
[Teardown] 關鍵字流程結束動作
log ${SCALAR_VARS}
log Mang @{LIST_VARS}
log ${DICT_VARS}
My Keyword Two
log ${SCALAR_VARS}
log Mang @{LIST_VARS}
log ${DICT_VARS}
下面是幾個簡單的案例:
practice_setup_and_teardown.robot
*** Settings ***
Documentation test
Suite Setup suitestart
Suite Teardown suitestop
Test Setup testsetup
Test Teardown teststop
*** Variables ***
${a} hello world 1
${b} hello world 2
*** Test Cases ***
testcase1
[Documentation] testcase1
log ${a}
testcase2
log ${b}
*** Keywords ***
suitestart
Log suitstart
suitestop
Log suitstop
testsetup
Log teststart
teststop
Log teststop
practice_scalar.robot
*** Settings ***
Documentation RobotFramework指令碼的scalar標量練習
Force Tags robot-3.0
Default Tags owner-damao
*** Variables ***
# 建立scalar變數
${NAME} Robot Framework
${VERSION}= 3.0
${ROBOT} ${NAME} ${VERSION}
${NULL_VAR} # 空字串被賦值給了${NULL_VAR}
${EXAMPLE} This value is joined together with a space
... 1122333333333333333333333333333333
${LONG_WORDS} 1111111111111111
# 建立列表變數
@{NAMES} Matti Teppo
@{NAMES2} @{NAMES} Seppo
@{NOTHING}
@{MANY} one two three four
... five six seven
# 建立字典變數
&{USER 1} name=Matti address=xxx phone=123
&{USER 2} name=Teppo address=yyy phone=456
# &{MANY} first=1 second=${2} ${3}=thirds
&{EVEN MORE} first=override empty=
... =empty key\=here=value
*** Test Cases ***
測試列印scalar變數
[Documentation] 列印scalar變數
To Test Scalar
*** Keywords ***
[Documentation] 建立關鍵字
To Test Scalar
[Documentation] 列印標量
log ${NAME}
log ${ROBOT}
log ${NULL_VAR}
log ${EXAMPLE}
log ${LONG_WORDS}
practice_List.robot
*** Settings ***
Documentation RobotFramework指令碼"列表"引數的練習
Force Tags robot-3.0
Default Tags owner-damao
*** Variables ***
@{list_data} 1 2 3 4 5
@{list_data2} a b c d e f
... q w e # 列表元素太長時使用... 分割
*** Test Cases ***
test_01
[Documentation] 列印列表資料
Print List Variables
test_02
[Documentation] 獲取列表的長度
Get List Length
*** Keywords ***
Print List Variables
[Documentation] 列印列表資料
log Many @{list_data}
log @{list_data}[2]
log Many @{list_data2} # 列印列表元素需要使用到log Many
log @{list_data2}[3]
Get List Length
[Documentation] 獲取列表的長度
${length} BuiltIn.Get Length ${list_data2} # 在獲取列表的長度時需要注意使用${列表引數}
log ${length}
practice_dict.robot
*** Settings ***
Documentation RobotFramework指令碼“字典”引數的練習
Force Tags robot-3.0
Default Tags owner-damao
*** Variables ***
&{dict_data} a=b e=w y=1 asd=123
&{dict_data1} a=1 b=2 c=3 d=4
... r=7 u=90
*** Keywords ***
Print Dictionary Data
[Documentation] 列印字典資料
log ${dict_data}
log &{dict_data}[a]
log Many &{dict_data}[a] &{dict_data1}[u]
log ${dict_data1}
*** Test Cases ***
Test_01
[Documentation] 測試列印字典資料
Print Dictionary Data
相關文章
- Dubbo框架————整體架構框架架構
- 框架學習:hibernate框架的結構和分析框架
- 最新 iOS 框架整體梳理(二)iOS框架
- 框架學習:struts1框架的結構和分析框架
- 框架學習:webWork框架和struts2框架的結構和分析框架Web
- go微服務框架go-micro深度學習(一) 整體架構介紹Go微服務框架深度學習架構
- MYSQL學習(二) --MYSQL框架MySql框架
- Golang 學習——結構體 struct (二)Golang結構體Struct
- Dubbo框架學習總結框架
- rose框架學習總結ROS框架
- 深入理解 Flutter 框架層次結構Flutter框架
- RPC框架整體架構設計分析RPC框架架構
- caffe整體框架的學習的部落格,這個部落格山寨了一個caffe框架框架
- GoWeb框架Gin學習總結GoWeb框架
- Java Executor 框架學習總結Java框架
- 駁 《駁 《駁 《駁 《停止學習框架》》》》、《駁 《駁 《停止學習框架》》》、《駁 《停止學習框架》》、《停止學習框架》框架
- Laravel 框架學習心得體會Laravel框架
- Spring 核心框架體系結構Spring框架
- ffmpeg框架結構框架
- go培訓課程都學什麼?xorm框架學習系列(二):xorm結構體對映規則和表操作GoORM框架結構體
- 最新 iOS 框架整體梳理(三)iOS框架
- 最新 iOS 框架整體梳理(一)iOS框架
- 結構體學習結構體
- 整體二分學習筆記筆記
- 深度學習學習框架深度學習框架
- Qt Creator 原始碼學習筆記02,認識框架結構QT原始碼筆記框架
- 深度學習與圖神經網路學習分享:Transformer 整體結構深度學習神經網路ORM
- OS 學習框架框架
- 停止學習框架框架
- Koa框架學習框架
- Httprunner框架學習HTTP框架
- ThinkPhP 框架學習PHP框架
- 前端學習框架前端框架
- Play框架學習框架
- 深入學習Spring框架(二)- 註解配置Spring框架
- laravel框架學習之路(二)pjax的使用Laravel框架
- 學習Rust 結構體Rust結構體
- Deployer整體結構