Robot Framework自动化测试框架的介绍
在自动化领域,自动化工具的核心地位毋庸置疑,测试金字塔将自动化测试分为Unit层、Service层和UI层,国内有些同行也会将自动化测试分为基于界面的(GUI-Based)、基于协议的(Protocol-Based)和基于代码的测试(Code-Based)。不管如何区分,目前测试自动化基本都是在下面一些方面开展:
1. UI自动化测试(包括各类B/S、C/S架构的界面测试)
2. 单元测试
3. 性能测试、可靠性测试
4. 数据库测试
5. 接口测试
6. 移动应用自动化测试
7. 其他需要实现测试自动化的测试。
每个层面基本上都有自动化测试工具支撑,笔者大部分接触的都是金字塔尖的界面测试,主要从解决问题的工具和框架入手,给大家介绍一些笔者实际项目接触的工具和框架,主要有Robot Framework框架、Selenium工具、AutoIT工具、SikuliX工具等,当然这些都是开源中的佼佼者,其他的关于操作数据库、接口、移动应用、持续集成等工具后面章节继续介绍,对于一些商用的像惠普的UFT(Unified Function Testing)等商用软件暂不涉及。
对于比较全面的GUI测试工具,大家可以链接一下*“Comparison of GUI testing tools”查看一下,具体链接:
https://en.wikipedia.org/wiki/Comparison_of_GUI_testing_tools
Robot Framework介绍
诺基亚-西门子开发的一款基于python的开源自动化测试框架。
官网介绍:
Robot Framework is a generic open source test automation framework for acceptance testing and acceptance test-driven development (ATDD). It has easy-to-use tabular test data syntax and it utilizes the keyword-driven testing approach. Its testing capabilities can be extended by test libraries implemented either with Python or Java, and users can create new higher-level keywords from existing ones using the same syntax that is used for creating test cases.
(Robot Framework是用于验收测试和验收测试驱动开发(ATDD)的通用开源测试自动化框架。它具有易于使用的表格测试数据语法,并使用关键字驱动的测试方法。它的测试功能可以通过用Python或Java实现的测试库进行扩展,用户可以使用与创建测试用例相同的语法从现有的关键字创建新的更高级别的关键字。)
Robot Framework框架是跨平台的,独立于操作系统和应用程序。核心框架使用Python实现,支持Python 2和Python 3,并且还可以在Jython(JVM), IronPython(.NET)和PyPy上运行。该框架有丰富的测试库生态,由各种通用测试库(包括内置库、扩展库和自定义库)和工具组成,这些库被作为单独的项目开发。
Robot Framework 是一个跨平台的通用的,与应用程序和技术无关的测试框架。它有一个高度模块化的架构:
这个架构很清楚的将测试工作分成了4层:数据层、测试框架、测试库或第三方测试工具、被测系统。基本上Robot Framework起到了一个承上启下的测试管理平台,以测试库和第三方工具驱动测试数据对被测系统开展自动化测试,整个测试过程Robot Framework不与被测系统有任何关联。
为什么使用Robot Framework?(以官方文档作答)
1. 以统一的方式创建易于使用的表格语法来创建测试用例。
2. 提供从现有关键字创建可重用的更高级关键字的功能。
3. 以HTML格式提供易于阅读的结果报告和日志。
4. 平台和应用程序无关联性。
5. 易于扩展,提供了简单的API,用户可以自定义基于Python和Java的测试库。
6. 提供命令行界面和基于XML的输出文件,以便集成到现有的生成基础架构(持续集成系统)中。
7. 提供支持selenium的Web测试,支持Java GUI测试、运行进程、Telnet、SSH等测试工作。
8. 支持创建数据驱动的测试用例。
9. 内置对变量的支持,尤其适用于在不同环境中进行测试。
10. 提供标记来分类和选择要执行的测试用例。
11. 实现与源代码控制的轻松集成:测试套件只是可以使用生产代码版本化的文件和目录。
12. 提供测试用例和测试套件级别的setup和teardown。
13. 模块化体系结构支持创建测试,即使是具有多种不同接口的应用程序。