快好知 kuaihz订阅观点

 

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表示你用什么浏览器打开这个网页 | 后面的  内容可以为空,所以忽略。

 Set Browser Implicit Wait | seconds

 设置浏览器等待时间(单位为秒)| seconds 表示浏览器等待的时间

 input text | locator, text

 向文本框输入值 | locator 表示定位器 | text 表示您要输入的文本内容

 Click Button | locator

 单击按钮时间  | locator表示定位器

 Click Link | locator

 单击A标签   | locator表示定位器

 Click Element | locator

 单击某个标签   | locator表示定位器

 Element should contain |  expected, message=

 验证元素被定位器包含文本预期 | expected 表示期望值的locator | Message 表示你想要的消息

 这个例子是说明了用户名和密码为空的情况下是否有提示‘用户不存在’

   

   Close All Browsers

关闭所有浏览器

 unselect frame 

 集前帧与当前帧(回到顶部的frame,避免frame找不到元素,所以从最顶部的grame开始定位,特别是大  模块之间的定位)

 Select frame | locator

 设置feame被定位为当前你要定位的frame | locator表示定位器(关键属性为帧id和名称)

 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可忽略

 注:继上一步"快速添加"后等待10sec(秒)间隔时间为0sec,然后验证元素是否被定位器可见,这样就  能解决浏览器快速切换模块导致页面加载找不到当前元素的情况了。

 Drag And Drop By Offset | source, xoffset, yoffset

 用于拖拽的按钮 | source 表示我的元素 | xoffset表示横向偏移量 |  yoffset 表示纵向偏移量

 Set Selenium Speed | seconds

 设置操作脚本等待时间  | seconds 等待时间值,单位秒

 注:这个Keyword一旦操作,后面的每个脚本执行的步骤都会等待0.3秒。

 choose file | locator , filepath

 查看文件 | 定位器 | 路径

 例:Choose File |logo_1 | ${logoFilePath}

 Run Keyword And Return Status | name | *args

 运行关键字,并返回一个状态(true、false) | *args自定义变量

 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  RobotFramework词条  关键字  关键字词条  
综合

 在SAP HANA Expres...

这个练习会使用SAP HANA Express Edition的文本语义分析引擎对JSON格式的documents进行语义分析。首先创建一个column tab...(展开)

综合

 怎么在网上下载视频

很多朋友都有过这样的经历,有时候在网上看到一段精彩的视频,想把它下载搜藏在自己手机里观看,但是不知道怎么弄,有的下载非常麻烦,要安装这个安装那个的。现在我分享给...(展开)