robot ride edit 页面不显示_【框架】robot-framework预研

隔壁组在使用robot framework进行自动化测试,这玩意之前我没接触过,决定来预研一下这个auto test框架。

背景

一个好的框架,背后少不了一个牛逼的团队或组织(金主爸爸),也是判断是否值得投入时间学习的一个参考因素(虽然强如塞班系统也有淘汰的一天)。
Robot Framework官网对它的定位是一个通用的开源的auotomation framework,托管在github上。既然是开源的,那么应该有类似基金会的组织来维护,没错,确实是一个叫做 Robot Framework Foundation的基金会(https://robotframework.org/foundation/)。
这个基金会的成员我看了下,在众多公司logo中我只认出了Nokia...,不过我查了一下其它也都是欧美知名企业,所以实力还是不容小觑。然后我发现,原来这个框架最初是Nokia公司开发的,不过在2008年将它开源了。

基本认知

那么来了解下这个框架的一些基本知识。
1.Robot Framework的core是使用Python语言实现的,所以要使用Robot Framework,得在本地安装Python环境才行。
2.Robot Framework可以运行在Python(c语言写的解释器)或者Jython(Home)或者IronPython上。
Python语言是解释执行的,那就得有对应的解释器了,一般使用的是c语言写的解释器,然而还有其他解释器比如Jython,就是用java语言实现的Python解释器(使用哪种下文阐述)。
3.Robot Framework的调用机制,见下图(http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html).

07fdd5c42d12128b104393344c435799.png
robot framework 架构图(详情见官网user guide 1.1.2)

set up环境

  • 安装python
Robot Framework是使用Python实现的框架,所以肯定得安装Python环境。(1)这里涉及到使用哪一种Python解释器的问题,c语言写的Python解释器?Jython?...官网的解释是这取决你所需的test libraries和test environment,毕竟有的test libraries
只能运行在Jython上。当然,也有一些libraries和tools可以很好的运行在所有解释器上。比如,如果你
要测试的系统是有ui界面的,那么你可能就得需要a这个test libaries,而a库又是python写的;或者你
要测试数据库,需要用到b库,b库是java写的...
如果没有特殊需求,官网提倡安装的是Python(c语言写的解释器),因为这个相比其它是最成熟的实现。(2)那安装Python2还是3呢?
这个就取决于你安装的Robot Framework版本了,官网原话如下:
Robot Framework 3.0 supports Python 2.6, 2.7, 3.3 and newer, but the plan is to 
drop Python 2.6 and 3.3 support in RF 3.1. If you need to use older versions, 
Robot Framework 2.5-2.8 support Python 2.5 
and Robot Framework 2.0-2.1 support Python 2.3 and 2.4.所以看着办就行。记得配置环境变量。
  • 安装Robot Framework
(1)pip方式
(2)source方式
(3)jar方式
(4)手动定制化方式官网推荐的是pip的安装方式。
  • 安装wxPython
这是Python实现的一个GUI库,由于RIDE编辑器是使用该python库实现的,所以需要安装。既然是python库,那么肯定可以通过pip安装。或者上官网(http://www.wxpython.org/download.php)
下载安装。
  • 安装RIDE
   这个一个图形化的编辑器,使用该编辑器可以简化写robot framework测试case,提升效率,
类似IDE的功能,除非你想完完全全一行一行的敲代码,类似你不使用IDE去写java程序那样,
否则就得安装这个。
同样可以通过pip方式或者官网(https://pypi.python.org/pypi/robotframework-ride)下载安装。安装完后本质是执行ride.py启动。
  • 验证安装
使用:
robot --version会输出相关版本信息,比如我在mac下:
Robot Framework 3.0 (Python 2.7.16 on darwin)windows同理:
Robot Framework 3.0.4 (Python 2.7.16 on win32)
  • tips
安装过程中出现最多的问题就是软件版本之间兼容的问题,所以出现问题可以往这方面着手。
  • 一些概念
1.关键字驱动robot framework是关键字驱动的,比如 log xxx, 这里的log就是关键字。
也经常说到test libraries,那他们是什么关系呢?其实这些关键字都定义在test libraries里。
test libraries有三种来
源。
一种就是built-in的,robot framework事先内部定义好的,比如log这个关键字就是built-in库定义的。
一种是第三方开发的test libraries.
还有一种就是自定义的test libraries(没有第三方轮子可以用只能自己搞了).这个其实就和java一样,这个是通性的东西。(编程思想果然一脉相承)。有哪些关键字可以用以及关键字的具体用法,这个可以借助ride界面的Tools->Search Keywords工具搜索。2.什么是test suite测试领域中经常会碰到的概念就是test case和test suite.
其实test suite就是对test case的一个逻辑上的一个分组分类。对于robot framework来说,物理上test file是test case的直接载体,官网推荐的是
一个test file中一般定义的test case不要超过10个。test suite的物理形式可以很多了,
一个 test file是最小单元的test suite,一个
test directory也是一个test suite。在test directory下可以直接挂test file
或者test directory...
所以test suite存在分层级的概念的。实际中最外层的test directory就是最顶层的test suite。

Hello world

mac os系统下为例子。
  • step 1
终端下输入ride.py打开ide。
  • step 2
File->New Project。
弹出对话框。这里Type为了方便,直接就File类型了。(实际中根据需要决定)Format这里选择ROBOT.

1590a5594af198405c850d43b9676ad1.png
对话框
  • step 3
编写测试用例。选中test file右键选择new test case。选择生成的test case,在test case右边的test table写该测试用例。

a978e52429c7c6e1a15d0aee94e62c0a.png
hello world
  • step 4
运行该测试用例。标签页中选择Run,运行测试用例。

8a9b27298cc8224b91867fda27ef8202.png
运行测试用例

预研后感

1.对于国内互联网公司来说,robot framework的使用貌似并不常见。在之前,我觉得单元测试框架
例如JUnit,testNG已经能够满足coder测试的需求。
2.robot framework主要还是用作功能测试,集成测试,黑盒子测试。如果一个项目或者产品生命周期很长,
那么长远来看,还是值得的,但是前期需要投入时间和人力。
而JUnit等单元测试更偏向于是白盒测试。

reference:

1.https://robotframework.org/#examples
2.官方user guide:
http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html

觉得本文对你有帮助,不妨点个赞和关注!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244700.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 多态 降低耦合_java多态

Java多态就是为了降低耦合,方便我们开发的一种特性。比如我写了一个动物的接口。然后我通过接口实现了猫和狗这个类。在我需要使用的时候我可以这样实例化对象动物 w new 猫。这就是向上转型。这里就有一点疑问了,我们开发人员为啥不直接写个猫和狗的类…

jap和java有关系吗_hibernate与jpa有什么区别和联系?

~JPA Java Persistence API,是Java EE 5的标准ORM接口,也是ejb3规范的一部分。Hibernate,当今很流行的ORM框架,是JPA的一个实现,但是其功能是JPA的超集。JPA和Hibernate之间的关系,可以简单的理解为JPA是标…

python找房源_Python租房信息分析!找到最适合自己的房源信息!

原标题:Python租房信息分析!找到最适合自己的房源信息!租房信息分析import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsfile_data pd.read_csv("./data/链家北京租房数据.csv")file_dat…

php 任意字符串_php 生成任意长度字符串的类(只含有数字 只含有字母 混合数字和字母)...

[php]代码库/** 生成随机字符串的类,默认只包含数字、大小写字母*/class randomString {/** 生成的字符串包含的字符设置*/const NUMERIC_ONLY 1; //只含有数字const LETTER_ONLY 2; //只含有字母const MIXED 3; //混合数字和字母/** 用户传入变量,分…

python添加时间戳_在python中添加时间戳

这两个解决方案(AFAIK)都可以在python的任何2.x版本上运行(因此保证了相当多的向后兼容性)仅依赖于regex库的实现:import redata 2011-03-07 0:27:412011-03-06 0:13:412011-03-05 0:17:402011-03-04 0:55:402011-05-16 0:55:402011-05-16 0:55:402011-07-16 0:55:…

php 删除某个文件夹,Php删除指定文件与文件夹的方法

例子:复制代码 代码示例://删除指定目录(文件夹)中的所有文件函数function delfile($dir) {if (is_dir($dir)) {$dhopendir($dir);//打开目录//列出目录中的所有文件并去掉 . 和 ..while (false ! ( $file readdir ($dh))) {if($file!"." && $fi…

python 按月份分组_django ORM queryset按月、周、TruncMonth分组

如何在Django ORM中对datetime字段进行group by查询?在型号:class test1(models.Model):id models.AutoField(primary_keyTrue, uniqueTrue, verbose_nameid)name models.CharField(verbose_namename, max_length200)cdate models.DateField(verbose_…

explode php 报错,ecshop在php5.4下报错怎么办

ecshop在php5.4下报错的解决办法:1、打开“cls_template”文件,并修改“$tag_selarray_shift(explode( ,$tag));”;2、修改“static”;3、修改cls_captcha文件。本教程操作环境:windows7系统、PHP5.4版、Dell G3电脑。…

python response.json()报错_解决Django响应JsonResponse返回json格式数据报错问题

解决Django响应JsonResponse返回json格式数据报错问题,给大家,报错,代码,图书,希望能解决Django响应JsonResponse返回json格式数据报错问题易采站长站,站长之家为您整理了解决Django响应JsonResponse返回json格式数据报错问题的相关内容。代码return JsonResponse({…

php 实例 规范,PHP开发规范实例详解

本文主要和大家分享PHP开发规范实例详解&#xff0c;希望能帮助到大家。源文件代码使用<?php开头 &#xff0c;忽略闭合标签?>文件格式必须是无BOM UTF-8格式一个文件只声明一种类型&#xff0c;如class和interface不能混写在一个源文件中缩进使用4个空格来缩进&#x…

sql 相加_SQL经典题型

SQL内容及常见面试题如下&#xff1a;以下为具体的面试题内容和答案一、简单查询题目查询姓“猴”的学生名单查询姓名中最后一个字是“猴”的学生名单查询姓名中带“猴”的学生名单查询姓“孟”老师的个数二、汇总分析题目查询课程号为“0002”的总成绩查询选了课程的学生人数查…

centos编译apache php mysql,在CentOS6.7中编译安装 apache php mysql

安装 开发工具 yum groupinstall "Development Tools" ------------------------------ tar -jxvf apr-1.5.2.tar.bz2 cd apr-1.5.2 ./configure --prefix/usr/local/apr make && make install ----------------- tar -jxvf apr-util-1.5.4.tar.bz2 cd apr-u…

python为什么虚部是j不是i_Python基础02 基本数据类型

简单的数据类型以及赋值变量不需要声明Python的变量不需要声明&#xff0c;你可以直接输入&#xff1a;>>>a 10那么你的内存里就有了一个变量a&#xff0c; 它的值是10&#xff0c;它的类型是integer (整数)。 在此之前你不需要做什么特别的声明&#xff0c;而数据类…

php array 如何访问,php – 如何访问$array [@key]值

我正在使用expedia API并且它运行良好,但我不知道如何访问这种特殊类型的数组键.回复如下$response stdClass Object([size] > 1[activePropertyCount] > 144[city] > 1[hotelId] > 12345[HotelSummary] > stdClass Object([order] > 0[ubsScore] > 10748…

基于stm32f429的手写识别_关注智能手机老年用户:百度输入法手写模型迎来重磅升级...

智能手机的快速普及让很多人都已经习惯于任何事情都用手机办理&#xff0c;不仅外出买东西、乘坐公共交通可以使用智能手机支付&#xff0c;同时一些与工作、政务相关的事情也可以在智能手机端完成&#xff0c;而社交工具更是让人们几乎已经不再使用短信、电话功能&#xff0c;…

如何安装ipython notebook_IPython notebook安装指导

1.环境准备yum -y install sqlite-devel #在安装Python之前执行&#xff0c;ipython notebook依赖sqlite执行pip install ipythonpip install notebookpip install pysqlite #ipython notebook 依赖sqlite数据库&#xff0c;必须安装后才能使用[错误处理]如果安装sqlite-devel后…

Html页面上输出不了PHP,在页面上直接输出未经解析的HTML源码

摘要&#xff1a;<?php $str6$我在\php中文网\学习 PHP 和 HTML &#xff0c;目前我还是&小白&。;echo $str6,;//\, 、$str6$我在\php中文网\学习 PHP 和 HTML &#xff0c;目前我还是&小白&。;echo $str6,;//\, 、标签、&等均被解析输出echo htmlspec…

python po设计模式_(Python)PO设计模式

无规矩不成方圆。编写代码也是&#xff0c;如果没有大概的框架&#xff0c;管理代码将会是一件很头疼的事。先看看笔者以前写的python脚本&#xff1a;如果只有一个用例&#xff0c;这样看着好像挺整洁的。但是当用例越来越多后&#xff0c;如果元素定位发生了改变&#xff0c;…

php strtok函数,strtok函数的使用示例

strtok函数是字符串函数库中的一个函数&#xff0c;函数原型如下&#xff1a;char *strtok(char s[], const char *delim);作用&#xff1a;分解字符串为一组字符串。s为要分解的字符串&#xff0c;delim为分隔符字符串。例如&#xff1a;"hello,hi:what?is!the.matter;&…

python 滑块验证码_python selenium 淘宝滑块验证码 问题

正常打开淘宝等页面&#xff0c;搜索商品和滑块验证码是没有问题的&#xff0c;但是用selenium打开&#xff0c;在多次翻页后出现的滑块验证码就总是失败&#xff0c;无论是手动滑还是代码控制都不可以&#xff0c;目前正在找解决办法。。。此问题针对多次翻页出现的滑块验证码…