ROBOT FRAMEWORK 是一个通用的,应用和技术相互独立的框架。请参照以下高度模块化的体系结构图,如图 1 所示。
点击查看大图
测试数据是简单,易于编辑的表格格式。当 Robot Framework 启动后,会处理测试数据,执行测试用例,产生测试报告和日志。但是核心框架并不清楚测试目标是什么,起作用的是测试库。测试库直接调用应用接口或者使用底层测试工具来驱动。
请参考Robot Framework 的安装配置和简单的实例介绍这篇文章的安装和配置章节
在我们讲解实例之前,先让我们熟悉 Robot Framework 基础知识。
Robot Framework 支持多种格式,如 HTML、TSV、纯文本等。它们长相大同小异,用处各有所长。但是描述的都是同样的内容。方便起见,推荐使用 RIDE 编辑器来编写测试用例。这些文本在 RIDE 环境下打开是一样的。
点击查看大图
Robot Framework 安装成功后,执行命令[PythonDir]\Scripts\ride.py,就可以打开 RIDE 编辑器。如图 2 所示,打开之后就可以进行创建测试项目、测试用例等操作。在后面的实例介绍中有具体的实例讲解。
一个文件被称作一个测试套件(Test Suite), 其可以包含多个测试用例。测试套件也能嵌套,比如同一个目录下的多个测试套件组成一个更高级的测试套件,嵌套的层次无限多。创建的过程依次是: 创建项目--->创建测试套件--->创建测试用例。
一个测试套件包含四段内容:Setting, Variable, Test case, Keyword
具备了上述知识,让我们来看一个从软件的下载、上传到安装,最后再以如何利用 Windows 定时任务来定时实现其过程的自动化的实例。
这里要用到两个测试库: OperatingSystem 和 FTP Library。
OperatingSystem 测试库主要提供和操作系统相关操作的功能,此例主要是把下载的产品安装包保存到一个创建好的文件夹下。它属于 Robot Framework 标准库的一部分,如果您已经安装了 Robot Framework,那么就不需要再另外安装此库了。
FTP Library 主要提供 FTP client 功能。在此主要是下载产品安装包。FTP Library 不属于标准库,所以需要额外安装。建议用 pip 来安装,如果您已经安装了最新版本的 Python,那么 pip 已经安装好了。通过以下命令安装:
pip install robotframework-ftplibrary
选择菜单栏 File —>New Project,输入项目名称,Type选择目录(Directory)。
点击查看大图
右键点击刚创建的测试项目,选择 New Suit,输入 Name , 选择 File Type。
点击查看大图
右键点击刚创建的测试套件,选择 New Test Case,输入名称。
点击查看大图
Robot Framework 用资源文件来共享关键字和变量,其结构和测试用例非常相似。
点击查看大图
点击查看大图
资源文件结构由 Setting、Variable、Keywords 部分组成。作用和测试套件的内部结构章节介绍的一样。
点击查看大图
正如前面提到过的,下载软件主要用到两个测试库:OperatingSystem Library 和 FTP Library 首先我们就需要在资源文件中导入它们:
如上图图 8:
然后利用这两个库的关键字,建立更高级的用户关键字。
点击查看大图
点击查看大图
点击查看大图
至于像 buildlevel, serverpath, dailybuildlevel, tmp, Server, buildlevel 这些变量,则需要在资源文件的 Variable 部分定义。详情请参照图 8。
下面我们来详细解释下图 11 的内容:
整个执行的过程即:
可以通过勾选测试用例名称来执行:
点击查看大图
点击查看大图
详细的执行过程可以通过图 13 列出的执行结果:Log 和 Report 等来查看。
大致过程与软件类似。详细的过程如下:
点击查看大图
所不同的是,用到了 SSHLibrary, 此库提供 SSH 和 SFTP 的相关操作。它并不是标准库的一部分, 需要安装, 指令如下:
pip install robotframework-sshlibrary
在资源文件中需要导入这个库,如图 15。
点击查看大图
Test Template: Upload Server File 也需要在 resource.txt 中定义
在上传文件前需要建立 SSH 连接。于是我们在共享的资源文件 resource.txt 中创建了 Open SSH Connect And Log In 关键字。
点击查看大图
定义了三个参数:HOST, USERNAME, PASSWORD,它们分别被以下 SSHLibrary 关键字使用:
至此,连接建立起来了。下面需要执行上传及安装的过程了:
点击查看大图
SSHLibrary 测试库的 Put File 关键字用来上传文件到远程机器。
在共享的资源文件 resource.txt 中创建 Install Server Build 用户关键字。如图 18:
点击查看大图
点击查看大图
从图 19 可见,我们主要用到了:Write 和 Read Until 关键字。之所以选择它们是因为我们的软件是在启动 install.sh 后和 shell 交互的状态下执行的。而 Execute Command 和 Start Command 是在远程机器上建立一个新的 shell 执行,这就意味着环境的改变(如工作目录的切换,设置环境变量)在后续的关键字都不可见。
测试用例按照在测试套件中的顺序来执行。较高级别测试套件中的测试套件(前面我们提到过,测试套件是可以嵌套的)按照文件或目录名的字母顺序(不区分大小写)。命令行则是遵循提供的顺序。
万事俱备,只欠东风。
接下来让我们看看如何利用 Windows 定时任务把整个过程自动化起来。首先我们需要知道,Robot Framework 如何在命令行执行测试用例。这个在创建 Windows 定时任务时会用到。Robot Framework 有多种命令行执行方式,详情请参阅附录 Robot Framework 用户指南。在此我们采用:
robot path/to/<mytest_directory>
下面介绍如何创建此实例自动化的 Windows 定时任务。
点击查看大图
点击查看大图
在此(图 22)我们定义每天的 14:19:40 执行整任务, 当然您可以根据自己的需要来定义这些。
点击查看大图
点击查看大图
下面(图 24)要填的信息就用到上面提到的命令行执行方式。
点击查看大图
点击下一步完成即可。
执行此任务,让我们看一下执行报告:(执行报告在 Python 安装路径下 Scripts 目录下)
点击查看大图
通过这个报告,可以看到各个测试套件及测试用例执行结果等信息,还可以点击右上角的"Log"按钮查看详细的日志。
至此,我们详细介绍了如何使用 Robot Framework 实现软件下载、上传、安装以及如何使用 Windows 定时任务定时执行它。
Robot Framework 基于关键字驱动,将数据和关键字结合来描述如何使用数据执行测试。这种方式具备数据驱动的优势,同时非编程人员也可以建立新类型测试。所有测试由同一个框架执行,无需不同的驱动脚本。Robot Framework 提供了多种测试库,而且易于扩展,相信它会是我们在自动化方面的好助手!
学习
讨论
来源: http://www.ibm.com/developerworks/cn/analytics/library/ba-cn-bigdata-survival-analysis/index.html