python-RobotFramework-RIDE使用方法_清无时空的博客-程序员秘密_ride使用方法

技术标签: Python  

一.环境搭建
网上有很多的教程,这里就不多讲了
 
二.RIDE的界面认识
Robot Framework完整流程学习系列一
 
这里只介绍几个重要常用的功能,其他相信自己都能理解
 
1.Search Keywords(F5): 搜索关键字
Robot Framework完整流程学习系列一

2.Content Assistance:内容助手

Robot Framework完整流程学习系列一

3.View RIDE Log:查看RIDE日志,使用过程中报错,可以来这里查看,寻找报错原因

三.最基本的流程
 
1.New Project
 
Type选择Directory,Format选择TXT

Robot Framework完整流程学习系列一

Type选择File,Format选择TXT
Robot Framework完整流程学习系列一

3.在Suite的基础上Create New TestCase
Robot Framework完整流程学习系列一

4.New Resource
 
在Project的基础上Create New Resource
Robot Framework完整流程学习系列一

5.New User Keyword
 
在Resource的基础上Create User Keyword
Robot Framework完整流程学习系列一

这时候你的RIDE如下图显示就对了
Robot Framework完整流程学习系列一


四.工作区EDIT
 
1.测试套件
Robot Framework完整流程学习系列一

大体分成3个部分。

(1):加载外部文件

Add Library      :加载测试库,主要是[PYTHON目录]\Lib\site-packages里的测试库

Add Resource:加载资源,主要是你工程相关的资源文件

Add Variables:加载变量文件,不怎么用,可暂时忽略

(2):定义内部变量

Add Scalar:定义变量

Add List:定义列表型变量

(3):元数据定义

Add Metadata:定义元数据。我是直接翻译的,这个是新增加的部分,大概看了一下作用是在report和log里显示定义好的内容,格式和document一样。

 

