Robot Framework常用关键字介绍
常用关键字介绍
在学习一门编程语言的时候,大多教材都是从打印“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 Shell
Python 2.7.8 (default, Jun 30 2014, 16:03:49) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import random
>>> random.randint(1000, 9999)
3308
random 模块的 randint()方法用于获取当前时间。
在 Robot Framework 中使用“Evauate”也可以调用 Python 所提供的 random 模块下的 randint()方法。
执行结果:
例 2,执行本地程序
通过调用 Python 所提供的 os 模块中的 system()方法可以执行本地 Python 文件。至于在.py 文件中
Python 可以做任何想做的事。
对于 system()方法来说,它也不单单可执行 Python 文件,任何在 cmd 命令提示符下可运行文件和命
令,它都可以执行。
不过,一般情况下不建议通过 system()方法去执行外部程序。这样做其实就脱离了 Robot Framework,
也就是说不管 Robot Framework 什么事了。我们尽量把要做的事情通过 Python 封装成关键字给 Robot
Framework 使用。
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-8
def add(a,b):
return a+b
if __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库提供常用的关键字。
Robot Framework常用关键字介绍的更多相关文章
- robot framework 常用关键字介绍
1.log 打印所有内容 log hello word 2.定义变量 ${a} Set variable 92 log ${a} 3.连接对象 ${a} Catenate hello word l ...
- Robot Framework常用关键字
虽然通过RIDE提供"填表"一样的写测试用例的方式.但它却支持强大的关键字功能,以及可以开发关键字的扩展能力. Comment 注释功能,也可以使用python中的"#& ...
- robot framework Selenium2关键字介绍
*** Settings *** Library Selenium2Library *** Keywords *** Checkbox应该不被选择 [Arguments] ${locator} Che ...
- Robot Framework 常用关键字使用方法
1. Select From Listid=sourceConnoracle_source 从下拉框选取值. 2. Select Radio button name value 选择单选框.也可以点 ...
- 三:robot framework常用关键字
该部分介绍的是内置库:Builtin,估不需要导入,即可使用 1.RF中定义一个变量: ${XXX} XXX表示:变量名 *** Settings *** *** Test Cases *** 定 ...
- robot_framewok自动化测试--(4)常用关键字介绍
常用关键字介绍 在学习一门编程语言的时候,大多教材都是从打印"hello world"开始.我们可以像编程语言一样来学习 Robot Framework.虽然通过 RIDE 提供& ...
- 二、robotframework接口测试-常用关键字介绍
1.常用关键字介绍: a. 打印:log 用法:log 打印内容 ---------------- ...
- Robot Framework学习笔记(三)------常用关键字介绍
下面关键字全部由 Builtin 库提供,Builtin 为 Robot Framework 标准类库.Builtin库提供常用的关键字 1.log log 关键字就是编程语言里的"prin ...
- Robot Framework - 基础关键字 BuiltIn 库(二)
本篇教程,我们继续接着上篇内容进行讲解,我们本节教程讲解的是Robot Framework 机器人框架中的变量中使用判断.字符串的拼接.Evaluate的用法.调用Python文件.条件分支语句.以及 ...
随机推荐
- 编写高质量代码改善C#程序的157个建议——建议88:并行并不总是速度更快
建议88:并行并不总是速度更快 并行所带来的后台任务及任务的管理,都会带来一定的开销,如果一项工作本来就能很快完成,或者说循环体很小,那么并行的速度也许会比非并行要慢. 看这样一个例子,我们比较在同步 ...
- 试题 A: 组队 蓝桥杯
试题 A: 组队本题总分: 5 分[问题描述]作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容.每位球员担任 1 号位至 5 号位时的评分如下表所示.请你计算 ...
- Linq研究
微软在.NET 3.5中加入了LINQ技术,作为配套改进了C#语言,加入了Lambda表达式,扩展方法,匿名类型等新特性用以支持LINQ.微软同时提出了要使用声明式编程,即描述计算规则,而不是描述计算 ...
- centos7 安装dnf包管理器和常用命令
Installing DNF Currently the DNF package comes from the EPEL repository, so if your Linux system is ...
- 蛋疼的Action.c (141): undeclared identifier `LAST'异常
之前这个脚本运行了很久都没有问题,今天突然在场景运行不了: Action.c (141): undeclared identifier `LAST' 害的老子一直在纠结,这个关联函数没有问题啊,怎么一 ...
- kali linux之Msf
目前最流行,最强大,最具扩展性的渗透测试平台软件 基于metasploit进行渗透测试和漏洞分析的流程和方法 框架集成了渗透测试标准(PETS)思想 一定程度上统一了渗透测试和漏洞研究的工作环境 新的 ...
- php中数组模拟队列、栈的函数以及数组指针操作
1,数组指针,current表示当前指针,输出其指向的元素:next表示指针移动到下一个元素:prev指针移动到上一个元素:end表示指针移动到最后一个元素:reset表示指针移动到第一个元素: &l ...
- CentOS加入Windows域
CentOS加入Windows域,为减少操作已经提前关掉了selinux,防火墙.并且更改了主机名 yum install nss-pam-ldapd -y 第一步:更改主机名为linux.itxd ...
- Linux 下安装 resync 介绍
Linux 下安装 resync 介绍 这是官网,找到对应版本的下载地址. 这里提供Linux_X64的安装包 wget '' https://download-cdn.resilio.com/sta ...
- 移动 UX 设计:如何设计推送通知
这个问题你一定想过,在移动用户体验设计领域中,如何设计好一条简单的推送通知. 你注意过么,每天从不同的 App 上收到的大量的推送通知与提醒,这些通知里有多少你真的有兴趣? 每天,用户对各种没用的通知 ...