RobotFramework入门基础教程
1.RobotFramework运行环境的搭建
在使用 RF(Rebot framework)的时候需要 Python 或 Jython 环境,具体可根据自己的需求来确定。本文以在有 Python 的环境的机器上安装和使用 RF 为例。
在配置过程中需要安装如下包:python 2.7、wxPython、robot framework、robot framework ride、robot framework selenium library。
安装 Python 2.7
RF 框架是基于 Python 语言的,所以一定要有 Python 环境。可以通过下面的下载页面下载对应的 Python 版本。
下载页面:https://www.python.org/downloads/。
下载完成后,选择默认项进行安装。
安装完后,需要设置环境变量:计算机—属性—高级系统设置—环境变量—系统变量—Path,写入 C:\Python27 和 C:\Python27\Scripts(更改为您指定路径即可)。
同时我们也可以通过 DOS 环境来验证安装的 Python 信息。
安装 pip
安装完Python后,进入Python安装目录,例如:C:\Python27\Scripts,
执行easy_install.exe pip
则python27\Scripts文件夹下会出现一系列和pip有关的文件,其中有pip.exe,说明pip命令可以使用
在cmd下输入“pip”,如果能识别"pip"指令,则说明pip安装成功了。
也就是说会出现如下的画面:
安装 WxPython
下载页面: https://pypi.org/project/wxPython/。
在选择版本下载的时候要注意选择与 Python 版本对应的版本,并且选择 unicode 版本,比如版本:wxPython2.8-win32-unicode-py26.exe,否则安装完成后不能支持中文。
下载完成后,选择默认项进行安装即可。
除此之外,还可以通过一下的pip指令进行安装:
pip install wxPython
安装 PyCrypto
下载页面1:http://www.voidspace.org.uk/python/modules.shtml#pycrypto。
下载页面2:下载页面:https://pypi.org/project/pycrypto/。
选择对应的 pycrypto installer 版本,进行默认安装。需要在安装库(如 SHHLibrary)之前进行安装,否则会出现 错误“Can't find vcvarsal.bat”。
除此之外,还可以通过一下的pip指令进行安装:
pip install pycrypto
如果你的python版本超过了以上网站提供的PyCrpyto所对应的版本,例如,当你的python版本为3.7时,你可以使用一下pip指令进行安装:
pip install pycryptodome
安装 Robot Framwork
进入 Python 的安装路径,执行命令“pip install robotframework”或者通过下载页面 https://pypi.python.org/pypi/robotframework下载源码。
解压后,执行命令“python setup.py install”进行安装。进入 Python 的安装路径,执行命令“pip install robotframework”。
安装 robotframework-ride
对应需要安装的版本
python3.7
robotframework==3.1
wxPython==4.0.3(尝试用4.0.4发现还不行)
robotframework-ride==1.7.4dev(之前1.7.3rc1出现保存不了的bug,暂时还未发布,需要下载源码)
robotframework和wxPython都用pip安装就可以了,需要注意版本
ride的下载路径(下载源码安装)
https://github.com/robotframework/RIDE
下载完毕后进行解压,在解压后的目录下进入cmd界面,然后输入指令:python setup.py install进行安装。
安装成功后,会在桌面显示一个图标,可以直接打开ride
或者直接在cmd命令窗口输入"ride.py"
或者在\\Python37\Scripts底下双击ride.py。
打开后如图:
安装需要的 Library
如 selenium2library ,archivelibrary,SSHLibrary ,ftplibrary 等。进入 Python 的安装路径,分别执行以下命令:
清单 1. 安装 Test Library
pip install robotframework-selenium2library
pip install robotframework-archivelibrary
pip install robotframework-sshlibrary
pip install robotframework-ftplibrary
完成以上步骤后,RobotFramework 的安装工作已经完成,可以通过执行命令“pip list”查看已经安装的产品,如图 1 所示:
图 1.RobotFramework 安装产品列表
2.RIDE使用介绍
RIDE是一款专门用来编辑Robot Framework用例的软件,用Python编写并且开源。当我们针对一个系统编写好一套用例后,每当我们对系 统做一些更改的时候,便可以把已经写好的用例拿出来稍作修改,通过执行这些用例就可以检测系统的功能是否依旧完好。系统需要一个不断完善的过程,而 RIDE用例也将随着系统的变更做着相应的修改。
2.1.特点
- a.测试用例使用文本文件保存;
- b.测试用例支持变量的使用,也可使用if语句和for循环,测试人员可根据自身情况创建自己需要的测试库;
- c.测试执行报告和日志是html格式的,容易阅读;
- d.支持关键字驱动、数据驱动和行为驱动等等
2.2.RIDE界面详解
2.2.1.Project、Suite页面
项目结构:整修项目中所有结构显示及相关引用文件的显示,树型结果展示。可选择针对部分TestCase进行执行
引用:添加外部引用包、资源、变量、失败帮助
参数:添加变量、数组
数据:此处可添加一些测试引用数据
2.2.2.TestCase页面
设置区:主要用来配制此TestCase执行阶段的的操作
Documentation:说明,可添加TestCase的说明、上下文、参数说明、业务等。无内容限制
Setup:执行用例前可进行的一些设置,数据初始化、上下文数据还原
Teardown:执行用例结束后部分操作。数据销毁、上下文数据还原
Timeout:超时设置,此条用例的最大执行时间。超过此时间,则为失败
Template:模板
Tags:标签,可用来设置TestCase的优先级、标记用例。
脚本区:编写具体测试用例的区域
2.2.3.Text Edit页面
脚本编写区:用来直接编写脚本。但此处编写脚本时,需要注意空格的处理,建议使用Test
Case页面中的脚本区来进行脚本完善
脚本编写时各个关键字和参数由四个空格区分
3.2.4.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。可配制多个,使用“,”分隔
脚本运行记录显示区:执行过程中的记录信息
系统运行记录显示区:扫行过程中的相关系统记录信息
2.3.第一个RIDE测试用例
1.创建一个新的工程
首先点击菜单栏的 File—>New Project。(这里选择”Directory“,因为我们要创建一个文件夹来存放用例,其实用File也可以,看自己需求吧)
创建好后如下图
2.创建测试套(Suite)
右击新创建的文件“testBaidu”——>点击“New Suite
3.创建测试用例(Test Case)
右击新创建的文件“New Test Case”——>点击“New Suite
4.编写用例脚本
1)添加Selenium2Library库文件 (web)、AppiumLibrary(APP)
点击创建好的测试套,选择添加Library
添加好以后文件名是黑色的,如果是红色,则说明加载不成功,需要检查库文件是否已安装,或者名称是否正确
2)编写脚本
用例情景如下:
a.打开浏览器进入百度主页
b.在搜索框中输入搜索文字”test“
c.点击搜索按钮
d.等待10s
e.关闭浏览器
3)运行脚本,查看运行情况
选择测试用例,点击菜单栏的”Tools“—>”Run Tests”,或者直接点击运行图标,在运行过程中可暂停、终止
运行完成后可查看运行日志了解运行情况
这样,一个简单的测试用例就完成了
自动化测试可以快速自动完成大量测试用例,节约人工测试成本。但是对于需求经常变更的项目,则需要大量时间进行维护。使用RIDE编写测试用例非常方便,而且它提供了日志记录功能,对用例运行过程中出现的各种情况都进行的详细记录,这样在用例运行失败的时候就很容易找到错误的地方了。
补充:
1、添加库文件的时候,字母不能忽略大小写,否则变红报错
运行ride报错,无法打开浏览器,需要名为geckodriver.exe的一个火狐浏览器driver在path中,当然解决办法就是,下载一个geckodriver.exe并将存放的路径添加在path中,简单点就直接放python的根目录下即可,下载地址 https://github.com/mozilla/geckodriver/releases
报错处理:
在使用selenium和Firefox中,报错:WebDriverException: Message: permission denied
分析原因1是:Firefox版本与selenium版本不匹配
经处理如下版本方式可以解决:
Python 3.6.0
selenium 3.141.0
Firefox 62.0
geckodriver-v0.23.0
RobotFramework入门基础教程相关推荐
- Hadoop新手篇:hadoop入门基础教程
Hadoop新手篇:hadoop入门基础教程 关于hadoop的分享此前一直都是零零散散的想到什么就写什么,整体写的比较乱吧.最近可能还算好的吧,毕竟花了两周的时间详细的写完的了hadoop从规划到环 ...
- c++语言while循环,c++ c语言while 循环语句入门基础教程
c++ c语言while 循环语句入门基础教程 我们来看While 循环语句,它跟 For 循环区别在于,For 循环一般知道循环次数,在第一行里头就指明了,而while循环一般不知道循环次数,下面我 ...
- python基础教程运行程序_Python入门基础教程:WSGI
原标题:Python入门基础教程:WSGI WSGI 简介 WSGI 是什么 WSGI 是 Python Web Server Gateway Interface 的缩写,是描述 Web 服务器与 P ...
- Hadoop入门基础教程 Hadoop之单词计数
单词计数是最简单也是最能体现MapReduce思想的程序之一,可以称为MapReduce版"Hello World",该程序的完整代码可以在Hadoop安装包的src/exampl ...
- Hadoop入门基础教程 Hadoop之完全分布式环境搭建
上一篇我们完成了Hadoop伪分布式环境的搭建,伪分布式模式也叫单节点集群模式, NameNode.SecondaryNameNode.DataNode.JobTracker.TaskTracker所 ...
- Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级
前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...
- python入门基础教程-Python入门基础教程:WSGI
原标题:Python入门基础教程:WSGI WSGI 简介 WSGI 是什么 WSGI 是 Python Web Server Gateway Interface 的缩写,是描述 Web 服务器与 P ...
- 超实用的Django入门基础教程,新手必备!
Django入门基础教程 Django简介 安装Django 虚拟环境的建立和准备工作 一.通过pycharm创建 手动创建app 迁移数据库 二.手动创建 创建一个新的文件夹 创建虚拟环境 激活虚拟 ...
- Timingdesigner入门 基础 教程
Timingdesigner 入门 基础 教程(装载) 原创作者:冰三点水 http://blog.csdn.net/u013608300/article/details/78988523 Timin ...
最新文章
- CSS3之利用选择器和content属性在页面中插入内容
- android ScrollView 控制行数
- Java——多线程学习
- mongodb 的使用场景和不适合使用的场景
- 依赖注入_set方法注入_构造器注入
- Similar Pairs CodeForces - 1360C(图匹配+简单贪心)
- 牛人和普通人的区别在于思维方式!
- MVC中@Html.DisPlayFor(model=model.newsName)和 @Model.newsName的区别
- Code First系列之视图,存储过程和异步API
- opencv之在图像上绘制标记---drawMarker
- vue2.0 $set()的用法
- ASP.NET Core SignalR +微信小程序整理(一)
- IAR软件生成库文件.a的license限制
- transition动画
- 博朗x乐高全球限量型趣宝盒首发
- mysql字符集与校对规则设置_MySQL 字符集与校对规则
- 更换ruby源----RubyGems 镜像 - 淘宝网
- 生产者消费者模式详细解读
- free(buf)报错。(buf位置移动导致指针指向的位置变动了)
- Bugku-CTF之管理员系统+程序员本地网站