小猪窝969 / robot framewo... / RobotFramework之关键字

0 0

   

RobotFramework之关键字

2015-05-18  小猪窝969
自动化测试是测试领域不可缺少的一部分,至少我是这么认为,以前也多多少少接触过一些自动化相关知识,不过都没有实际操作和练习过,最近一个月接触到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=
 验证元素被定位器包含文本预期 | 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 Speedseconds
 设置操作脚本等待时间  | 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 truecondition, msg=None
 表示返回一个状态 true和false | condition表示一个条件,状态, | 消息,用来覆盖默认的消息
RobotFramework之关键字


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。如发现有害或侵权内容,请点击这里 或 拨打24小时举报电话:4000070609 与我们联系。

    猜你喜欢

    0条评论

    发表

    请遵守用户 评论公约

    类似文章
    喜欢该文的人也喜欢 更多