Robot Framework 内置变量
转自:https://blog.csdn.net/qq_26886929/article/details/53907755
Robot Framework 内部提供了一下直接可用的内置变量
1. 操作系统相关变量
内置的操作系统相关的变量,减少了测试数据对操作系统之间的差异性的关注
RF 中可用的操作系统相关的内置变量如下表:
| 变量 | 用途 |
| ${CURDIR} | 测试数据文件所在目录的绝对路径,该参数是大小写敏感的 |
| ${TEMPDIR} | 操作系统临时目录的绝对路径,在类 Unix 系统中,该路径通常是 /tmp;在 Windows 系统中,通常是 c:\Documents and Settings\<user>\Local Settings\Temp |
| ${EXECDIR} | 到测试开始执行的目录的绝对路径 |
| ${/} | 操作系统文件路径分隔符,在类 Unix 系统中为: ‘/’, 在 Windows 中则为: ‘\’ |
| ${:} | 操作系统路径元素分隔符,在类 Unix 系统中为: ‘:’,在 Windows 中则为: ‘;’ |
| ${\n} | 操作系统行分隔符,在类 Unix 系统中为: ‘\n’,在 Windows 中则为: ‘\r\n’ |
- *** Test Cases ***
- Example
- Create Binary File ${CURDIR}${/}input.data Some text here${\n}on two lines
- Set Environment Variable CLASSPATH ${TEMPDIR}${:}${CURDIR}${/}foo.jar
2. 数字变量
如下面例子中所示,变量语法能用来创建 整型 和 浮点型 数据。当一个关键字需要 真实的数字而非对应的数字字符串作为参数时,这种创建数字变量的方法是很有用的。
- *** Test Cases ***
- Example 1A
- Connect example.com 80 # Connect 获得两个字符串作为参数
- Example 1B
- Connect example.com ${80} # Connect 获得一个字符串和一个整数作为参数
- Example 2
- Do X ${3.14} ${‐1e‐4} # Do X 获得浮点数 3.14 和 ‐0.0001 作为参数
- *** Test Cases ***
- Example
- Should Be Equal ${0b1011} ${11}
- Should Be Equal ${0o10} ${8}
- Should Be Equal ${0xff} ${255}
- Should Be Equal ${0B1010} ${0XA}
3. 布尔值和 None/ null变量
布尔值和 Python 的 None,Java 的 null 变量也可以用创建数字变量类似的语法创建:
- *** Test Cases ***
- Boolean
- Set Status ${true} # Set Status 获得布尔值 true 作为参数
- Create Y something ${false} # Create Y 获得字符串和布尔值 false 作为参数
- None
- Do XYZ ${None} # Do XYZ 获得 Python None 作为参数
- Null
- ${ret} = Get Value arg # Checking that Get Value returns Java null
- Should Be Equal ${ret} ${null}
这些变量也是大小写不敏感的,所以 ${True} 和 ${true} 是一样的。此外 ${None} 和 ${null} 是同义词,因为用 Jython 解释器执行用例时, Jython 会自动将 None 和 null 转换成正确格式。
4.空格和空(empty)变量
可以分别使用 ${SPACE} 和 ${EMPTY} 来创建空格和空字符串变量。这些变量很有用,如果不使用这些变量的话,就需要对空格或空单元格进行转义。如果需要一个以上的空格,也可以使用扩展变量语法来轻易获得,形如: ${SPACE * 5}。下面的例子中,Should Be Equal 关键字得到的参数值是相等的,但很明显使用变量的方式比使用 ‘\' 转义的方式更易理解。
- *** Test Cases ***
- One Space
- Should Be Equal ${SPACE} \ \
- Four Spaces
- Should Be Equal ${SPACE * 4} \ \ \ \ \
- Ten Spaces
- Should Be Equal ${SPACE * 10} \ \ \ \ \ \ \ \ \ \ \
- Quoted Space
- Should Be Equal "${SPACE}" " "
- Quoted Spaces
- Should Be Equal "${SPACE * 2}" " \ "
- Empty
- Should Be Equal ${EMPTY} \
还有两个变量 @{EMPTY} 和 &{EMPTY},他们分别表示 ‘空列表’ 和 ‘空字典’ 变量。 这两个变量也是有用的,例如在写测试模板的时候,模板关键字不带参数使用时。
- *** Test Cases ***
- Template
- [Template] Some keyword
- @{EMPTY}
- Override
- Set Global Variable @{LIST} @{EMPTY}
- Set Suite Variable &{DICT} &{EMPTY}
5. 自动变量
还有一些自动变量可以在测试数据中使用。这些变量在测试过程中可能有不同的取值,其中有一些甚至不是一直可用的。
| 变量 | 解释 | 使用地点 |
| ${TEST NAME} | 当前测试用例的名称 | 测试用例中 |
| @{TEST TAGS} | 当前测试用例被打上的所有标记,按字母顺序排列。可以使用 Set Tags 和 Remove Tags 关键字动态的修改 | 测试用例中 |
| ${TEST DOCUMENTATION} | 当前测试用例的说明文档,可以使用 Set Test Documentation 关键字动态的修改 | 测试用例中 |
| ${TEST STATUS} | 当前测试用例的执行状态,PASS 或 FAIL | 测试用例 teardown时 |
| ${TEST MESSAGE} | 当前测试用例的信息 | 测试用例 teardown时 |
| ${PREV TEST NAME} | 前一个测试用例的名字,如果还没有测试用例被执行,则该值为空 | 所有地方 |
| ${PREV TEST STATUS} | 前一个测试用例的执行状态,PASS/FAIL,如果还没有测试用例被执行,则该值为空 | 所有地方 |
| ${PREV TEST MESSAGE} | 前一个测试用例执行所产生的可能的错误信息 | 所有地方 |
| ${SUITE NAME} | 当前测试套件的全称 | 所有地方 |
| ${SUITE SOURCE} | 当前测试套件文件或目录的绝对路径 | 所有地方 |
| ${SUITE DOCUMENTATION} | 当前测试套件的说明文档,可以使用 Set Suite Documentation 关键字动态的改变 | 所有地方 |
| &{SUITE METADATA} | 当前测试套件的元数据 | 所有地方 |
| ${SUITE STATUS} | 当前测试套件的执行状态, PASS 或 FAIL | 测试套件 teardown |
| ${SUITE MESSAGE} | 当前测试套件的全部信息,包括统计 | 测试套件 teardown |
| ${KEYWORD STATUS} | 当前关键的执行状态,PASS 或 FAIL | 用户关键字 teardown |
| ${KEYWORD MESSAGE} | 当前关键字执行时可能产生的错误信息 | 用户关键字 teardown |
| ${LOG LEVEL} | 当前日志级别 | 所有地方 |
| ${OUTPUT FILE} | 到输出文件的绝对路径 | 所有地方 |
| ${LOG FILE} | 到日志文件的绝对路径,或者为NONE 当没有创建日志文件时 | 所有地方 |
| ${REPORT FILE} | 到测试报告文件的绝对路径,或者为NONE 当没有创建测试报告文件时 | 所有地方 |
| ${DEBUG FILE} | 到debug文件的绝对路径,或者为NONE 当没有创建debug文件时 | 所有地方 |
| ${OUTPUT DIR} | 到输出目录的绝对路径 | 所有地方 |
Robot Framework 内置变量的更多相关文章
- Maven系列三Maven内置变量
Maven内置变量说明: ${basedir} 项目根目录(即pom.xml文件所在目录) ${project.build.directory} 构建目录,缺省为target目录 ${project. ...
- Maven的内置变量
Maven内置变量说明: ${basedir} 项目根目录(即pom.xml文件所在目录) ${project.build.directory} 构建目录,缺省为target目录 ${project. ...
- nginx的那些内置变量
nginx在配置文件nginx.conf中可以使用很多内置变量,配置如下: location /info { add_header 'Content-Type' 'text/html'; echo & ...
- Maven内置变量说明
Maven内置变量说明: ${basedir} 项目根目录 ${project.build.directory} 构建目录,缺省为target ${project.build.outputDirect ...
- 学习笔记——Maven 内置变量
Maven内置变量说明: ${basedir} 项目根目录(即pom.xml文件所在目录) ${project.build.directory} 构建目录,缺省为target目录 ${project. ...
- makefile 分析 -- 内置变量及自动变量
makefile 分析1 -p 选项,可以打印出make过程中的数据库, 下面研究一下内置的变量和规则. -n 选项, 只运行,不执行, -d 选项,相当于--debug=a, b(basic), ...
- Perl中的特殊内置变量详解
#!/usr/bin/perl -w @array = qw(a b c d); foreach (@array) { print $_," "; } 例子的作用就是定义一个数组并 ...
- 【译】 AWK教程指南 附录D-AWK的内置变量
因内置变量的个数不多,此处按其相关性分类说明,并未按其字母顺序排列. ARGC ARGC表示命令行上除了选项 -F, -v, -f 及其所对应的参数之外的所有参数的个数.若将"awk程序&q ...
- Maven内置变量
1.Maven内置变量说明: ${basedir} 项目根目录 ${project.build.directory} 构建目录,缺省为target ${project.build.outputDire ...
随机推荐
- java根据ip地址获取详细地域信息的方法
通过淘宝IP地址库获取IP位置(也可以使用新浪的) 请求接口(GET):http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串] 响应信息:(jso ...
- ubuntu18安装网易云音乐
1.打开ubuntu软件搜索网易云安装 2.解决ubuntu18.04下网易云音乐打不开的问题 修改/etc/sudoers文件 sudo vi /etc/sudoers 在最后增加一行: usern ...
- CF D.Mister B and Astronomers
题意概括好麻烦, 好吧既然是英文题面那放一下题意. 题意:有 n 个观察员,第一个观察员在 0 秒开始观察星空,随后第i 个观察员会在第 i − 1 个观察员之后 ai 秒观察,第一个观察员也会在第 ...
- C++中关于字符串的一些API
参考资料:http://www.runoob.com/cplusplus/cpp-strings.html 一.前言 不管是在编写何种语言程序,需要从输入设备中获取数据的需求很频繁,在这类频繁的应用场 ...
- Spark参数详解 一(Spark1.6)
Spark参数详解 (Spark1.6) 参考文档:Spark官网 在Spark的web UI在"Environment"选项卡中列出Spark属性.这是一个很有用的地方,可以检查 ...
- ios-时间换算
经常会遇到时间转换的,在此收藏一个时间换算的方法〜 #pragma mark 时间换算 + (NSString *)setcreateTime:(NSString *)str { //yyyy-MM- ...
- c# AutoMapper 使用方式和再封装
安装方式:使用vs自带的nuget管理工具,搜索AutoMapper ,选择第一个安装到你的项目即可. 我从网上找了一些资料, 参考网址:http://blog.csdn.net/csethcrm/a ...
- Yii2 设计模式——Yii2 中用到哪些设计模式?
Yii 2 设计模式“包含了两个方面的内容:1. 设计模式,2. Yii 2 框架. <设计模式>一书虽然以JAVA语言来表达设计模式的思想,但是设计模式远不限制于某一种特定的语言,而是在 ...
- python 基础之变量存储缓存机制与数据驻留小数据池
一:变量存储的缓存机制 在同一文件(模块)里,变量存储的缓存机制 (仅对python3.x版本负责),那么 --对于Number (int bool float complex) 1.对于整型而言,- ...
- Window服务项目脚手架
本人最近工作用到window服务程序,于是尝试分享下经验,开源了一个window服务脚手架项目,把window服务程序必不可少的组件集成进去,如日志组件log4net,window服务挂在后台,用日志 ...