前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RobotFramework工具试用

RobotFramework工具试用

原创
作者头像
用户6859632
修改2020-01-06 11:09:35
2.6K0
修改2020-01-06 11:09:35
举报

1、Robot Framework简介

Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。使用Apache License 2.0,由Robot Framework Foundation开发和赞助。Robot Framework被广泛地使用在端到端的验收测试中,生态体系非常丰富,更详细的信息可以参看http://robotframework.org

RIDE是一款专门用来编辑Robot Framework用例的软件,用Python编写并且开源,给RF提供可视化的编写页面,降低RF的写作和维护的成本。

RobotFramework 架构是一个通用的、应用和技术的独立框架。它有一个高度模块化的架构,如下图所示:

2、Robot Framework 部署

在使用 RF(Rebot framework)的时候需要 Python 或 Jython 环境,具体可根据自己的需求来确定。现在以在有 Python 的环境的机器上安装和使用 RF 为例。

在配置过程中需要安装如下包:python 2.7、wxPython、robot framework、robot framework ride、robot framework selenium library等。

2.1安装 Python 2.7

RF 框架是基于 Python 语言的,所以一定要有 Python 环境。可以通过下面的下载页面下载对应的 Python 版本。

下载页面:https://www.python.org/downloads/

下载完成后,选择默认项进行安装。

安装完后,需要设置环境变量(如果安装过程中选择了设置,忽略此步):计算机—属性—高级系统设置—环境变量—系统变量—Path,写入 C:\Python27 和 C:\Python27\Scripts(更改为您指定路径即可)。

同时我们也可以通过 DOS 环境来验证安装的 Python 信息

2.2安装 WxPython

wxPython 是 Python 非常有名的一个 GUI 库,因为 RIDE 是基于这个库开发的,所以这个必须安装,而且需要和python版本配套,否则后续使用会有问题。

下载页面: http://wxpython.org/download.php#stable

在选择版本下载的时候要注意选择与 Python 版本对应的版本,并且选择 unicode 版本,比如版本:wxPython2.8-win32-unicode-py26.exe,否则安装完成后不能支持中文。

下载完成后,选择默认项进行安装即可。

2.3安装 PyCrypto

下载页面:http://www.voidspace.org.uk/python/modules.shtml#pycrypto

选择对应的 pycrypto installer 版本,进行默认安装。需要在安装库(如 SHHLibrary)之前进行安装,否则会出现 错误“Can't find vcvarsal.bat”。

2.4安装 Robot Framwork

下载页面: https://pypi.python.org/pypi/robotframework

进入 Python 的安装路径,执行命令“pip install robotframework”或者通过下载页面下载源码。

解压后,执行命令“python setup.py install”进行安装。进入 Python 的安装路径,执行命令“pip install robotframework”。

注意:如果由于没有下载权限导致按照时间,可以通过增加代理去安装“ pip install --proxy http://域账号:密码@proxy.huawei.com:8080”。

2.5安装 robotframework-ride

RIDE 是 Robot Framework 测试数据的编辑器。它使测试用例的创建、运行、测试项目的组织可以在图形界面下完成

安装方式和RF类似,进入 Python 的安装路径,执行命令“pip install robotframework-ride”。

如果安装完成,在桌面上没有对应的RIDE图标,则需要手工创建一个bat文件,输入命令:“python -c "from robotide import main; main()"”

2.6 安装 Library库

如 selenium2library ,archivelibrary,SSHLibrary ,ftplibrary 等,需要使用哪个安装哪个。进入 Python 的安装路径,分别执行以下命令:

1 2 3 4

pip install robotframework-selenium2library pip install robotframework-archivelibrary pip install robotframework-SSHLibrary pip install robotframework-ftplibrary

完成以上步骤后,RobotFramework 的安装工作已经完成,可以通过执行命令“pip list”查看已经安装的产品。

2.7 安装 chrome,配置chromedriver

下载页面:http://chromedriver.chromium.org/downloads

我们大部分人本地都有安装chrome浏览器,没有安装下载一个即可;通过下载页面下载和chrome浏览器版本对应的driver,放到python路径或者chrome路径,并且配置path。

3、Robot Framework 使用

RF 是通过 RIDE 编辑器进行工作的,打开 RIDE 编辑器,打开之后就可以进行创建测试项目,创建测试用例等操作。

3.1 RIDE界面介绍

打开一个工程或者创建一个新工程,简单介绍下各个模块界面的作用。

Ø Project页面

· 项目结构:整修项目中所有结构显示及相关引用文件的显示,树型结果展示。可选择针对部分TestCase进行执行

· 引用:添加外部引用包、资源、变量、失败帮助

· 参数:添加变量、数组

· 数据:使用TDD时,此处可添加一些测试引用数据

Ø TestCase页面

· 设置区:主要用来配制此TestCase执行阶段的的操作

· Documentation:说明,可添加TestCase的说明、上下文、参数说明、业务等。无内容限制

· Setup:执行用例前可进行的一些设置,数据初始化、上下文数据还原

· Teardown:执行用例结束后部分操作。数据销毁、上下文数据还原

· Timeout:超时设置,此条用例的最大执行时间。超过此时间,则为失败

· Template:模板

· Tags:标签,可用来设置TestCase的优先级、标记用例。

· 脚本区:编写具体测试用例的区域

Ø Run页面

· 执行设置区:设置执行时的配制

· pybot:设置此次使用pybot/jybot/custom script来执行脚本

· Report:执行结束后,可点击此直接查看本次的报告

