Robot Framework之数据驱动之Template模板

一、数据驱动之Template模板

这里我们介绍RobotFramework一个很有用的功能——测试模板。测试用例中的关键字,例如:

一个关键字测试模板

运行此用例时,只会执行一次。但有时候我们需要连续执行这个关键字。如果我们连续写这个关键字,用例会显得很臃肿。

RobotFramework提供了一个解决方案,在关键字前面加上一个[Template],表示这个用例是一个“测试模板”

多个关键字测试模板

执行结果:

20171208 08:53:58.974 : INFO : 旺财

20171208 08:53:58.974 :  INFO : 小四

20171208 08:53:58.984 :  INFO : 李武

这个测试用例里,“log”关键字被连续执行了三次。与普通的关键字写法不同,带有[Template]的关键字的参数不能和关键字同行。每带有一行参数,关键字就需要执行一次。熟悉QTP的朋友可能会觉得似曾相识

需要特别注意的是,一个用例中只能使用一个[Template],不能多次使用。也不能带[Template]的关键字和普通的关键字混合使用。 利用“[Template]”,robotFramework可以轻松的实现数据驱动

二、测试模板:关键字驱动 => 数据驱动

关键字驱动: 用例主体由若干关键字+参数构成  

数据驱动,:用例主体只由Template关键字的参数构成

用途举例:

对每个测试用例,或者一个测试文件中的所有用例,重复执行同一个关键字多次(使用不同数据),也可以只针对测试用例,或者每个测试文件只执行一次,模板关键字可以接受普通的位置参数,命名参数,关键字名中可以使用参数,不可以使用变量定义模板关键字。

三、样例

Demo1:[Template]会覆盖Setting Table中的template设置:如果[Template]为空值,意味着没有模板

* Test Cases

Normal test case

Example keyword first argument second argument

Templated test case

[Template] Example keyword

first argument second argument

Demo2:对于多行数据,模板关键字会逐行调用执行,一次一行 如果其中有些失败,其他也会执行。 对于普通用例的continue on failure模式,对于模板关键字是缺省行为。

Settings

Test Template Example keyword

Test Cases

Templated test case

first round 1 first round 2

second round 1 second round 2

third round 1 third round 2

Demo3:模板关键字支持嵌入参数的语法,关键字名字就作为参数的持有者,在实际执行中这些参数会被模板关键字解析出实际的参数,传递给低级的底层关键字作为参数

Test Cases

Normal test case with embedded arguments

The result of 1 + 1 should be 2

The result of 1 + 2 should be 3

Template with embedded arguments

[Template] The result of ${calculation} should be ${expected}

1 + 1 2

1 + 2 3

Keywords

The result of ${calculation} should be ${expected}

${result} = Calculate ${calculation}

Should Be Equal ${result} ${expected}

Demo4:带有for循环的模板关键字

Test Cases

Template and for

[Template] Example keyword

:FOR ${item} IN @{ITEMS}

\ ${item} 2nd arg

:FOR ${index} IN RANGE 42

\ 1st arg ${index}

四、不同的测试用例风格

关键字驱动

1.描述工作流

2.若干关键字和他们必要的参数

数据驱动

1.针对相同工作流,执行不同的输入数据

2.只使用一个高级的用户关键字,其中定义了工作流,然后使用不同的输入和输出数据测试相同的场景

3.每个测试中可以重复同一个关键字,但是test template功能只允许定义以此被使用的关键字

行为驱动:

1.描述工作流

2.Acceptance Test Driven Development, ATDD

3.Specification by Example

4.BDD's Given-When-Then

5.And or But,如果测试步骤中操作较多

6.支持嵌入数据到关键字名

Demo1:

Settings

Test Template Login with invalid credentials should fail

Test Cases USERNAME PASSWORD

Invalid User Name invalid ${VALID PASSWORD}

Invalid Password ${VALID USER} invalid

Invalid User Name and Password invalid invalid

Empty User Name ${EMPTY} ${VALID PASSWORD}

Empty Password ${VALID USER} ${EMPTY}

Empty User Name and Password ${EMPTY} ${EMPTY}

Demo2:

Test Cases

Invalid Password

[Template] Login with invalid credentials should fail

invalid ${VALID PASSWORD}

${VALID USER} invalid

invalid whatever

${EMPTY} ${VALID PASSWORD}

${VALID USER} ${EMPTY}

${EMPTY} ${EMPTY}

Demo1和Demo2都是数据驱动的test template样例。

Demo1有命令列,方便阅读理解; test template在setting table中定义; 每行有名字也方便查看结果(如果行数不是太多的话)

Demo2在一个用例中完成所有的事情

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

推荐阅读更多精彩内容