Robot Framework

Robot Framework是什么?有什么作用?

Robot Framework 是一款用 Python 编写的通用型测试框架,具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端(Web、PC、移动端)或者接口,也可以进行分布式测试执行。常用于验收测试和验收测试驱动开发(ATDD)的自动化测试。虽然框架本身是基于 Python 编写的,但也可以在 Jython(Java) 和 IronPython(.NET) 上运行,提供跨平台支持。

什么是自动化测试框架?

  自动化测试面对的问题:

  1)如何组织我们的自动化测试脚本?都放在一个大目录里面?

  2)一次测试开始了,如何选择测试脚本执行?难道是手动的一条条执行脚本?

  3)每个测试脚本中,各个检查点是否通过,如果在 测试结果里面清晰的反馈

  4)执行结果如何以容易查看的报告得出形式提交给别人查阅?

  自动化测试框架可以解决以上问题

Robot Framework结构图

  测试人员开发测试数据文件(Test Data)对应一个个的测试用例,

  测试数据文件里面使用的功能小模块叫关键字,由测试库(Test Libraries)实现,

  Robot Framework加载测试库,并解释执行Test Data也就是测试用例。

Robot Framework 框架优势和亮点

Robot Framework 框架具备非常多的优势和亮点,包括但不限于:

  • 易于使用,采用表格式语法,统一测试用例格式。
  • 重用性好,可以利用现有关键字来组合新关键字。
  • 支持多种变量类型(如 List、Dictionary 等)。
  • 支持创建基于数据驱动的测试用例。
  • 结果报告和日志采用 HTML 格式,易于阅读,且自动生成。
  • 提供标签以分类和选择将被执行的测试用例。
  • 支持跨平台运行,如 Windows、Linux、Mac OS。
  • 功能全面,支持 Web 测试、Windows GUI 测试、移动端测试、数据库测试等。
  • 易于扩展,提供了简单 API,用户可以自定义基于 Python 或者 Java 的测试库。
  • 易于集成,提供了命令行接口和基于 XML 的输出文件,支持持续集成(CI),如 Jenkins、Maven 等的集成。
  • 易于与版本管理器集成。
  • 可通过 Pabot 或 Selenium Grid 执行并行测试。
  • 良好的生态系统,支持不同操作系统、远程管理、Telnet、字符串、进程、对话、日期等,还支持各种应用及相关的测试工具(如大家熟知的 Selenium、Appium、AutoIt、Watir 等),包括 Web、移动 App、数据库、通信协议等测试,支持面向 UI 和接口的测试。
  • 关键字脚本丰富、可以灵活地自定义新的关键字,并支持循环、条件语句。
  • 强大的数据驱动,支持外部数据文件、变量文件、资源文件。

Robot Framework 框架不足

虽然Robot Framework 框架提供了非常多优秀的特性,但不论哪一款测试框架都无法做到100%完美,

Robot Framework 也存在一些不足或者需要改进的地方,如:

    • 自定义HTML 报告较为麻烦。
    • 框架有自身的一套语法,虽然和Python 略同,但对于新手而言,有一定学习成本的。
    • 不支持即时断点、逐行调试跟踪功能,调试时,无法像 IDEA 这类工具一样方便。

Robot Framework 生态系统

Robot Framework 框架具有非常丰富的生态系统,它不仅具有易于使用的表格测试数据规则,可精细地控制关键字,支持行为驱动,提供远程测试执行接口进行分布式测试。这些功能由各种通用测试库、特定测试插件和工具组成。
Robot Framework 框架除了自身提供了非常多的基础库功能,也支持第三方扩展库,同时提供了非常多的内建工具、扩展接口,方便框架与其他系统进行对接。这些一起构建了一套全面且易扩展的 Robot Framework 框架生态系统。

1.基本库

  • Builtin:提供内置常用的关键字。
  • Dialogs:提供暂停测试执行以获得用户输入的方法。
  • Collections:提供用于处理 Python 列表、字典的关键字。
  • OperatingSystem:在 Robot Framework 系统中执行各种与操作系统相关的任务。
  • Remote:作为 Robot Framework 与其他测试库之间的代理,实际运行的测试库可以在不同机器上。
  • ScreenShot:提供用于捕捉桌面屏幕截图的基本库。
  • String:用于生成、修改、验证字符串的库。
  • Telnet:可以连接到 Telnet 服务器,并在打开的连接上执行命令。
  • XML:用于生成、修改和验证 XML 文件的库。
  • Process:用于在系统中运行过程的库。
  • DataTime:用于日期和时间转换的库。


