隔壁组在使用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).

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.

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

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

运行测试用例

预研后感

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

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

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

  1. 问题解决10使用带有框架的页面跳转到登录页面时,登录页面只显示在子框架中,未能铺满整个浏览器--解决方案如下:...

    问题描述: 使用带有框架的页面跳转到登录页面时,登录页面只显示在子框架中,未能铺满整个浏览器,例如: 当登录信息过期时,点击左边的菜单栏会让登录页面显示在右边的框架中,而不能铺满整个浏览器 解决方案: ...

  2. ercharts一个页面能放几个_在同一页面中显示多个echart图表

    整理了一下大概有两种做法来实现在同一个页面中显示多个echart图表,废话不说直接上代码. 在同一个echart对象中绘制多个图表 echart .chart { width: 1500px; } i ...

  3. 杜威分类法的分类规则_如何在父分类法的存档页面上显示子分类法

    杜威分类法的分类规则 In the past we have shown you how to display subcategories on category pages in WordPress ...

  4. razor页面跳转_如何在Blazor中使用Razor页面创建单页应用程序

    razor页面跳转 In this article, we are going to create a Single Page Application (SPA) using Razor pages ...

  5. 访问页面升级访问_容器化单页面应用中RESTful API的访问

    最近在工作中,需要让运行在容器中的单页面应用程序能够访问外部的RESTful API.这个需求看起来并不困难,不过实现起来还是有些曲折的.在此,我就将这部分内容总结一下. 在入正题之前,有个一问题,就 ...

  6. [课程设计]Scrum 2.5 多鱼点餐系统开发进度(下单一览页面-菜式添加框架设计)

    Scrum 2.5 多鱼点餐系统开发进度  (下单一览页面-菜式添加框架设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题 ...

  7. 一个websocket 可以多个页面创建吗_实战分享|给我一个Puppeteer,没有爬不了的网站

    Puppeteer 是 Chrome 开发团队在 2017 年发布的一个 Node.js 包,用来模拟 Chrome 浏览器的运行.我们团队从 Puppeteer 刚发布出来就开始成为忠实用户了(主要 ...

  8. layui table数据表格中数据返回成功,但页面不显示数据内容问题

    layui table数据表格中数据返回成功,但页面不显示数据内容问题. 这是我做毕业设计的时候自己遇到的问题,后来查看了网上的一些技术贴子而得到解决,所以便想总结一个大概的方法,供大家参考! 一般导 ...

  9. 海康威视的视频如何显示在web页面上显示

    我的qq 2038373094 我做的是微信小程序.网站.手机app,后端java+前端vue.bootstrap框架.原生的html+css+js都会 做过律师在线咨询系统.共享农场手机app.在线 ...

最新文章

  1. 微信和html5的使用感觉,微信小程序和HTML5相比有何不同呢?
  2. java记事本复制粘贴_Java Swing 如何实现记事本中“编辑”菜单下的 剪切,复制,粘贴,删除,全选 功能...
  3. 《Python编程从入门到实践》记录之第4章 列表操作——列表遍历、列表切片、列表解析、元组、range函数(思维导图)
  4. 分级时间轮优化普通时间轮定时器
  5. 成都电子神技大学模拟题(取模运算)
  6. Leetcode刷题笔记(部分非原创)(1-20题)
  7. 【物理应用】基于matlab GUI工程供配电系统【含Matlab源码 1051期】
  8. 免费学plc的手机app_PLC学吧APP
  9. 资料:高等数学学习笔记——高等数学(二)学习笔记汇总
  10. IDEA - 如何安装Statistic代码统计插件?
  11. 无主3局域网找不到服务器,无主之地3局域网模式设置方法攻略 无主之地3局域网怎么用...
  12. 【阅读笔记】使用决策树预测泰坦尼克号幸存者实例 - scikit-learn机器学习
  13. python input获取多行文本
  14. 电脑上复制、粘贴及剪切功能用不了是什么原因
  15. 教你免费使用论文检索网,轻松下载
  16. 成都市二手房行情分析
  17. python网络安全论文题目_自动化毕业论文题目119个免费参考
  18. 简单静态web页面+动画(小案例)
  19. unity ugui image组件ngui uisprite 对称显示功能
  20. python常用接口调用

热门文章

  1. c++ skia 判断jpg图片是完整的_python处理图片入门级
  2. 链表的基本操作 java_详细实现单链表的基本操作【Java版】
  3. python是属于it界吗_转行IT行业,Python是不是一个好的选择?
  4. java contains_Java常用测试框架大全,不要只会Junit
  5. 计算机关机后自行启动,电脑关机后自动开机
  6. mysql online ddl和pt_MySQL变更之:Online DDL 和 PT-OSC 该选谁?
  7. mysql_sed_使用sed提取mysql备份的一行部分
  8. hadoop的idea连接配置_idea远程连接hadoop(macOS)
  9. 卡内基·梅隆大学计算机科学系主任周以真的父母是中国人吗,一篇是王飞跃等人翻译的美国卡内基梅隆大学计算机科学系主任.PPT...
  10. codeforce 272B Dima and Sequence