2.添加Resource(在Suite中

Robot Framework完整流程学习系列一

 

3.添加Library(在Suite中

Robot Framework完整流程学习系列一

4.添加成功的标志,在Source中出现Selenium2Library和res1

Robot Framework完整流程学习系列一

 

5.setting(包括Project,Suit,Case,Resource,User Keywords图片就不一一上传了)

Robot Framework完整流程学习系列一

Documentation:文档,每一项都有。可以给当前的对象加入文档说明。

Suite Setup指的是测试套件启动的时候就执行某个关键字。(例:我在Suite Setup设置了Sleep | 5sec,表示等待5秒,要注意关键字的参数要使用 | 分隔)

Test Teardown指的就是案例结束的时候执行某个关键字。

Test Template:测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模版,这样所有的TestCase就只需要设置这个关键字的传入参数即可。

Test Timeout:设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败。

Force Tags:这里还是要说一下,在文件型Suite这里还可以继续给子元素增加Force Tags,但是他不能删除父元素设置的tags

Default Tags:默认标记,其实和Force Tags没啥区别的

Arguments:传入参数

Return Value:返回值

 

五.工作区RUN

 

Robot Framework完整流程学习系列一

 Execution Profile:选择运行方式,里面有pybot、jybot和custom script。其中我们默认是用pybot来运行案例,jybot需要安装Jython的支持。custom script是选择自定义的脚本来运行。就目前而言,我们不用修改了,默认pybot即可

 Start和Stop:这两个应该不用说了,运行和停止案例。

 Report和Log: 报告和日志,要运行之后才能点击。他们的区别么,我的感觉是报告更多是结果上的展示,日志更多是过程的记录,更多使用的还是日志。

 Autosave: 自动保存,如果不勾选,在修改了案例之后如果没有保存的话,运行案例时会提示是否保存。勾选则在运行时自动保存了。

 Arguments: pybot的参数(或者jybot等),比如我后面截图里加上了一个参数。完整版的参数可以在doc命令行输入pybot.bat --help

Only Run Tests with these Tags: 只运行这些标记的测试案例。

Skip Tests with these Tags: 跳过这些标记的测试案例

 

六.案例设计之流程与数据分离1 

 

 1.创建案例

Robot Framework完整流程学习系列一

 

这算是一个比较完整的案例了,包含完整的流程和检查点,那么这时候如果我要增加一个案例,搜索另外的内容怎么办呢?

在原来的case上修改肯定是不合适的,毕竟那个案例可能还是需要保留的。

最简单的办法,把这个case复制一个,修改搜索内容。那么我们复制出一个case2吧

 

Robot Framework完整流程学习系列一

2.分层方法

选中case中的所有脚本,点击右键,选择Extract Keyword

Robot Framework完整流程学习系列一

而我们再看case的内容就只有这个关键字了

Robot Framework完整流程学习系列一

新建一个Resource文件,把UserKeyword移动过去(或者移动到已有的Resource文件里)

这样做的目的是为了更清晰,在测试套件中一般不放置UserKeyword,前面第2讲的时候我们就说过了,首要建议UserKeyword放在Resource里。

我这里新建一个Resource,叫TestFlow.txt,然后把这个搜索测试移动过去,就成了这样。

 

接下来我们针对这个测试流程进行分离,因为这个案例流程比较简单,实际上就只有搜索内容这一个值是变化的,因此我们把他改成一个变量,同时把这个UserKeyword的参数加上这个变量。

Robot Framework完整流程学习系列一

再回头看看case的内容和添加内容

Robot Framework完整流程学习系列一
可以运行试试看

到现在我们完成了一个简单的分层,把搜索测试这个流程剥离成一个关键字,然后在不同的case调用这个关键字,然后传递不同的参数,用以进行不同数据在同一个流程下的测试。

这样就不用担心再新增10个或100个案例了,因为这个案例比较简单,通过复制也可以做出10个或100个案例,但是最大的区别在于,如果我的流程中间需要做一点小的调整和优化,对于流程和数据分离的案例来说,我这样维护一下搜索测试这个UserKeyword就行了;对于复制的案例,那你就要辛苦了,你有多少个案例就改多少吧。

其实这个道理引申出来,我们做自动化测试也是一样,选择不同的方法或者工具都可以实现最终的目标,但是我们需要考虑的不是把案例做起来,因为这个比较容易实现。对于自动化案例来说,最大的难度不是在于怎么做案例,而是怎么维护案例。因为随着需求的更新,系统的流程或者页面会发生很多的变化,这时候的维护成本的高低才是我们首要考虑的,如果自动化案例建立起来之后,没有后续维护的投入,最终经过若干个版本,这些自动化案例基本就是废弃的了。

 

 

七.案例设计之流程与数据分离1

 

将搜索测试中的内容继续分层,还是要把一些底层的代码级关键字继续拆分出来

下面对res1.txt进行操作

 

1.打开浏览器

Robot Framework完整流程学习系列一


 2.输入搜索内容

Robot Framework完整流程学习系列一

3.点击搜索

Robot Framework完整流程学习系列一

4.校验标题

Robot Framework完整流程学习系列一

5.关闭浏览器

Robot Framework完整流程学习系列一

 

接着我们把对应的搜索测试中的代码都换成相应的关键字,记得添加参数${url}


Robot Framework完整流程学习系列一

最后该运行了

Robot Framework完整流程学习系列一

至此,我们这个案例就已经完成分层了,因为案例比较简单,所以只分了3层,分别是案例层,流程层,元素层。他们的调用关系也是逐层深入的

Robot Framework完整流程学习系列一

=============总结一下=============

这样做的好处不单是为了以后维护方便,也使得案例的架构层级清晰。越是靠近上层的部分,脚本越贴近自然语言,或者说很像我们的测试案例;越靠近下层的部分,越是接近页面元素的代码级部分。这样以后如果发生维护的时候,根据需要维护的内容,只需要在很少的地方进行调整即可。比如一个元素的id变了,那我只要在elements里面更新就行了。比如测试的流程调整了,以前是ABC的页面顺序,现在是ACB的页面顺序,那么只要在testflow层进行调整即可。

那么回到我们的标题,流程与数据分离,实际上目前我们的流程都集中在testflow以及下面的部分,而数据一般都是在案例层去给流程层传递,这就是我们的流程与数据分离了。当然,我们还可以再进一步的分离,把数据放到外面,脱离我们的案例,在运行的时候才传递进行,也是可以实现的。后面我会做个简单的例子给大家看。

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(27) | 评论(0) | 转发(0) |
0

上一篇:python-pip常用命令

下一篇:IntelliJ IDEA 破解

给主人留下些什么吧!~~
评论热议
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_34439107/article/details/70214346

智能推荐

使用安卓模拟器时提示关闭hyper-v_Carrot_ly的博客-程序员秘密_mumu模拟器关闭hyper

本电脑是宏碁传奇X,cpu是r7 5800u,显卡rtx3050;使用了雷电、mumu两款安卓模拟器,雷电启动报错g_bGuestPowerOff fastpipeapi.cpp:1161,使用了网上的所有方案都不行,包括开启VT(amd开启SVM),命令关闭hyper-v服务等;尝试mumu模拟器,安装时支持vt项检测不通过,后来发现mumu模拟器在amd的cpu上只支持32位版,换装32位版检测通过,但是只要打开模拟器就提示需要关闭hyper-v,我已经确认关闭后,启动依旧这样提示,查找了网上很

第六周课堂测试_weixin_30480651的博客-程序员秘密

设计思想:在前一次作业的基础上 ,当循环到达最后一位数,即len[num-1]时,对最后一个数进行判断,如果大于零(若小于零,则没有必要了),则重置i(因为循环开始时便是i++,所以这里重置i为-1);同时对另外一个计数变量m(统计循环次数,方便进行跳出循环操作,防止陷入无限循环)进行叠加,之后对m进行判断,当m=2时,就要进行第三次循环了,而这次循环是无效的,所以此时利用改变i值跳出循环...

DDR4、LPDDR4、LPDDR4x区别及DDR拓展_流年過客的博客-程序员秘密_lpddr4和ddr4的区别

核心总结:简单地说DRR4是标准电压版的PC和服务器内存,LPDDR4属于手机等嵌入式移动设备使用的低电压低功耗内存,LPDDR4X则是LPDDR4的升级版,同等性能下功耗降低!一、分类简介1、DDR4也叫DDR4 SDRAM,其中DDR是Double Data Rate SDRAM的缩写,即双倍速率同步动态随机存储器。目前主流的台式机、笔记本电脑都采用的是DDR4规格的内存。2、LPDDR4也叫LPDDR4 SDRAM,其中LPDDR是Low Power Double Data Rate SDRA

java 自动排序listview_Java ListView.setSelectionFromTop方法代码示例_吾食吾味的博客-程序员秘密

import android.widget.ListView; //导入方法依赖的package包/类@Overridepublic AnimatorUpdateListener onLoadingFinish(final RefreshKernel kernel, final int footerHeight, int startDelay, final int duration) {if (m...

Pico系列VR眼镜 视觉优化知识点_Unity李大馋师的博客-程序员秘密

1、头部运动 舒适区 及其它:方位\角度范围舒适区可行区极限区左右(-30 ,+30)(-55,55)(-102,102)向上&lt; 2060向下&gt;-12-402、每单位像素数PPU 的计算3、Quality Settings推荐配置Edit——&gt;QualitySettingPixel Light Count:1Texture Quality:Full ResAnisotropic Textures:Per Textu

CKEditor 添加自定义插件_牙痛不要紧的博客-程序员秘密_ckeditor 添加插件

转自:crying_boy第一步:config.js中config.extraPlugins = '插件名称';//注册插件第二步:plugins文件夹下新建:插件名称 文件夹第三步:1:在plugins/插件名称/下新建plugin.js;2:在plugins/插件名称/下新建 dialogs文件夹,并在其内新建 "插件名称.js"(function(

随便推点

Unity引擎源代码开源地址_火锅肥牛的博客-程序员秘密_unity引擎源码

https://github.com/Unity-Technologies/UnityCsReference这个版本是Unity 官方开源的C#部分代码,先mark再看。值得学习。

android 开发日积月累,统统都会_普通网友的博客-程序员秘密

因为够强大 而且分便,对于多人团队协作开发帮助很大。当然他们都有视图工具,记不住命令的可以用视图操作。我之前也有一篇git命令的博客&nbsp;Git命令(最常用10组)开发工具开发工具一般是:android studio ,idea,eclipse 三种。android开发工具现在官方推荐 android studio 简称as,goole对外宣布停止对eclipse的支持。android studio的入门使用我写了一篇文章从零开始用android studio&nbsp; 入门的新手非常

python平台无关性_Python 跨平台兼容性实践——记 PyCon China 2017 的一次分享_weixin_39903477的博客-程序员秘密

前言2017 年大概 11 月份时在 PyCon China 2017 杭州站分享了 Python 跨平台兼容性实践,讲述了如何让 Python 程序兼容更多的平台。遗憾的是,当时没有影像资料,又缺少文字记录。现在应朋友的要求,将当时的内容整理成文字。本文将首先介绍背景,然后介绍如何做到解释器的兼容性,再介绍库的兼容性,最后介绍如何进行多个平台的持续集成,从而达到跨平台兼容性的目的。背景为什么要...

计算机课件制作总结,课件制作比赛活动总结范文_甄藏阁的博客-程序员秘密

课件制作比赛,是对计算机多媒体等辅助手段的一次检阅,也有力地促进了制作多媒体课件技艺的提高。下面就是小编给大家带来的课件制作比赛活动总结,希望能帮助到大家!课件制作比赛活动总结1为了更好落实学校文化建设,创建良好的校风、学风,将创先争优工作落到实处。围绕学校本科教学工作合格评估,创建良好的学习氛围,提高广大同学的课件制作水平,增强实际操作能力、语言表达能力与综合素质,增进各学院各专业同学之间的学科...

java获取视频第一帧_qq_44663816的博客-程序员秘密_java获取视频第一帧

这里写自定义目录标题java获取视频第一帧功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入java获取视频第一帧利用FFmpegFrameGrabber处理视频流直接上代码我们对Markdown编辑器进行了一些功能拓展与语

推荐文章

热门文章

相关标签