2.扩展库

  • AndroidLibrary:用于 Android 自动化测试的库,它内部使用的是 Calabash Android。
  • AnywhereLibrary:用于测试单页应用程序(SPA)的库,它内部使用是 Selenium Webdriver 和 Appium。
  • AppiumLibrary:用于 Android 和 iOS 测试的库,它内部使用的是 Appium。
  • ArchiveLibrary:用于处理 zip 和 tar 归档的库。
  • AutoItLibrary:用于 Windows GUI 的测试库,它内部使用 AutoIt 作为驱动程序。
  • DatabaseLibrary:用于数据库测试的库,分为 Java 和 Python 两类库,一般默认是基于 Python 的库。
  • DiffLibrary:用于两个文件差异比较的库。
  • DjangoLibrary:Python Web 框架 Django 的库。
  • FakerLibrary:虚拟测试数据生成器 Faker 的库。
  • FTPLibrary :用于 Robot Framework 测试和 FTP 服务器的库。
  • HttpLibrary.HTTP:用于使用请求进行 HTTP 级别测试的库。
  • iOSLibrary:用于iOS 自动化测试的库,它内部使用的是 Calabash iOS。
  • ImageHorizonLibrary:GUI 自动化测试的、基于图像识别的、跨平台的纯 Python 库。
  • MongoDBLibrary:使用 PyMongo 与 MongoDB 进行交互的库。
  • MQTTLibrary:用于测试 MQTT 代理和应用程序的库。
  • Rammbock:通用网络协议测试库,提供简单的方式来指定网络数据包,并检查发送和接收数据包的结果。
  • SikuliLibrary:提供关键字以通过Sikulix 测试用户界面,该库支持 Python 2.x  和 3.x。
  • Selenium2Library:使用 Selenium 2 的 Web 测试库,用于 Web UI 自动化测试。
  • SSHLibrary:通过 SSH 连接启用在远程计算机上执行的命令,还支持使用 SFTP 传输文件。
  • SwingLibrary:使用 Swing GUI 测试 Java 应用程序的库。


3.内建工具

  • Rebot:基于 XML 输出生成日志和报告、将多个输出组合在一起的工具。
  • Libdoc:用于为测试库和资源文件生成关键字文档的工具。
  • Testdoc:基于 Robot Framework 测试用例生成高层次 HTML 文档的工具。
  • Tidy:清理和转换 Robot Framework 测试数据文件格式的工具。


4.编辑器

  • RIDE:独立的 Robot Framework 测试数据编辑器。
  • Atom Plugin:Atom 编辑器中的 Robot Framework 插件。
  • Eclipse Plugin:Eclipse IDE 的 Robot Framework 插件。
  • Gedit:Gedit 的语法高亮显示。
  • Robot Plugin For Intelli IDEA:IDEA 编辑器的 Robot Framework 插件。
  • Sublime Assistant:Sublime 编辑器的 Robot Framework 插件。


5.其他工具

    • DbBot:用于将 Robot Framework 测试结果(即 output.xml 文件)序列化为 SQLite 数据库的工具。
    • Fixml:用于修复破坏的 Robot Framework 输出文件的工具。
    • Mabot:输出手工测试与 Robot Framework 兼容格式的报告工具。
    • Pabot:Robot Framework 测试用例并行执行器。
    • RFDoc:用于存储和搜索 Robot Framework 测试库和资源文件文档的 Web 系统。
    • Robot Corder:通过录制用户交互扫描 Chrome 浏览器中的 HTML 页面来生成 Robot Framework 测试脚本。相当于应用在 Robot Framework 浏览器自动化测试中的 Selenium IDE。
    • Robot Framework Hub:轻量级 Web 服务器,能通过浏览器对 Robot Framework 测试资产进行访问。
    • Robot Framework Lexer:用于 Pygments 突出显示 Robot Framework 语法。
    • Robot Tool:可以与 Robot Framework 一起使用的支持工具的集合。
    • Status Checker:验证执行 Robot Framework 测试用例时预期的状态和日志消息的工具。

Robot Framework安装

1.安装RF

pip install robotframework

参考官方文档连接地址:http://robotframework.org/

2.RIDE:不推荐使用(适合没有编码能力的人)

注意:RIDE是一个用来编写测试用例的图形化界面,官方已经放弃维护,很多说到RIDE就认为是RF,其实不是这样的,这就好比很多人seleniumIDE 就是selenium

3.Pycharm运行robot文件时需要安装插件

在pycharm插件管理器中搜索robot,选择Intellibot@SeleniumLibrary Patched、Run Robot framework file、Run Robot Framework TestCase三个插件

posted @ 2018-11-14 10:54  酒剑仙*  阅读(392)  评论(0编辑  收藏  举报