常用关键字介绍
在学习一门编程语言的时候,大多教材都是从打印“hello world”开始。我们可以像编程语言一样来学习 Robot Framework。虽然通过 RIDE 提供“填表”一样的写测试用例的方式。但它却有着像编程语言
一样的强大的关键字,以及可以开发关键字的扩展能力。1 log 就是“print”
log 关键字就是编程语言里的“print”一样,可以打印任何你想打印的内容。
在 test case 中填写以下内容:勾选测试用例,点击工具栏的“Run Tests”按钮或按快捷键“F8”执行测试用例。如图:
在 Run 标签页,将看到执行结果:
通过运行结果中看到,“ INFO:”的“hello world” 就是通过 log 关键字打印的信息。
2 定义变量
在 robot Framework 中通过“Set variable”关键字来定义变量,如:
执行结果:
3 连接对象
“Catenate”关键字可以连接多个信息。
执行结果:
加上“SEPARATOR=”可以对多个连接的信息进行分割。
执行结果:
4 定义列表
通过“Create List”关键字可以定义列表。例 1
执行结果:
每个字符串前面加 u,是为了统一编码问题,将字符串转为 Unicode 编码。
例 2如果通过“@{}”去定义列表的话,可以通过“log many”关键字进行打印
执行结果:5 .时间的操作
在 Robot Framework 中也提供操作时间的关键字。
1) Robot Framework 中提供了“get time”关键字用来获取当前时间。执行结果:
2) “sleep”关键字用来设置休眠一定时间。
sleep 关键字默认以“秒”为单位。
执行结果:通过前后两次获取当前时间的差,可以清楚的看到 sleep 休眠 5 秒所起的作用。
6 if 语句
通过“run keyword if”关键字可以编写 if 分支语句。
首先定义两个变量 a 等于 59 。
If 判断 a 大于等于 90 ,满足条件 log 输出 “优秀 ”;不满足上面的条件,接着 else if 判断 a 大于等于 70 ,满足条件 log 输出 “良好”;不满足上面的条件,接着 else if 判断 a 大于等于 60 ,满足条件 log 输出 “及格”;上面的条件都不满足,else log 输出“不及格”。注:注意 sele if 和 else 前面的三个点点点(...)执行结果:7 for 循环
在 Robot Framework 中编写循环通过“:for”。
例 1,执行 10 次循环。通过“:for”定义 for 循环;in range 用于指定循环的范围。
注意,in range 定义为 10,它的范围是 0~9。
例 2,遍历列表。“create list” 关键字用来定义列表(a,b,c),“@{}”用来存放列表。
通过过“:for”循环来来遍历@{abc}列表中的字符。执行结果:8 强大的 Evaluate
为什么说“Evauate”关键字强大呢。因为通过它可以使用 Python 语言中所提供的方法。
例 1,生成随即数在 Python 中我们可以这样来引和并使用方法:Python ShellPython 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win32Type "copyright", "credits" or "license()" for more information.>>> import random>>> random.randint(1000, 9999)3308random 模块的 randint()方法用于获取当前时间。在 Robot Framework 中使用“Evauate”也可以调用 Python 所提供的 random 模块下的 randint()方法。执行结果:
例 2,执行本地程序
通过调用 Python 所提供的 os 模块中的 system()方法可以执行本地 Python 文件。至于在.py 文件中
Python 可以做任何想做的事。对于 system()方法来说,它也不单单可执行 Python 文件,任何在 cmd 命令提示符下可运行文件和命令,它都可以执行。不过,一般情况下不建议通过 system()方法去执行外部程序。这样做其实就脱离了 Robot Framework,也就是说不管 Robot Framework 什么事了。我们尽量把要做的事情通过 Python 封装成关键字给 RobotFramework 使用。9 导入库
在 Python 语言中可以使用 import 导入标准和第三方模块或框架。那么在 Robot Framework 中也提供
了“Import Library”关键字来完成这个事情。1、调用框架我们导入了 Python 标准的单元测试框架 unittest。当然,在 Robot Framework 中并不能使用 unittest
单元测试框架。这只里只演示“Import Library”等同于 Python 语言中的 import。假如我们通过“Import Library”导入一个不存在的模块“HTMLTestRunner”Robot Framework 会遍历 Python 安装目录下的相关目录查找“HTMLTestRunner”模块。2、调用 Python 文件首先创建 test.py 文件。test.py#coding=utf-8def add(a,b):return a+bif __name__ == "__main__":a = add(4,5)print a运行结果为 9,这是再简单不过的小程序了。下面就通过 Robot Framework 调用 test.py 文件中的 add()函数。执行结果:
从执行结果中看到和预想的结果不是样,不应该是 9 么?怎么是 45。这是因为 Robot Framework 把 4
和 5 当前两个字符串。所以 4 和 5 拼接起来是 45。我们可以将 4 和 5 转化成 int 类型,再调用 add。执行结果:
通过“Evaluate”转化成为 int 类型后,再调用 add 就得到了想要的结果。
10 注释
Robot Framework 中添加注释也非常简单。“Comment”关键字用于设置脚本中的注释。
除此之外,你也可以像 Python 一样使用“#”号进行注释。
这一小节中介绍的关键字全部由 Builtin 库提供,Builtin 为 Robot Framework 标准类库。Builtin库提供常用的关键字。