Robot Framework官方教程(一)入门
Robot Framework官方教程(二)测试数据语法
Robot Framework官方教程(三)创建测试用例
Robot Framework官方教程(四)创建测试套件
Robot Framework官方教程(五)使用测试库
Robot Framework官方教程(六)变量
Robot Framework官方教程(七)创建用户关键字
Robot Framework官方教程(八) 资源和变量文件
Robot Framework官方教程(九) 执行测试用例
Robot Framework官方教程(十)扩展RobotFramework框架
1.1简介
Robot Framework是一个基于Python的,可扩展的关键字驱动的测试自动化框架,用于端到端验收测试和验收测试驱动开发(ATDD)。它可用于测试分布式异构应用程序,其中验证需要涉及多种技术和接口。
1.1.1为何选择Robot Framework?
- 启用易于使用的表格语法,以统一的方式创建测试用例。
- 提供从现有关键字创建可重复使用的更高级别关键字的功能。
- 提供易于阅读的结果报告和HTML格式的日志。
- 平台和应用程序是独立的。
- 提供一个简单的库API,用于创建自定义测试库,可以使用Python或Java本机实现。
- 提供命令行界面和基于XML的输出文件, 以便集成到现有构建基础架构(持续集成系统)中。
- 为Selenium提供Web测试,Java GUI测试,运行进程,Telnet,SSH等支持。
- 支持创建数据驱动的测试用例。
- 内置对变量的支持,特别适用于不同环境下的测试。
- 提供标记以分类和选择要执行的测试用例。
- 实现与源代码控制的轻松集成:测试套件只是可以使用生产代码进行版本控制的文件和目录。
- 提供测试用例和测试套件级别的设置和拆卸。
- 模块化架构支持创建测试,即使对于具有多种不同接口的应用程
1.1.2高级架构
Robot Framework是一个通用的,应用程序和技术独立的框架。它具有高度模块化的架构,如下图所示。
Robot Framework架构
该测试数据是简单,易于编辑表格格式。启动Robot Framework时,它会处理测试数据,执行测试用例并生成日志和报告。核心框架对测试中的目标一无所知,与它的交互由测试库处理。库可以直接使用应用程序接口,也可以使用低级测试工具作为驱动程序。
1.1.3截图
测试用例文件
报告和日志
1.2版权和许可
Robot Framework本身,随其分发的测试库和支持工具,以及本用户指南和其他提供的文档具有以下版权声明。
版权所有2008-2012 Nokia Siemens Networks Oyj
根据Apache许可证2.0版(“许可证”)获得许可;
除非符合许可,否则您不得使用此文件。
您可以在以下位置获取许可证副本
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则软件
根据许可证分发的“按现状”分发,
不附带任何明示或暗示的保证或条件。
有关管理权限的特定语言,请参阅许可证
许可证下的限制。
1.3安装和卸载
下文说明包括在不同的操作系统上安装Robot Framework及其前提条件。Robot Framework 2.7中的安装发生了很大变化。最重要的更改将单独列出,可以参考以前的用户指南以获取有关安装早期版本的详细信息。
1.3.1简介
提示
如果你安装了pip,只需运行pip install robotframework。
支持的安装方法
Robot Framework是用Python实现的,也可以在Jython(JVM)和 IronPython(.NET)解释器上运行。在安装框架之前,一个明显的 前提条件是安装所需的解释器。
下面列出了安装Robot Framework的不同方法,并在本章中进行了更全面的解释。所有安装包均可从 http://downloads.robotframework.org获得。
-
您可以通过下载和解压缩源代码或直接从版本控制系统检出源代码来获取源代码。之后,您可以通过运行python setup.py install 命令来安装框架。这种方法适用于所有操作系统和所有解释器。
-
32位和64位Windows系统都有图形安装程序。
-
Python包管理器(如pip和easy_install)使安装变得微不足道。
-
如果您使用的是Windows XP并且没有安装前置条件,则 单击安装程序可以负责安装所有内容。
-
如果使用Jython运行测试就足够了,最简单的方法是下载包含Jython和Robot Framework 的独立robotframework- <version> .jar。
-
如果您有特殊需求而没有其他工作,您可以随时进行自定义手动安装。
不同的入口
启动脚本
Robot Framework具有不同的入口点,用于执行测试用例和 基于早期测试结果的后期处理输出。对于这两种用法,不同的解释器也有不同的启动脚本:
解释器 | 测试执行 | 后期处理 |
---|---|---|
Python | pybot | rebot |
Jython的 | jybot | jyrebot |
IronPython的 | ipybot | ipyrebot |
在类似UNIX的操作系统(如Linux和OSX)上,启动脚本是使用Python实现的,而在Windows上它们是批处理文件。无论操作系统如何,使用任何这些脚本都需要在PATH中有适当的解释器。
注意
在Robot Framework 2.7之前,启动脚本在Windows之外被实现为shell脚本。
直接运行测试和后期处理输出
除了上面的启动脚本之外,还可以通过使用选定的解释器直接执行框架的入口点,来运行测试和后期 处理输出。可以使用Python的-m选项将它们作为模块执行,如果您知道框架的安装位置,则可以将它们作为脚本运行。使用Python解释器,在下表中列出了入口点,下面的示例说明了将它们与其他解释器一起使用。
直接入口点
入口点 | 作为模块运行 | 以脚本运行 |
---|---|---|
测试执行 | python -m robot.run | python path/robot/run.py |
后期处理 | python -m robot.rebot | python path/robot/rebot.py |
#通过Python执行`robot.run`模块运行测试。
python -m robot.run
#通过Jython运行`robot/run.py`脚本运行测试。
jython path/to/robot/run.py
#通过IronPython执行`robot.rebot`模块,使用创建报告/日志。
ipy -m robot.rebot
#通过Python运行`robot/rebot.py`脚本用创建报表/日志。
python path/to/robot/rebot.py
注意
Robot Framework 2.7中已弃用旧的robot.runner入口点,而应使用robot.run。
内置工具
从Robot Framework 2.7开始,libdoc,testdoc和tidy工具与核心框架捆绑在一起,并有自己的入口点。它们也可以使用-m选项作为模块执行,也可以直接作为脚本执行。下表列出了使用Python的入口点,但它们可以与任何支持的解释器一起使用。
工具 | 作为模块运行 | 以脚本运行 |
---|---|---|
libdoc | python -m robot.libdoc | python path/robot/libdoc.py |
testdoc | python -m robot.testdoc | python path/robot/testdoc.py |
tidy | python -m robot.tidy | python path/robot/tidy.py |
验证安装
成功安装后,您应该能够使用--version选项执行创建的启动脚本,并获得Robot Framework和解释器版本。
$ pybot --version
Robot Framework 2.7 ( linux2上的Python 2.6.6 )
$ jybot --version
Robot Framework 2.7 ( java1.6.0_21上的Jython 2.5.2 )
与Robot Framework 2.6及更早版本相比的变化
Robot Framework安装在2.6和2.7版本之间发生了很大变化,下面列出了最重要的更改。如果您需要有关安装旧版本的更多信息,请参阅以前的用户指南。
- 终于支持使用pip进行安装。
- 官方支持使用IronPython进行安装。因此,您将获得新的ipybot和ipyrebot 启动脚本。
- 除了jybot之外,使用Jython进行安装还会创建新的jyrebot runner脚本。使用Jython不再创建rebot脚本。
- 使用Python从源代码安装不再创建jybot脚本。您需要使用Jython安装框架来创建它。
- 所有启动脚本都需要PATH中有适当的解释器才能使用。
- 在Windows之外,启动脚本是用Python实现的。
- 不推荐使用robot/runner.py 入口点,推荐 robot/run.py,并且程序执行API也已更改。
- 源代码分发仅包含实际的源代码和工具。您需要单独下载“用户指南”和“快速入门指南”,或在线查看。
1.3.2前提条件
Robot,Python,Jython(JVM)和IronPython(.NET)支持Robot Framework ,也应该在PyPy上运行。应在安装Robot Framework之前安装要使用的解释器。
使用哪种解释器取决于所需的测试库和测试环境。一些库使用仅适用于Python的工具或模块,而其他库可能使用需要Jython或需要.NET的Java工具, 因此也使用IronPython。还有许多工具和库可以与所有解释器一起运行。
如果您没有特殊需求或只想尝试框架,建议使用Python。它是最成熟的实现,比Jython或IronPython快得多(特别是启动时间更快),并且在大多数类UNIX操作系统上也很容易获得。
Python安装
在大多数类UNIX系统(如Linux和OSX)上,默认情况下安装了Python。如果您使用的是Windows或者需要自己安装Python,那么最好的起步教程是http://python.org。在那里,您可以下载合适的安装程序,并获得有关安装过程和Python的更多信息。
从Robot Framework 2.5开始,Python 2.5是受支持的最低Python版本。早期版本也支持Python 2.3和2.4。Robot Framework目前与Python 3.x版本不兼容。
注意
使用pybot runner脚本在Python上运行Robot Framework 需要python在命令提示符下可执行。这意味着您需要确保它在PATH中。
注意
在Windows上,特别是在Windows Vista和Windows 7上,建议将Python安装到所有用户,并以管理员身份运行安装。
注意
不应在Windows计算机上设置环境变量PYTHONCASEOK。Robot Framework无法正常使用它。
设置路径
PATH环境变量列出一个系统中执行的命令的搜索位置。要在命令提示符下更轻松地使用Robot Framework,建议将启动脚本安装的位置添加到PATH中。运行器脚本本身要求匹配的解释器位于PATH中,因此必须在那里添加安装位置。
在类UNIX机器上使用Python时,Python本身和安装的脚本都应该自动在PATH中,不需要额外的操作。在Windows和其他解释器上,必须单独配置PATH。
要添加的目录
您需要添加到PATH的目录取决于解释器和操作系统。第一个位置是解释器的安装目录(例如c:\Python27),另一个位置是使用该解释器安装脚本的位置。Python和IronPython都将脚本安装到Windows上安装目录下的Scripts目录(例如c:\Python27\Scripts),但Jython使用bin目录(例如c:\ jython2.5.2\bin)。
注意
在Windows上,强烈建议在安装Robot Framework 之前至少将Python安装目录添加到PATH中 。
注意
脚本和bin目录可能不会作为解释程序安装的一部分创建,在安装Robot Framework或某些其他第三方模块时才会创建。
在Windows上设置PATH
在Windows上,您可以按照以下步骤配置PATH。请注意,不同Windows版本上的确切设置名称可能不同,但基本方法仍应相同。
- 打开
开始>设置>控制面板>系统>高级>环境变量
。有用户变量
和系统变量
,它们之间的区别在于用户变量只影响当前用户,而系统变量影响所有用户。- 要编辑现有PATH,请在值的末尾选择
Edit
并添加 ; <InstallationDir>; <ScriptsDir>(例如; c:\ Python27; C:\Python27\Scripts)。请注意,分号(;)在分隔不同条目时很重要。要添加新值,请选择“新建”
并同时设置名称和值,这次没有前导分号。- 单击
确定
退出对话框以保存更改。- 启动新的命令提示符以使更改生效。
在类UNIX系统上设置PATH
在类UNIX系统上,您通常需要编辑某个系统范围或用户特定的配置文件。要编辑哪个文件以及如何依赖于系统,您需要查阅操作系统文档以获取更多详细信息。
1.3.3安装Robot Framework
从源代码安装
此安装方法可以在任何支持的解释器的任何操作系统上使用。从源代码安装可能听起来有点可怕,但该过程实际上非常简单。
获取源代码
通常,您可以通过下载获得源代码源代码分发包 在名为.tar.gz从格式下载页面。您需要在某处提取包,因此,您将获得名为robotframework- <version>的目录 。该目录包含源代码,安装它所需的脚本以及tools目录下的 一些支持工具。
注意
从Robot Framework 2.7开始,源代码分发不包含文档或模板。必须单独下载或在线查看。
获取源代码的另一种方法是直接从项目的版本控制系统中检出它。默认情况下,您将获得最新代码,但您可以轻松切换到不同的已发布版本或其他标签。
安装
使用Python的标准setup.py 脚本从源代码安装Robot Framework 。该脚本位于包含源的目录中,您可以使用任何支持的解释器从命令行运行它:
# Installing with Python. Creates `pybot` and `rebot` scripts.
python setup.py install
# Installing with Jython. Creates `jybot` and `jyrebot` scripts.
jython setup.py install
# Installing with IronPython. Creates `ipybot` and `ipyrebot` scripts.
ipy setup.py install
注意
从Robot Framework 2.7开始,使用Python进行安装不再创建jybot runner脚本。要创建它,您需要使用Jython单独安装。
不同的安装脚本
标准的setup.py脚本接受多个参数,例如,允许安装到不需要管理权限的非默认位置。它还用于创建不同的分发包。运行python setup.py --help以获取更多详细信息。
Robot Framework还有一个自定义install.py脚本,它支持安装和卸载。不带参数运行它以获取更多详细信息
使用Windows安装程序
32位和64位Windows系统有单独的图形安装程序。前一个安装程序的名称格式为 robotframework- <version> .win32.exe,后一个 robotframework- <version> .win-amd64.exe,两者都可以在 下载页面上找到。运行安装程序需要双击它并按照简单的说明操作。
Windows安装程序始终在Python上运行并创建标准的pybot 和rebot runner脚本。与其他提供的安装程序不同,这些安装程序还会自动创建jybot和ipybot 脚本。为了能够使用创建的runner脚本,包含它们的 Scripts目录和相应的解释器都需要在PATH中。
注意
强烈建议在运行Robot Framework安装程序之前将Python安装目录设置为 PATH 。
注意
如果你安装了Python或其他解释安装的多个版本,执行脚本将始终使用PATH第一个。为避免这种情况,您始终可以使用直接入口点和选择的解释器,如 c:\Python25\python.exe -m robot.run。
注意
在Windows Vista和Windows 7上安装Robot Framework通常需要管理员权限。 启动安装程序时,从上下文菜单中选择
以管理员身份运行
。
Python包管理器
Python现在有各种优秀的包管理器可用于安装和管理Python包。最着名的是 easy_install及其pip。我们强烈推荐pip,因为它更积极地开发并具有很好的功能,例如支持卸载。
不同的包管理器有不同的用法,但是使用pip 和easy_install,基本用法类似:
# Install the latest version
pip install robotframework
easy_install robotframework
# Upgrade to the latest version
pip install --upgrade robotframework
easy_install --upgrade robotframework
# Install a specific version
pip install robotframework==2.7.1
easy_install robotframework==2.7.1
# Uninstall -- only supported by pip
pip uninstall robotframework
提示
如果需要使用代理来访问Internet,则可以使用pip和 easy_install来使用 http_proxy环境变量。除此之外,pip还支持--proxy命令行选项。
注意
pip和easy_install都有一个“功能”,除非给定特定版本,他们可能安装最新版本,即使是α或β版本。例如,如果2.7.2是最新的稳定版本并且还有2.8 beta版本可用,则运行pip install robotframework将安装后者。解决方法是在pip install robotframework == 2.7.2中明确提供版本 。
注意
只有Robot Framework 2.7和2.7以上的版本支持pip。
使用单击安装程序
One Click Installer可以安装Robot Framework及其前提条件 Python和Jython(可选)。它还会自动将Robot Framework运行程序 脚本以及Python和Jython可执行文件放入PATH。
单击安装程序要求您已单独下载所有必需的组件安装程序,并将它们与它们放在同一目录中。有关支持的安装程序的更多详细说明和详细信息,请访问One Click Installer Wiki页面。
注意
One Click Installer仅适用于Windows XP(32位)。
独立JAR分发
Robot Framework也作为独立的Java归档文件分发,它包含Jython和Robot Framework,只需要Java 5或更新版本作为依赖项。这是一种简单的方法,可以将所有内容放在一个不需要安装的软件包中,但是它有一个缺点,它不适用于Python。
该软件包名为robotframework- <version> .jar,可在下载页面上获得,也可以作为Maven依赖项使用。下载软件包后,您可以使用它执行测试:
java -jar robotframework-2.7.jar mytests.txt
java -jar robotframework-2.7.jar --variable name:value mytests.txt
如果要进行后处理输出或使用内置工具,则需要将命令名称(例如rebot或libdoc)作为JAR文件的第一个参数:
java -jar robotframework-2.7.jar rebot output.xml
java -jar robotframework-2.7.jar libdoc MyLibrary list
有关不同命令的更多信息,请执行不带参数的JAR文件。
安装文件的位置
使用自动安装程序时,Robot Framework代码将复制到包含外部Python模块的目录中。在预安装Python的类UNIX操作系统上,此目录的位置会有所不同。如果您自己安装了解释器,则通常 是解释器安装目录下的Lib/site-packages,例如c:\Python27\Lib\site-packages。使用easy_install时,实际的Robot Framework代码位于名为robot的目录中,或者 在目录robotframework-<version>.py <version> .egg/robot中。
创建Robot Framework启动脚本并将其复制到另一个特定于平台的位置。在类UNIX系统上使用Python时,它们通常会转到/usr/ bin。在Windows和其他解释器上,脚本通常位于解释器安装目录下的Scritps或bin目录中。
1.3.4卸载和升级
卸载
如何卸载Robot Framework取决于原始安装方法。请注意,如果您已设置PATH或已配置环境,则需要单独撤消这些更改。
使用源分发
源代码分发包含一个自定义install.py脚本,该脚本也支持卸载:
python install.py uninstall
使用Windows安装程序后卸载
如果 已使用Windows安装程序,则可以使用“ 控制面板”>“添加/删除程序”
完成卸载。Robot Framework列在Python应用程序中。
用pip
正如所讨论的前面,PIP包管理器还支持卸载:
pip uninstall robotframework
pip的一个特别好的功能是,即使使用其他方法完成安装,它也可以卸载软件包。
手动卸载
始终可以手动卸载框架。这需要从安装它们的位置 删除 机器人模块以及创建的运行程序脚本。
升级
升级或降级Robot Framework时,在两个次要版本(例如2.7到2.7.1)之间切换时,可以安全地在现有版本上安装新版本。这通常也适用于升级到新的主要版本(例如从2.6.3到2.7),但卸载旧版本总是更安全。
pip包管理器的一个非常好的功能是它在升级时自动卸载旧版本。更改为特定版本或升级到最新版本时都会发生这种情况:
pip install robotframework==2.7.1
pip install --upgrade robotframework
源代码分发中包含的自定义install.py脚本 还支持重新安装,以便首先自动删除旧安装:
python install.py reinstall
无论版本和安装方法如何,您都不需要重新安装前置条件或再次设置PATH环境变量。
1.4示例
Robot Framework快速入门指南也可作为独立演示。它是源代码分发的一部分(在doc/quickstart/目录下),也可以从项目网页单独下载。
此外,外部SeleniumLibrary和SwingLibrary都可以轻松执行可执行的演示。前者包含一个简单的独立HTTP服务器和一个用作被测系统的应用程序,后者有一个小型Swing应用程序。还提供了用于在不同系统上运行演示的实际测试用例文件和脚本。