全面学习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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容