《我的RobotFramework书》1-3 测试模板, Test Template
来源:互联网 发布:阿里云 授权对象 编辑:程序博客网 时间:2024/05/18 02:37
测试模板, Test Template
作者: 虞科敏
测试模板,关键字驱动 => 数据驱动
关键字驱动, 用例主体由若干关键字+参数构成
vs.
数据驱动, 用例主体只由Template关键字的参数构成
用途举例:
对每个测试用例,或者一个测试文件中的所有用例,重复执行同一个关键字多次(使用不同数据)
也可以只针对测试用例,或者每个测试文件只执行一次
模板关键字可以接受普通的位置参数,命名参数
关键字名中可以使用参数
不可以使用变量定义模板关键字
样例1
[Template]会覆盖Setting Table中的template设置
如果[Template]为空值,意味着没有模板
* Test Cases
Normal test caseExample keyword first argument second argument
Templated test case
[Template] Example keyword
first argument second argument
样例2
对于多行数据,模板关键字会逐行调用执行,一次一行 如果其中有些失败,其他也会执行。 对于普通用例的continue on failure模式,对于模板关键字是缺省行为。
Settings
Test Template Example keywordTest Cases
Templated test casefirst round 1 first round 2
second round 1 second round 2
third round 1 third round 2
样例3
模板关键字支持嵌入参数的语法
关键字名字就作为参数的持有者,在实际执行中这些参数会被模板关键字解析出实际的参数,传递给低级的底层关键字作为参数
Test Cases
Normal test case with embedded argumentsThe result of 1 + 1 should be 2
The result of 1 + 2 should be 3Template with embedded arguments
[Template] The result of ${calculation} should be ${expected}
1 + 1 2
1 + 2 3Keywords
The result of ${calculation} should be ${expected}${result} = Calculate ${calculation}
Should Be Equal ${result} ${expected}
样例4
模板关键字名字中的参数个数必须匹配它将使用的参数数量
参数名不需要匹配原始关键字的参数
Test Cases
Different argument names[Template] The result of ${foo} should be ${bar}
1 + 1 2
1 + 2 3Only some arguments
[Template] The result of ${calculation} should be 3
1 + 2
4 - 1New arguments
[Template] The ${meaning} of ${life} should be 42
result 21 * 2
样例5 带有for循环的模板关键字
Test Cases
Template and for[Template] Example keyword
:FOR ${item} IN @{ITEMS}
\ ${item} 2nd arg
:FOR ${index} IN RANGE 42
\ 1st arg ${index}
不同的测试用例风格
- 关键字驱动
- 描述工作流
- 若干关键字和他们必要的参数
- 数据驱动
- 针对相同工作流,执行不同的输入数据
- 只使用一个高级的用户关键字,其中定义了工作流,然后使用不同的输入和输出数据测试相同的场景
- 每个测试中可以重复同一个关键字,但是test template功能只允许定义以此被使用的关键字
- 行为驱动:
- 描述工作流
- Acceptance Test Driven Development, ATDD
- Specification by Example
- BDD's Given-When-Then
- And or But,如果测试步骤中操作较多
- 支持嵌入数据到关键字名
样例1
Settings
Test Template Login with invalid credentials should failTest 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}
样例2
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}
样例1和样例2都是数据驱动的test template样例。
样例1有命令列,方便阅读理解; test template在setting table中定义; 每行有名字也方便查看结果(如果行数不是太多的话)
样例2在一个用例中完成所有的事情
样例3
搜索关键字的时候, 如果full name没有搜索到, Given-When-Then-And-But等前缀会被忽略
Test Cases
Valid LoginGiven login page is open
When valid username and password are inserted
and credentials are submitted
Then welcome page should be open
- 《我的RobotFramework书》1-3 测试模板, Test Template
- 《我的RobotFramework书》1-4 测试套件, Test Suite
- 《我的RobotFramework书》1-5 测试库, Test Library
- 《我的RobotFramework书》1-2 测试用例, Test Case
- 《我的RobotFramework书》1-1 测试数据, Test Data
- Robotframework+ride中test template的用法
- 《我的RobotFramework书》 - 篇首
- 《我的RobotFramework书》1-6 变量, Variable
- golang 模板(test/template)
- 《我的RobotFramework书》1-6-3 内建变量, Build-in Variables
- RobotFrameWork(七)数据驱动之Template模板
- vue的模板 <template></template>
- 我看懂的设计模式 Template Method,模板方法
- 《我的RobotFramework书》1-6-4 变量的属性和作用范围
- 《我的RobotFramework书》1-6-1 创建变量, Creating Variables
- 《我的RobotFramework书》1-6-2 变量文件, Vairable Files
- robotframework 基于接口测试的框架探索1
- template模板3
- 原生js模仿小米轮播图
- bootstrap 二级导航
- OPC经验谈
- 《从零开始学Swift》学习笔记(Day 3)——Swift 2.0之后增加的关键字
- 《STL源码剖析》阅读笔记
- 《我的RobotFramework书》1-3 测试模板, Test Template
- 多线程2
- 一点struts2(1)
- Unity3D项目融合到Android项目中
- HNNU 11658 阶乘除法【湖南省第十一届大学生计算机程序设计竞赛,数论】
- Composer简单使用
- dtree的使用 前后台实例
- mysql游标案例(已备将来自己查看)
- 计算机网络-TCP/UDP区别