RobotFramework环境搭建及入门学习
工作需要,开始学习自动化测试,本文介绍 RobotFramework环境搭建及几个简单的例子,部分内容摘自其他博客。
Robot Framework是什么?
Robot Framework是一个通用的验收测试和验收测试驱动开发(ATDD)的自动化测试框架。它具有易于使用的表格测试数据语法,它采用了关键字驱动的测试方法。其检测能力可以通过测试库实现Python或Java扩展,用户可以使用相同的语法,用于创建测试用例的创建新的更高层次的关键词。
RIDE 是一个用于Robot Framework测试数据的编辑器。
1. 前提条件
由于Robot Framework 框架是基于Python 语言开发的,要想使用Robot Framework 首先需要有Python环境。由于历史原因,目前Python分为Python2 和Python3 两个版本,我们如何选择呢?- 选择Python 2不要选择Python 3,因为RIDE不支持Python 3
- Python 2.6是RIDE的最低支持版本,但Robot Framework计划在3.1版本的时候不在对Python 2.6进行支持了,所以建议选择Python 2.7或更高的版本
- RIDE的GUI使用wxPython工具包实现了。只有wxPython 2.8.12.1 with Unicode是RIDE官方支持的。在2.8系列的新版本应该wxPython可能工作也很好。
此外要想好被测系统需要哪些测试库。
1.测 web 应用。那你可能需要 SeleniumLibrary 或者Selenium2Library。
2.测数据库?Python 和Java 都有相应的数据库测试库。
3.测 SSH/SFTP?那你可能需要 SSHLibrary。
这个列表可以继续列下去,看测试需要而定。
2. 环境搭建
入门阶段,本次安装如下的工具包:
- Python 2.7
- Robot Framwork
- wxPython(Python 非常有名的一个GUI 库,支撑Ride的运行库)
- RIDE(Robot Framework 测试数据的编辑器,它使测试用例的创建、运行、测试项目的组织可以在图形界面下完成)
- Selenium2Library(selenium2测试库,基于webdriver驱动)
- DatabaseLibrary
geckodriver, chromedriver 和 IEDriverServer浏览器驱动
python安装
直接在官网下载安装包.msi文件进行安装: https://www.python.org/downloads/windows/安装完成后,将C:\Python27和C:\Python27\Scripts添加到系统环境变量Path后面。在命令行中输入python,验证是否安装成功,同时可以看到安装的版本是多少。Robot Framework安装使用官方推荐的pip安装方式安装Robot Framework。python -m pip install robotframework
ps:pip 是一个安装和管理Python 包的工具,通过pip 去安装Python 包将变得十分简单。pip 的安装依赖于setuptools ,所以在安装pip 之间需要先安装setuptools。
基本上你安装了上一步中的最新版python27,就会自带pip和setuptools,只需要记得请将C:\Python27\Scripts添加到系统环境变量Path后面。
如果没有,请移步setuptools 与pip 下载安装:
https://pypi.python.org/pypi/setuptools
https://pypi.python.org/pypi/pipwxPython安装
下载wxPython 2.8:
https://sourceforge.net/projects/wxpython/files/wxPython/2.8.12.1/
根据你的系统下载 wxPython2.8-win64-unicode-2.8.12.1-py27.exe或 wxPython2.8-win32-unicode-2.8.12.1-py27.exe
注意:Python 和wxPython 的版本要一致,要么都是32位,要么都是64位。
RIDE安装
pip install robotframework-ride
严格的讲到这一步,Robot Framework的环境就已经安装完成了,接下去只是要下载最常用的库包进行支持。
进入目录C:\Python27\Scripts,会发现有一个【ride.py】文件,在命令行下输入以下命令就能打开了:
python ride.py
也可以自制一个启动图标到桌面,新建一个ride-run.bat文件,输入:
python -c "from robotide import main; main()"
下次就可以在桌面双击这个bat文件进行启动了,先看一下RIDE的界面。后面介绍用法。
Selenium2Library安装
pip install robotframework-selenium2libraryDatabaseLibrary安装
pip install robotframework-databaselibrarygeckodriver, chromedriver 和 IEDriverServer安装
要启动相应的浏览器必须要有它的驱动器,可以到Selenium官网下载所以相关的Driver:
http://www.seleniumhq.org/download/如果Selenium官网访问不了:
chromedriver没有64位版本,32即可驱动:
Mozilla GeckoDriver(Firefox)
https://github.com/mozilla/geckodriver/releasesGoogle Chrome Driver
http://chromedriver.storage.googleapis.com/index.html
3. Microsoft Edge Driver(IE)IEDriverServer
http://selenium-release.storage.googleapis.com/index.html请注意,下载后将这3个驱动(exe文件)放在python的安装目录下。
至此,常用库安装完成。其他的扩展库包可以在这里下: http://robotframework.org/#libraries
三. 认识RIDE1. 界面初识
2. 几个重要常用的功能
- Search Keywords(F5): 搜索关键字
- Tools->ContentAssistance:内容助手
- Tools->ViewRIDELog:查看RIDE日志,使用过程中报错,可以来这里查看,寻找报错原因
3. 基本的操作流程
Type选择Directory,Format选择TXT
- File->New Project
在project上右键New Suite,Type选择File,Format选择TXT
- New Suite
在Suite上右键 New Test Case
- New Test Case,
- New Resource
在Project上右键New Resource
- New User Keyword
在Resource上右键New User Keyword
这是RIDE资源区如图
4. 工作区编辑
1. 测试套件
2. 在Suite中添加Library
3. 在Suite中添加Resource
4. Settings(Project,Suit,Case,Resource,UserKeywords都有一个Settings)
四:web测试实例 (用到Selenium2Library)
1. 搜索测试
1) 创建case
2) 分层,自定义关键字
选中case中的所有脚本,右键选择Extract Keyword
我们再看case的内容就只有这个关键字了
3) 新建一个Resource文件,把User Keyword移动过
这样做的目的是为了更清晰,在测试套件中一般不放置UserKeyword,首要建议UserKeyword放在Resource里。
我这里新建一个Resource,叫res1.txt,然后把这个搜索测试移动过去。
接下来针对这个测试流程进行分离,因为这个案例流程比较简单,实际上就只有搜索内容这一个值是变化的,因此我们把他改成一个变量${search},同时把这个User Keyword的参数加上这个变量。
4)再回到case添加内容
5)运行,查看测试结果
2. 登录测试
1)自定义关键字
2)创建case
- successLogin
- errorLogin
3)运行查看测试结果
注意:所有字符串,不需要像html一样写字符串标识符,Robot会自动加上字符串标识符。自己写了字符串标准,反而校验不通过。
五. 数据库测试实例(用到DatabseLibrary)
我的数据库是mysql
1. 创建case
数据库记录
2. 运行,查看测试结果
至此,从环境搭建到2个简单的web测试和1个数据库测试已完成,入门级别供参考。
六. 参考文献
1. Robot Framework完整流程学习系列一http://blog.sina.com.cn/s/blog_63d6e6400102vsti.html
2. Robot Framework安装部署详细教程 https://blog.csdn.net/u011793251/article/details/54646142