全面學(xué)習(xí)robotframework框架二:整體理解框架結(jié)構(gòu)

robotframework支持的文件格式
HTML
TSV
Plain TEXT
reStructuredText

后文將以 Plain TEXT格式囊蓝,以“空格”分割王浴,以“.robot”為文件后綴的方式來(lái)進(jìn)行相關(guān)說(shuō)明

robotframework目錄文件結(jié)構(gòu)

robotframework是以project為單位進(jìn)行管理的
一個(gè)project可以包含多個(gè)Test Suite
一個(gè)Test Suite可以包含多個(gè)測(cè)試用例
一個(gè)Test Suite有四部分組成:Settings谊迄、Variables哮独、Test Cases仍稀、Keywords

如何去執(zhí)行這些腳本:

1、執(zhí)行整個(gè)項(xiàng)目所有用例,pybot 項(xiàng)目路徑技潘,例如:

pybot D:\robot

2遥巴、執(zhí)行某個(gè)suite用例,pybot suite路徑享幽,例如:

pybot D:\robot\testsuit.txt

3铲掐、執(zhí)行某個(gè)測(cè)試用例,pybot –測(cè)試用例名 in 該測(cè)試用例所在suite值桩,例如

pybot --testcase1_login in D:\robot\testsuit.txt

4摆霉、將測(cè)試結(jié)果輸出到固定路徑,pybot –outputdir 報(bào)告路徑 用例路徑奔坟,例如:

pybot --ouputdir D:\ropot D:robot\testsuit.txt

5携栋、執(zhí)行某個(gè)tag的測(cè)試用例,pybot –include [tag name] [項(xiàng)目路徑]咳秉,例如:

pybot --include nomal D:\robot
查看報(bào)告文件

用例執(zhí)行完畢后會(huì)生成三個(gè)文件分別是:log.html婉支、output.xml、report.html


報(bào)告截圖

output.xml:記錄的測(cè)試結(jié)果是XML文件澜建,根據(jù)特定的需要可以編寫腳本讀取XML文件并生成特定的測(cè)試報(bào)告
log.html:會(huì)記錄Robotframework運(yùn)行的每一步操作向挖,主要用于編寫測(cè)試腳本的過(guò)程查看
report,html:為測(cè)試報(bào)告蝌以,整理性的展示測(cè)試用例的運(yùn)行情況

整理結(jié)構(gòu)如下:

總體結(jié)果及關(guān)鍵字說(shuō)明

*** Settings ***
Documentation           這個(gè)是當(dāng)前Test Suite說(shuō)明文字
Library                 當(dāng)前Test Suite需要使用的庫(kù)
Resource                當(dāng)前Test Suite需要加載使用的資源,可能是參數(shù)也可能是用例文件
Metadata                定義元數(shù)據(jù)
Variables               引用變量文件
Suite Setup             Test Suite執(zhí)行前的動(dòng)作
Suite Teardown          Test Suite執(zhí)行后的動(dòng)作
Test Setup              Test Case執(zhí)行前的動(dòng)作
Test Teardown           Test Case執(zhí)行后的動(dòng)作
Force Tags              Test Suite下的所有測(cè)試用例都會(huì)被打上這個(gè)tag
Default Tags            Test Suite的用例如果沒(méi)有打上tag何之,就會(huì)用這個(gè)默認(rèn)tag跟畅,如果打了tag,就會(huì)用自己的tag
Test Timeout            設(shè)置每一個(gè)測(cè)試用例的超時(shí)時(shí)間帝美,只要超過(guò)這個(gè)時(shí)間就會(huì)失敗碍彭,并停止案例運(yùn)行
...                     這是防止某些情況導(dǎo)致案例一直卡住不動(dòng),也不停止也不是失敗
Test Template           數(shù)據(jù)驅(qū)動(dòng)模板(很有用的一個(gè)參數(shù))


*** Variables ***
${SCALAR_VARS}          創(chuàng)建scalar參數(shù)
@{LIST_VARS}            創(chuàng)建list參數(shù)
&{DICT_VARS}            a=創(chuàng)建dictionary參數(shù)


*** Test Cases ***
Test_01
    [Documentation]     測(cè)試用例說(shuō)明……
    [Template]          數(shù)據(jù)驅(qū)動(dòng)模板悼潭,每條用例只有一個(gè)模板
    [Tags]              測(cè)試用例標(biāo)簽
    [Setup]             測(cè)試用例執(zhí)行前的動(dòng)作
    [Teardown]          測(cè)試用例執(zhí)行后的動(dòng)作
    [Timeout]           測(cè)試用例的超時(shí)時(shí)間
    My Keyword One  

Test_02
    [Documentation]     庇忌。。舰褪。
    [Template]          皆疹。。占拍。
    [Tags]              略就。。晃酒。
    [Setup]             表牢。。贝次。
    [Teardown]          崔兴。。蛔翅。
    [Timeout]           敲茄。。山析。
    My Keyword Two