· Log:执行结束后,可点击查看Log日志文件

· Autosave:勾选后,可在执行前会自动保存所有的变更

· Pause on failure:勾选后,在执行失败时自动停止

· Show message log:勾选后,在执行时会自动显示message“系统运行记录”信息

· Arguments:执行时可配制的一些参数

· Only run tests with tags:配制后,仅会执行带有此处tag的Test Case。可配制多个,使用","分隔

· Skip tests with tags:配制后,自动跳过带有tag标签的Test Case。可配制多个,使用“,”分隔

· 脚本运行记录显示区:执行过程中的记录信息

· 系统运行记录显示区:扫行过程中的相关系统记录信息

3.2 写简单用例

Ø 创建测试项目

打开ride,在菜单栏File中,选择“New Project”。在弹出框中“Name”项中输入“Demo”,"Type"选择“Directory”,"Format"选择“txt”,选择OK。

Ø 创建测试套件

右键左侧栏中“Demo”,选择“New Suite”.在弹出框中“Name”项中输入“OpenBaidu”,选择“OK”。

Ø 创建测试用例

右键"OpenBaidu",选择“New Test Case”,输入TestBaidu.

Ø 导入库

在实际项目中,我们需要运用 RF 框架编写基于 web 的测试用例,我们需要 Selenium 的库支持。所以,我们在使用的过程中需要加载 selenium2library 库。

在“测试套件”的 Edit 标签页,点击“Library”按钮,弹出输入框,Name 输入:Selenium2Library ,点击 OK 完成。

如果导入的库显示为红色,表示导入的库不存在。如果是黑色则表示导入成功

Ø 编写测试用例

在TestBaidu用例的Edit区域写用例脚本。

可以通过快捷键 F5 来查询脚本的关键字。以打开浏览器为例,输入关键字“open”进行搜索,查询到一个“Open Browser”的关键字,点击这个关键字,就出现了它的用法和说明。

熟悉这个关键字用法之后,可以在 test case 里面进行尝试。“Open Browser”显示蓝色,说明它是一个合法的关键字,后面为红色说明需要输入一个参数,从其用法可知,需要输入 URL。更多关键字的用法可以熟悉 API 文件。

Ø 运行测试用例

以上几步完成后,就可以在 Run 页面,进行运行,并查看结果

在运行完测试之后,也可以进行查看 log 文件等操作。

Ø 变量说明

编写测试用例的时候还可以选择添加变量。变量是 RF 的常用的功能,它能在测试数据的大多数地方使用。主要有以下几种:

标量变量:语法 ${scalar }。当在测试数据中使用标量变量时,它们将被分配的值所代替。

列表变量:语法 @{LIST}。列表变量是复合变量,可以分配多个值给它。

数字变量:变量语法可以用来创建一个全是整型和浮点型的数字:整型${80}、浮点型${3.14}。

Boolean 变量:${true/false}。

Null/None 变量:${null/None}。

空格${SPACE} 和空${EMPTY} 变量等。

3.3 进阶使用

上面我们通过一个简单的用例,了解了RF的用法;但是我们正式去写用例时肯定不会这么简单,我们也不能直接上来就去写用例,而是要想好写的用了如何简洁易懂、如何维护,如何扩展等等,这就涉及到用例内容的分层思想(和和我们现在使用的HotWeb的框架类似),有的也叫关键词驱动测试,主要分为四层:

Ø 控件层

自动化用例涉及到的页面控件,都在这个层中维护,统一管理,方便后期维护

右键左侧栏中工程名,选择“New Resource”.在弹出框中“Name”项中输入名称,选择“OK”。

在控件层的 Edit 标签页,点击“Add Scalar”按钮,输入Name、Value、Comment ,点击 OK 完成;Value可以为id类型也可以是xpath类型等;同时如果涉及到Library,参考上面的方式去增加一下。

Ø 参数层

自动化用例涉及到的配置参数,都在这个层中维护,统一管理,方便后期维护

维护方式和控件层类似,可以参考控件层去维护。

Ø AW层

自动化用例涉及的一些公共封装的AW在这里维护,然后用例中可以直接引用这些公共AW去写用例

AW层涉及使用公共类库,需要增加一下;

右键左侧栏中AW层名称,选择“New User Keyword”.在弹出框中输入Name、Arguments,选择“OK”

选择新增的Keyword,在Edit 标签页,使用公共类库中的源生AW去封装我们业务需要的AW。

Ø 测试用例层

通过公共类库和其他各层的封装,去输出简洁易懂的用例脚本;

在“测试套件”的 Edit 标签页,点击“Resource”按钮,选择对应的内容层文件 ,点击 OK 完成。

这样编写用例的时候就可以直接使用下面封装的各个层的内容去写自动化脚本了;

当然,除了上面的分层方式去维护我们的自动化用例,还有一些其他的高级用法,例如for循环、if…else等,都可以方便我们去实现RF自动化用例,如果想要使用这个框架,我们可以去探索,网上也有很多类似的总结。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、Robot Framework简介
  • 2、Robot Framework 部署
    • 2.1安装 Python 2.7
      • 2.2安装 WxPython
        • 2.3安装 PyCrypto
          • 2.4安装 Robot Framwork
            • 2.5安装 robotframework-ride
              • 2.6 安装 Library库
                • 2.7 安装 chrome,配置chromedriver
                • 3、Robot Framework 使用
                  • 3.1 RIDE界面介绍
                    • 3.2 写简单用例
                      • 3.3 进阶使用
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档