Robot Framework

初识RF

    官网介绍:Robot Framework是用于验收测试和验收测试驱动开发(ATDD)的通用测试自动化框架。它具有易于使用的表格测试数据语法,并使用关键字驱动的测试方法。它的测试功能可以通过使用Python或Java实现的测试库进行扩展,用户可以使用与创建测试用例相同的语法,从现有的关键字创建新的更高级别的关键字。

     简单来说,RF是Python开发编写的一款开源的自动化测试框架,利用这个框架,我们可以在一些测试任务量大、较繁琐;手工测试容易漏测的回归测试,或者主流程的测试来使用,提高测试的工作效率。它有着非常简单易用的语法,因为是关键字驱动,你不用写一句代码,更不用去记任何一种语言的语法。只需要了解最基本的编程逻辑即可,当然,有开发基础去学习使用无疑拥有更好的优势,网上的资料不是很多,尤其是用它架构一个项目有些困难,所以往往满足一个项目的测试需求,需要使用java&python去扩展自定义一些测试库以及基于一些已有的关键词自定义一些高级关键词(higher-level keywords),这也是它的一大特点,拥有无限的扩展

Robot Framework项目托管在GitHub上,您可以在其中找到更多文档,源代码和问题跟踪器。下载托管在PyPI。Robot Framework本身是在Apache License 2.0下发布的开源软件,生态系统中的大多数库和工具也是开源的。该框架最初是在诺基亚网络公司开发的,现在由Robot Framework Foundation赞助。



RF框架结构简单认识

正如官网所说,RF是一个可扩展的模块化结构框架,如下图所示:


从上图可以看出,该测试框架分成4个层次。最上层Test Data即我们提供的测试数据(即测试用例、初始化数据以及一些配置信息等),简单的来说,这些测试数据会通过中间的RF层调用测试库(包括官方、第三方以及自定义)来对底层的被测系统进行测试的执行。即,RF框架会解析上层的测试数据,利用Test Libraries中提供的关键词驱动Test case的执行,达到对系统的测试目的。

RF可以实现什么

1、结合Selenium+WebDriver来实现web自动化

2、结合appium来实现app的自动化

3、URL/request包实现接口自动化

4、还能实现C/S架构的系统自动化

RF的一些特性

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.提供了远程测试执行接口,可以进行分布式测试执行。

RF的安装

参考安装资料

RF的一些常用的库

OperatingSystem:允许执行各种操作系统相关的任务。允许执行各种操作系统相关的任务,使各种操作系统相关的任务在robotframework正在运行的系统中执行。

Database Library (Python):基于Python数据库测试库。支持任何Python解释器,包括Jython

seleniumlibrary:Web测试库,内部使用比较流行的selenium工具。利用早期的selenium1.0和本身已经过时

selenium2library:使用selenium2的Web测试库。替换了大部分老的seleniumlibrary

Archive library:处理.zip和.tar压缩包的库。

Android library:所有android自动化需要的测试库,内部使用的是Calabash Android

iOS library:所有iOS自动化需要的测试库,内部使用Calabash iOS服务

appiumlibrary:Android和iOS测试库,内部使用的是appium
更多库请参考资料

你可能感兴趣的:(Robot Framework)