*** Keywords ***
My Keyword One
    [Documentation]     關(guān)鍵字描述
    [Arguments]         自定義參數(shù)設(shè)置
    [Return]            將返回值拋出
    [Timeout]           關(guān)鍵字流程執(zhí)行超時(shí)時(shí)間
    [Tags]              標(biāo)簽
    [Teardown]          關(guān)鍵字流程結(jié)束動(dòng)作
    log                 ${SCALAR_VARS}
    log Mang            @{LIST_VARS}
    log                 ${DICT_VARS}

My Keyword Two
    log                 ${SCALAR_VARS}
    log Mang            @{LIST_VARS}
    log                 ${DICT_VARS}

下面是幾個(gè)簡(jiǎn)單的案例:
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
$堰燎              hello world 2

*** Test Cases ***
testcase1
    [Documentation]    testcase1
    log    ${a}
testcase2
    log    $

*** Keywords ***
suitestart
    Log    suitstart
suitestop
    Log    suitstop
testsetup
    Log    teststart
teststop
    Log    teststop


practice_scalar.robot

*** Settings ***
Documentation       RobotFramework腳本的scalar標(biāo)量練習(xí)
Force Tags          robot-3.0
Default Tags        owner-damao

*** Variables ***
# 創(chuàng)建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

# 創(chuàng)建列表變量

@{NAMES}        Matti       Teppo
@{NAMES2}       @{NAMES}    Seppo
@{NOTHING}
@{MANY}         one         two      three      four
...             five        six      seven

# 創(chuàng)建字典變量
&{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 ***
測(cè)試打印scalar變量
    [Documentation]     打印scalar變量
    To Test Scalar


*** Keywords ***
[Documentation]     創(chuàng)建關(guān)鍵字
To Test Scalar
    [Documentation]     打印標(biāo)量
    log  ${NAME}
    log  ${ROBOT}
    log  ${NULL_VAR}
    log  ${EXAMPLE}
    log  ${LONG_WORDS}
   

practice_List.robot

*** Settings ***
Documentation       RobotFramework腳本"列表"參數(shù)的練習(xí)
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                     # 列表元素太長(zhǎng)時(shí)使用... 分割

*** Test Cases ***
test_01
    [Documentation]     打印列表數(shù)據(jù)
    Print List Variables

test_02
    [Documentation]     獲取列表的長(zhǎng)度
    Get List Length

*** Keywords ***
Print List Variables
    [Documentation]     打印列表數(shù)據(jù)
    log Many    @{list_data}
    log     @{list_data}[2]
    log Many    @{list_data2}  # 打印列表元素需要使用到log Many
    log     @{list_data2}[3]

Get List Length
    [Documentation]     獲取列表的長(zhǎng)度
    ${length}    BuiltIn.Get Length    ${list_data2}   # 在獲取列表的長(zhǎng)度時(shí)需要注意使用${列表參數(shù)}
    log    ${length}

practice_dict.robot

*** Settings ***
Documentation       RobotFramework腳本“字典”參數(shù)的練習(xí)
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]    打印字典數(shù)據(jù)
    log    ${dict_data}
    log    &{dict_data}[a]
    log Many   &{dict_data}[a]    &{dict_data1}[u]
    log    ${dict_data1}


*** Test Cases ***
Test_01
    [Documentation]    測(cè)試打印字典數(shù)據(jù)
    Print Dictionary Data


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末笋轨,一起剝皮案震驚了整個(gè)濱河市秆剪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌爵政,老刑警劉巖鸟款,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異茂卦,居然都是意外死亡何什,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門等龙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)处渣,“玉大人伶贰,你說(shuō)我怎么就攤上這事」拚唬” “怎么了黍衙?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)荠诬。 經(jīng)常有香客問(wèn)我琅翻,道長(zhǎng),這世上最難降的妖魔是什么柑贞? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任方椎,我火速辦了婚禮,結(jié)果婚禮上钧嘶,老公的妹妹穿的比我還像新娘棠众。我一直安慰自己,他們只是感情好有决,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布闸拿。 她就那樣靜靜地躺著,像睡著了一般书幕。 火紅的嫁衣襯著肌膚如雪新荤。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,268評(píng)論 1 309
  • 那天台汇,我揣著相機(jī)與錄音迟隅,去河邊找鬼。 笑死励七,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奔缠。 我是一名探鬼主播掠抬,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼校哎!你這毒婦竟也來(lái)了两波?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤闷哆,失蹤者是張志新(化名)和其女友劉穎腰奋,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體抱怔,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡劣坊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了屈留。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片局冰。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡测蘑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出康二,到底是詐尸還是另有隱情碳胳,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布沫勿,位于F島的核電站挨约,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏产雹。R本人自食惡果不足惜诫惭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望洽故。 院中可真熱鬧贝攒,春花似錦、人聲如沸时甚。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)荒适。三九已至梨熙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刀诬,已是汗流浹背咽扇。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陕壹,地道東北人质欲。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像糠馆,于是被迫代替她去往敵國(guó)和親嘶伟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容