Robot Framework(一):简介

从今天开始计划写个Robot Framework系列,具体内容的话看实际的情况可能不会太多,中间也可能会穿插一些其它的内容,但是聊胜于无,每天能进步一点点就行。

概述

robot framework是基于python开发的一套开源的基于关键字驱动的自动化测试框架,可以实现app,web,接口等内容的测试,提供了丰富的关键字和日志功能。虽然是基于python开发的,但是robot framework有一套自己的代码编写规则;用户如果想自己定义关键字的话也是支持的,可以使用python也可以是使用java;而且robot framework还能可jenkins结合。官网:https://robotframework.org/

结构

Robot Framework(一):简介

 

以上是官方给出的结构图,大致过程如下:测试套件及测试用例集(Test Data是用户编写的脚本)通过RF特定的语法解析,然后知道用户要做什么事,通过RF的API接口调用内置关键字和第三方库(也可以称库关键字),通过Test Libraries再去操作被测系统,收集结果并断言是否符合预期,输出测试报告,这样描述应该比较通俗易懂了,这个框架的可扩展性就在于Test Libraries的开发,只要按照RF框架特定的语法要求完成自定义库的个性开发,就可以完成扩展,用户需要关心和维护就只有Test Data和Test Libraries。

目录、测试套件、测试用例

Robot Framework(一):简介

目录可以有多级,类似于Python中的包,这样便于分类管理;测试套件就是以.robot或者.txt结尾的文件,放在目录中;测试用例是测试套件文件中以Test Cases标识的内容,比如:F:\rf_demos\dic\test.robot,test.robot文件的内容如下:

Robot Framework(一):简介

 

那么rf_demos是工程的名称,是一个目录,下面还有一个目录名为dic,dic下面的test.robot就是测试套件,test.robot中example就是测试用例的名称。在工具中对应的顺序就是:New Project -> New Directory -> New Suite -> New Test Case

除此之外,还有特殊的文件Resource,该文件一般是robot或者txt格式的文件,用于编写用户自定义关键字,使用时需要在测试套件里面导入。

库简介

robot framework支持标准库,扩展库和用户自定义的库

标准库 Robot Framework可以直接导入使用的库,包括:

 • Builtin:包含经常需要的关键字。自动导入无需import,因此总是可用的

 • Dialogs:提供了暂停测试执行和从用户的输入方式。

 • Collections:提供一组关键词处理Python列表和字典。

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

 • Remote:远程库接口的一部分。没有自己的任何关键字,作为robotframework和测试库之间的代理的特殊库。实际测试库可以在不同的机器上运行,可以使用任何编程语言支持XML-RPC协议的实现。

 • Screenshot:提供关键字来捕获和存储桌面的截图。

 • String:用于处理字符串并验证它们的内容的库,用于生成、修改和验证字符串

 • Telnet:支持连接到Telnet服务器上打开的连接执行命令。

 • XML:用于生成、修改和验证XML文件的库。

 • Process:系统中运行过程的库。

 • DateTime:日期和时间转换的库,支持创建和验证日期和时间值以及它们之间的计算

扩展库 Robot Framework需要下载安装后才能使用的库,包括:

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

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

• appiumlibrary:Android和iOS测试库,内部使用的是appium

• HTTP library (livetest):内部使用LiveTest工具的HTTP测试的库。

• HTTP library (Requests):内部使用request工具的HTTP测试的库。

• MongoDB library:使用pymongo和MongoDB交互的库。(MongoDB是一个基于分布式文件存储的数据库)

• Database Library (Java):基于Java的数据库测试库。也可使用Jython和Maven central.

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

• watir-robot:使用Watir的工具的Web测试库。

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

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

• selenium2library java:selenium2library的java接口

• Django Library:为Django的库,一个Python Web框架。

• sudslibrary:一种基于泡沫基于SOAP的Web服务的功能测试库,动态的SOAP 1.1的客户端。

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

• Diff Library:比较两个文件的库。

• FTP library:Robot Framework上测试和使用FTP服务的库。

• SSHLibrary:通过SSH连接的在远程机器上执行命令。还支持使用SFTP进行文件传输

• rammbock:通用的网络协议测试库;提供简单的方法来指定网络数据包,并检查发送和接收数据包的结果。

• imagehorizonlibrary:跨平台、基于图像识别的GUI自动化纯Python库。

• autoitlibrary:Windows的GUI测试库,使用AutoIt的免费工具作为驱动。

• Eclipse Library:使用SWT窗口小部件测试Eclipse RCP应用程序的库。

• robotframework-faker:一个服务faker的库,faker的测试数据生成器。

• swinglibrary:用Swing GUI测试java应用程序库

• remoteswinglibrary:使用swinglibrary库测试和连接一个java进程,尤其是java web start的应用。(Java Web Start 是基于 Java 技术的应用程序的一种部署解决方案,它是连接计算机和 Internet 的便捷通道,允许用户在完全脱离 Web 的情况下运行和管理应用程序)