1、简介
Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。
Robot Framework是开源软件,由Nokia Siemens Networks开发并提供支持。
2、特性
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官网找到最新的下载链接。
== RobotFramework的一些特性==
•易于使用,采用表格式语法,统一测试用例格式;
•重用性好,可以利用现有关键字来组合新关键字;
•支持变量;
•支持创建基于数据驱动的测试用例。
•结果报告和日志采用HTML格式,易于阅读;
•提供标签以分类和选择将被执行的测试用例;
•平台、应用无关;
•功能全面,支持WEB测试(Selenium)、Java GUI 测试,启动线程、终端、SSH等;
•易于扩展,提供了简单API,用户可以自定义的基于Python或者Java的测试库;
•易于集成,提供了命令行接口和基于XML的输出文件;
•易于与版本管理集成;
==RobotFramework的架构方案==
==RobotFramework的中文支持==
由于初始并不支持中文,于是在生成测试报告的时候对于中文的关键字无法识别,使用下面的方法可以正常显示中文。
•在[PythonDir]Libsite-packagesrobotutils下的encoding.py文件中,找到def _get_output_encoding(): 原来的编码是’cp437’ 将其改成’ cp936’(简体中文,gbk) 。
==目前robotFramework支持的测试库==
下面这些是可以在robotFramework上支持的测试库,但是要独立安装程序。在安装之后,使用的时候要单独加载测试库。
-
SeleniumLibrary - A web testing library that uses popularSelenium tool internally.
-
watir-robot - A web testing library that uses popularWatir tool via theremote library interface.
-
WatinLibrary - A web testing library that usesWatin tool (a .NET port of Watir) via theremote library interface.
-
SwingLibrary - A Swing GUI testing library.
-
EclipseLibrary - A library for testing Eclipse RCP applications using SWT widgets.
-
AutoItLibrary - Windows GUI testing library that usesAutoIt freeware tool as a driver.
-
DatabaseLibrary (Java) - A test library that provides common functionality for testing database contents. Implemented using Java so works only with Jython.
-
DatabaseLibrary (Python) - Another library for database testing. Implemented with Python and works also on Jython.
-
SSHLibrary - A test library that enables SSH and SFTP.
-
How-To: Sikuli and Robot Framework Integration - This is not really a library but these instructions explain how to integrateSikuli tool with Robot Framework
==有关RobotFramework的知识库网站==
http://code.google.com/p/robotframework/
http://code.google.com/p/robotframework/wiki/UserGuide
http://code.google.com/p/robotframework-seleniumlibrary/
http://robotframework-seleniumlibrary.googlecode.com/hg/doc/SeleniumLibrary.html?r=2.8
http://code.google.com/p/robotframework/wiki/BuiltInLibrary