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.特点

  1. a.测试用例使用文本文件保存;
  2. b.测试用例支持变量的使用,也可使用if语句和for循环,测试人员可根据自身情况创建自己需要的测试库;
  3. c.测试执行报告和日志是html格式的,容易阅读;
  4. 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入门基础教程相关推荐

  1. Hadoop新手篇:hadoop入门基础教程

    Hadoop新手篇:hadoop入门基础教程 关于hadoop的分享此前一直都是零零散散的想到什么就写什么,整体写的比较乱吧.最近可能还算好的吧,毕竟花了两周的时间详细的写完的了hadoop从规划到环 ...

  2. c++语言while循环,c++ c语言while 循环语句入门基础教程

    c++ c语言while 循环语句入门基础教程 我们来看While 循环语句,它跟 For 循环区别在于,For 循环一般知道循环次数,在第一行里头就指明了,而while循环一般不知道循环次数,下面我 ...

  3. python基础教程运行程序_Python入门基础教程:WSGI

    原标题:Python入门基础教程:WSGI WSGI 简介 WSGI 是什么 WSGI 是 Python Web Server Gateway Interface 的缩写,是描述 Web 服务器与 P ...

  4. Hadoop入门基础教程 Hadoop之单词计数

    单词计数是最简单也是最能体现MapReduce思想的程序之一,可以称为MapReduce版"Hello World",该程序的完整代码可以在Hadoop安装包的src/exampl ...

  5. Hadoop入门基础教程 Hadoop之完全分布式环境搭建

    上一篇我们完成了Hadoop伪分布式环境的搭建,伪分布式模式也叫单节点集群模式, NameNode.SecondaryNameNode.DataNode.JobTracker.TaskTracker所 ...

  6. Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级

    前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...

  7. python入门基础教程-Python入门基础教程:WSGI

    原标题:Python入门基础教程:WSGI WSGI 简介 WSGI 是什么 WSGI 是 Python Web Server Gateway Interface 的缩写,是描述 Web 服务器与 P ...

  8. 超实用的Django入门基础教程,新手必备!

    Django入门基础教程 Django简介 安装Django 虚拟环境的建立和准备工作 一.通过pycharm创建 手动创建app 迁移数据库 二.手动创建 创建一个新的文件夹 创建虚拟环境 激活虚拟 ...

  9. Timingdesigner入门 基础 教程

    Timingdesigner 入门 基础 教程(装载) 原创作者:冰三点水 http://blog.csdn.net/u013608300/article/details/78988523 Timin ...

最新文章

  1. CSS3之利用选择器和content属性在页面中插入内容
  2. android ScrollView 控制行数
  3. Java——多线程学习
  4. mongodb 的使用场景和不适合使用的场景
  5. 依赖注入_set方法注入_构造器注入
  6. Similar Pairs CodeForces - 1360C(图匹配+简单贪心)
  7. 牛人和普通人的区别在于思维方式!
  8. MVC中@Html.DisPlayFor(model=model.newsName)和 @Model.newsName的区别
  9. Code First系列之视图,存储过程和异步API
  10. opencv之在图像上绘制标记---drawMarker
  11. vue2.0 $set()的用法
  12. ASP.NET Core SignalR +微信小程序整理(一)
  13. IAR软件生成库文件.a的license限制
  14. transition动画
  15. 博朗x乐高全球限量型趣宝盒首发
  16. mysql字符集与校对规则设置_MySQL 字符集与校对规则
  17. 更换ruby源----RubyGems 镜像 - 淘宝网
  18. 生产者消费者模式详细解读
  19. free(buf)报错。(buf位置移动导致指针指向的位置变动了)
  20. Bugku-CTF之管理员系统+程序员本地网站

热门文章

  1. python发音小程序
  2. 实现表格内容第一行居中,其他行与第一行左对齐
  3. springboot+vue校园食堂网上订餐系统-带商家idea
  4. int int int * int**的区别、联系和用途
  5. 星际航行游戏流程(Unity 初学者)
  6. Failed to read artifact descriptor for xxx:jar的问题解决
  7. Ubuntu18.04 RTL8169驱动更换RTL8168驱动
  8. 怎么做革命性创新产品
  9. Python第五周练习:随机密码生成
  10. 是时候使用Markdown写作了