RobotFramework之关键字
⾃动化测试是测试领域不可缺少的⼀部分,⾄少我是这么认为,以前也多多少少接触过⼀些⾃动化相关知识,不过都没有实际操作和练习过,最近⼀个⽉接触到RobotFramework,并且采⽤了这个⽤python编写的功能⾃动化测试框架来测试我们公司系统,接下来就是学习过程中的⼀些笔记,若有错误的地⽅还请提出,谢谢!
1:⾸先简短介绍下RobotFramework这个东西到底是什么
Robot Framework是⼀款python编写的功能⾃动化测试框架。具备良好的可扩展性,⽀持关键字驱动,可以同时测试多种类型的客户端或者接⼝,可以进⾏分布式测试执⾏。主要⽤于轮次很多的验收测试和验收测试驱动开发(ATDD)。Robot Framework是开源软件,由Nokia Siemens Networks开发并提供⽀持。
2:RobotFramework具有那些特性
1.测试⽤例使⽤⽂本⽂件(TXT或者TSV⽂件)保存,使⽤制表符分隔数据。可以⽅便的使⽤任何⽂本编辑器,或者EXCEL编辑测试⽤例。也可以使⽤HTML格式创建⽤例。
2.测试⽤例中⽀持变量使⽤,可以使⽤IF语句和FOR循环语句。
3.可以利⽤“标签”功能对测试⽤例进⾏分类和有选择执⾏。
4.⽀持关键字驱动、数据驱动和⾏为驱动。
5.利⽤已有的关键字,测试⼈员可以创建⾃⼰需要的关键字,形成更⾼级别的⾏为。
6.测试执⾏报告和⽇志是HTML格式,容易阅读。
7.Robot Framework并不是⼀款像QTP⼀样的⾃动化测试⼯具。它是⼀个⾃动化测试框架,或者说是⼀个⾃动化测试平台。
8.提供了测试执⾏事件的监听接⼝,并且可以⾃定义接⼝中的脚本。例如,某个⽤例执⾏
前,“start_test”接⼝中的脚本就会被执⾏;⽤例执⾏结束后,“end_test”接⼝中的脚本就会被执⾏。⽽测试⼈员可以⾃定义“start_test”、“end_test”这两个接⼝的脚本。
9.提供了命令⾏接⼝和XML格式的输出。可以与版本管理⼯具结合,进⾏持续集成。
10.Robot Framework是通过测试库识别被对象、操纵被测对象,有很多⾃带的或者第三⽅的开源测试库
例如:使⽤“selenium2Library”库测试web客户端。此外还可以测试java客户端、Win32客户端、SSH协议的字符终端等。
11.测试⼈员可以使⽤Python和java创建⾃⼰需要的测试库。
12.提供了远程测试执⾏接⼝,可以进⾏分布式测试执⾏。
3:编写脚本⼯具RIDE
RIDE是⼀款专门⽤来编辑Robot Framework⽤例的软件,⽤Python编写并且开源。RIDE可以从Robot Framework官⽹到最新的下载链接。(具体安装过程和⽤法会在后⾯的⽂章给出),其实还有其他的编写⼯具,这⾥只是笔者⽤的RIDE编写,看个⼈爱好。4:Keywords参考库RobotFramework有很多可以参考的库,但是我只是⽤到了BuiltIn和Selenium2Library,⾥⾯提供了写脚本的⼀些关键字,但是Wait Until Element Is Visible这个关键字⽤不了,原因我也不知道为什么。
5:RobotFramework 关键字(因时间有限,我会⼀点⼀点的累加的,另外我是⽤Xpath写的脚本)
open browser | url, browser=firefox,
alias=None,remote_url=False,desired_capabilities=None, ff_profile_dir=None
打开浏览器 | url表⽰你需要打开的⽹页地址 | browser表⽰你⽤什么浏览器打开这个⽹页 | 后⾯的内容可以为空,所以忽略。
RobotFramework之关键字
Set Browser Implicit Wait | seconds
设置浏览器等待时间(单位为秒)| seconds 表⽰浏览器等待的时间
RobotFramework之关键字
input text | locator, text
向⽂本框输⼊值 | locator 表⽰定位器 | text 表⽰您要输⼊的⽂本内容
RobotFramework之关键字
Click Button | locator
单击按钮时间  | locator表⽰定位器
Click Link | locator
单击A标签  | locator表⽰定位器
Click Element | locator
单击某个标签  | locator表⽰定位器
Element should contain |  expected, message=retry是什么意思
验证元素被定位器包含⽂本预期 | expected 表⽰期望值的locator | Message 表⽰你想要的消息
这个例⼦是说明了⽤户名和密码为空的情况下是否有提⽰‘⽤户不存在’
RobotFramework之关键字
Close All Browsers
关闭所有浏览器
unselect frame
集前帧与当前帧(回到顶部的frame,避免frame不到元素,所以从最顶部的grame开始定位,特别是⼤模块之间的定位)
Select frame | locator
设置feame被定位为当前你要定位的frame | locator表⽰定位器(关键属性为帧id和名称)RobotFramework之关键字
Select From List By Value | locator, *values
从列表中选择值 | locator表⽰定位器 | *values表⽰您要定位的值
Select From List By label | locator, *lable
从列表中选择你要的定位的标签 | locator表⽰定位器 | *lable表⽰您要定位的标签
(lable可以是多个值)
Wait Until Keyword Succeeds | timeout, retry_interval, name, *args
等到指定的关键字成功或给定的超时过期。| timeout 表⽰超时 | retry_interval 表⽰重新操作的间隔时间 | name表⽰要等待的关键字名称 | *args 表⽰所需等待加载的locator
Element Should Be Visible | locator  message=
验证元素是被定位器可见的 | locator表⽰定位器 | message可忽略
RobotFramework之关键字
注:继上⼀步"快速添加"后等待10sec(秒)间隔时间为0sec,然后验证元素是否被定位器可见,这样就能解决浏览器快速切换模块导致页⾯加载不到当前元素的情况了。
Drag And Drop By Offset | source, xoffset, yoffset
⽤于拖拽的按钮 | source 表⽰我的元素 | xoffset表⽰横向偏移量 |  yoffset 表⽰纵向偏移量
Set Selenium Speed | seconds
设置操作脚本等待时间  | seconds 等待时间值,单位秒
RobotFramework之关键字
注:这个Keyword⼀旦操作,后⾯的每个脚本执⾏的步骤都会等待0.3秒。
choose file | locator , filepath
查看⽂件 | 定位器 | 路径
例:Choose File |logo_1 | ${logoFilePath}
Run Keyword And Return Status | name | *args
运⾏关键字,并返回⼀个状态(true、false) | *args⾃定义变量
RobotFramework之关键字
Table Column Should Contain |table_locator, col, expected, loglevel=INFO
列表应该包含,通常⽤来查某个字符 | table_locator 列表定位器 |col表⽰列 | expected预期值 | loglevel表⽰⽇志,级别
Element Should Be Visible | locator, message=
表⽰元素应该可见,⽤来定位元素的,和click有本质的区别,⾸先是要可见的,返回true和false,如果为  false的话就说明是不可⽤的element,⽽click element是⼀个点击的动作 | locator表⽰定位器 | message  表⽰返回的⼀个消息,这个消息可以⽤来覆盖⼀个默认的错误消息,也可为空。
should be true | condition, msg=None
表⽰返回⼀个状态 true和false | condition表⽰⼀个条件,状态, | 消息,⽤来覆盖默认的消息
RobotFramework之关键字

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。