一文讲透彻!RobotFramwork测试框架教程(全能)

news2024/11/14 6:35:34

Robot Framwork在业界早已名声大振!有很多刚学自动化测试的伙伴问我:有没有不需要编程就可以玩自动化的方法?

有吗?有的!——Robot Framwork

我们今天就一篇文章,把它讲得明明白白!

一、Robot Framwork简述

Robot Framework是一款python编写的功能自动化测试框架,支持python2和python3两个版本,是一款开源自动化测试框架,Robot意思是机器人,Framework意思是框架,合起来就是机器人框架,他安装之后,桌面是一个机器人图标,也就是我们经常聊起的自动化测试框架,很多人认为他是一个工具,其实不然。

工具:好比日常用的工具,螺丝刀,菜刀等等,他完成特定的功能,比较接口工具,他是专门用于做接口测试的,比如数据库连接工具navicate,专门用于连接数据库的。

框架:好比我们经常用的USB接口,你如果插入耳机,那么这个接口就用于听歌,如果你插入手机,那么就可以连接手机,如果你插入U盘,就可以传输文件,框架和工具的主要区别是,框架具有扩展性,他只是个架构,你通过架构可以开发出不同的功能,我们经常听的房子,你先建一个框架,至于你把哪些装修为厨房,哪些装修为主卧,客厅,看你需要来定制。

二、RF工作原理

我的理解如下:

Robot Framework是一个完全基于关键字测试驱动的框架,它即能够基于它的一定规则,导入你需要的测试库(例如:其集成了selenium、request、appium测试库,这个其实就是他的拓展性),然后基于这些测试库,你能应用HTML、TXT等文档形式编写自己的关键字(这些关键字即你的库组成),之后,再编写测试用例((测试用例由测试关键字组成)进行测试。

**关键字:**就是你导入的测试库的函数,其实你就是调用测试库里面封装的函数,组成你的自动化测试步骤,形成测试用例,需要有一点python函数基础,这个后续RF章节会重点讲解。

**运行原理:**框架首先解析数据、初始化数据。然后,开始解析用例文件,生成数据对象,数据对象中包含了测试集的各种数据,例如:测试用例集名称、各个测试用例名称、各个关键字名称等。

再将测试数据对象传送给测试集合类处理,生成测试集suite对象

然后,运行suite中的用例测试,它利用库提供的关键字与目标系统进行交互。库可以直接与系统通信,也可以使用其他工具作为驱动程序。

从命令行开始测试或任务执行。结果,您将获得报告并以HTML格式以及XML输出进行登录。这些提供了对系统功能的广泛了解

三、RF的功能

Robot Framework是为“测试"而生,他的目标人群是测试工程师,它的目标和使命注定了RobotFramework必须要简单/简洁/亲民/易懂,而这些Robot Framework都做到了,这使得RobotFramework推出之后,得以快速发展传播。

他生态链里面的测试库有的功能,他都支持,常用的UI、APP、接口自动化,包括连接数据库,操作linux等,都能实现。只要能开发测试库,或者安装官方的测试库就可以实现特定的自动化,因为这是一个自动化平台。

四、RF的特性

  • 重要特性之一是"Keyword-driven”(关键字驱动),keyword类似其他高级语言的函数,使得代码结构化和重复利用,对于我们懂代码的人来说,就是函数,就是方法

  • 测试用例使用文本文件(TXT或者TSV文件)保存,使用制表符分隔数据。可以方便的使用任何文本编辑器,或者EXCEL编辑测试用例。也可以使用HTML格式创建用例。

  • 测试用例中支持变量使用,可以使用IF语句和FOR循环语句。

  • 可以利用"标签"功能对测试用例进行分类和有选择执行。

  • 支持关键字驱动、数据驱动和行为驱动。

  • 利用已有的关键字,测试人员可以创建自己需要的关键字,对RF自动化进行二次开发,和功能定制,可以使用Python和java开发自己需要的测试库。

  • 测试执行报告和日志是HTML格式,容易阅读。

  • 提供了测试执行事件的监听接口,并且可以自定义接口中的脚本。例如,某个用例执行前,“start_test"接口中的脚本就会被执行;用例执行结束后,“end_test"接口中的脚本就会被执行。而测试人员可以自定义"start_test"、"end_test"这两个接口的脚本。

  • 提供了命令行接口和XML格式的输出。可以与版本管理工具结合,进行持续集成。

  • 提供了远程测试执行接口,可以进行分布式测试执行。

五、RF环境搭建

1、搭建RF自动化平台环境

1.python版本:3.7

python官网下载: www.python.org/

⒉配置python环境变量,在"我的电脑->属性->高级系统设置>环境变量->系统变量",找到path,然后点击编辑,在PATH里面添加python安装路径,如下图:

3.安装Robot Framework

pip install robotframework 不兼容Selenium2Library,已经使用robotframework-browser测试库
pip install robotframework==3.1.2支持selenium2Library。

4.支持python图形化界面,主要用来运行RIDEwxPython

pip install wxpython==4.0.4

5.安装可视化界面ride

pip install robotframework-ride

6.安装web自动化测试库

pip install robotframework-se1enium27ibrar

7.安装接口自动化测试库

pip install RobotFramework-requests

2、配置pycharm编辑环境

8.配置pycharm编写环境

1.File->Settings->plugins,点击plug插件搜索并安装Robot Framework Support插件,但是IntelliBot这款插件,最新更新时间还在2016年,近3年都没有在维护(注意!!!安装完成之后一定要重启pycharm)

2.重启pycharm

3.设置可以运行RF,File->Settings->Tools->External Tools,robot.exe

注意:

  • 1、选中关键字,按Ctrl+b可直接跳转到关键字的源代码当中去。

  • 2、没有robot关键字自动补全的机制。关键字名称需要自己查找。

  • 3、左侧Projects区域当中,没有可用关键字展示功能。

3、RF控制台中文乱码

修改

Lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py**

中565行将SYSTEM修改为OUTPUT,位置如图所示:

一般python安装路径存在中文文件夹的情况会出现:

Lib\site-packages\robotide\contrib\testrunner目录下testrunner.py中将latinl修改为mbcs。(mbcs为多字节字符集,会根据系统自动显示为对应的语言字符集,中文系统中展示GB2312)

**六、RF实现接口自动化

**

1.安装robotframework-requests

pip install robotframework-requests
'RequestsLibrary` is a Robot Framework test library that uses the Request HTTPclient .

pip install request

七、RF实现web自动化

pip2 install robotframework-selenium2 library

八、RF实现app自动化

1.下载SDK,JDK
2.配置SDK和JDK环境变量,在系统环境变量里面配置
1).必须添加ANDROID_HOME变量,值指向SDK的根目录
2).在path里面添加%ANDROID_HOME%\ too7s ;%ANDROID_HOME%\p1atform-too1s
只有配置好,我们才能用adb命令
3).配置JDK环境变量
3.安装Appium服务端和客户端
1).安装node .js:node-v6.11.2-x64 .msi
2).安装监听端: pip install Appium-Python-client
3).安装服务端: appium-desktop-setup-1.8.1.exe
如果报错安装: network4.5 : NDP451-KB2858728-x86-x64-All0S-ENU.exe
4).安装appium第三方库: pip install robotframework-appiumlibrary

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

 

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

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

相关文章

使用php语言抓取网站商品详情代码及解析效果展示

抓取网站商品详情需要使用爬虫技术&#xff0c;可以使用 PHP 的 CURL 库来发送 HTTP 请求&#xff0c;然后解析 HTML 页面&#xff0c;获取商品详情信息。以下是一个简单的示例代码&#xff1a; <?php // 定义要抓取的商品 URL $url "https://example.com/produ…

华为OD机试 JavaScript 实现【密码强度等级】【牛客练习题】,附详细解题思路

一、题目描述 密码按如下规则进行计分&#xff0c;并根据不同的得分为密码进行安全等级划分。 1、密码长度&#xff1a; 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 2、字母&#xff1a; 0 分: 没有字母 10 分: 密码里的字母全都是小&#xff08;…

执行修改方法返回值为0但是也没报错是什么原因

这篇文章仅仅记录 用springBoot加mybatis 搭建环境 一直没执行成功 百思不得其解 最后发现是controller中一个参数问题 一开始是这样 修改成这样就好了 数据库数据也能更新了 将param改成RequestParam 具体原因大家可以网上找找

jenkins显示gitlab的认证报错

描述 使用“List Git branches (and more)”功能&#xff0c;显示gitlab的分支或者标签。报错“org.eclipse.jgit.api.errors.TransportException: http://gitlab.test.com/userCenter/userCenterServer: not authorized” 排查与解决 使用的凭证再gitlab是Maintainer身份&…

c++ nlohmann/json

json为JavaScript object notation 是一种数据格式&#xff0c;逐渐替换掉了传统的xml 。json数据格式的属性名称和字符串值需要用双引号引起来&#xff0c;用单引号或者不用引号会导致读取数据错误。json的另外一个数据格式是数组&#xff0c;和javascript中的数组字面量相同。…

金融计量学第1节课:股指收益率序列统计特征

量化策略开发&#xff0c;高质量社群&#xff0c;交易思路分享等相关内容 导论与介绍 大家好&#xff0c;我是Le Chiffre 今天我们来为大家分享金融计量学系列内容&#xff0c;在松鼠量化3年多分享的内容中&#xff0c;大部分以量化策略为主&#xff0c;至今为止&#xff0c;…

EasyExcel导入导出

在项目开发中往往需要使用到数据的导入和导出&#xff0c;导入就是从Excel中导入到DB中&#xff0c;而导出就是从DB中查询数据然后使用POI写到Excel上。所以今天就为大家带来一款基于阿里EasyExcel的导入导出功能&#xff0c;开放了一个demo&#xff0c;以下是gitee地址&#x…

2.4 逻辑代数的基本定理

学习目标&#xff1a; 如果我要学习逻辑代数的基本定理&#xff0c;我会采取以下步骤&#xff1a; 1. 学习基本概念&#xff1a;首先&#xff0c;我会花时间了解逻辑代数的基本概念&#xff0c;如逻辑运算符&#xff08;合取、析取、否定等&#xff09;、真值表、逻辑等价性等…

Splashtop 与 Pax8 合作为 MSP 提供简化的远程支持解决方案

2023年4月27日 科罗拉多州丹佛 Pax8 是一个行业领先的云商务市场&#xff0c;该公司今天宣布将通过 Pax8 市场在全球推出其全新运营供应商 Splashtop。Splashtop 的远程访问、支持以及端点监控和管理解决方案极具成本效益&#xff0c;而且功能强大&#xff0c;可以助力托管服务…

Java使用JDBC连接PostgreSQL——使用maven,简单配置

目录 前置准备代码 前置准备 因为连接PostgreSQL需要先安装PG&#xff0c;所以以下给出PG的简单安装教程&#xff1a; window安装PostgreSQL 对应的建表语句&#xff1a; DROP TABLE IF EXISTS student; CREATE TABLE student (id serial NOT NULL,name varchar(100) NOT NU…

2023「光亚展」观察:规模空前,智能化趋势已势不可挡

6月12日&#xff0c;第二十八届广州国际照明展览会&#xff08;GILE&#xff09;及第二十届广州国际建筑电气技术展览会&#xff08;GEBT&#xff09;落下帷幕&#xff0c;共计汇聚了来自18个国家及地区的3,318家参展商&#xff0c;总展览面积达到了220,000平方米。 「智哪儿」…

ROS学习中遇到的问题以及解决方案

目录 问题1. 在使用xarco建立urdf时&#xff0c;运行joint_state_publisher/joint_state_publisher_gui报错问题2. 使用amcl定位时报No laser scan received警告&#xff0c; /scan 话题有数据&#xff0c;amcl也订阅了该话题。问题3. 运行.py文件报错问题4. 在roalaunch一个la…

Springboot整合Elasticsearch(一):Linux下安装 Elasticsearch 8.x

1、下载安装包&#xff0c;官方下载地址&#xff1a; Past Releases of Elastic Stack Software | Elastic elasticsearch-8.8.1-linux-x86_64.tar.gz 2、拷贝到 Linux 服务器上&#xff0c; 执行解压缩命令 安装包路径&#xff1a;/home/ELK_8.8.1 [rootlocalhost ELK_8.8.1]…

使用VNISEdit为PyQGIS程序制作一个安装包

引言 通常一个需要发布的程序都需要使用安装包进行安装&#xff0c;不可能给客户发送一套程序和依赖性文件&#xff0c;这样如果需要桌面添加软件的快捷方式&#xff0c;就得让客户自己添加&#xff08;因为每台电脑、每个用户的桌面路径是不一样的&#xff09;&#xff0c;非常…

改善客户体验是客户管理系统的重要价值

在如今竞争激烈的商业环境中&#xff0c;企业需要更好地了解客户需求、偏好和行为&#xff0c;以便提供更好的服务并保持客户忠诚度。这就是为什么越来越多的企业开始使用客户管理系统&#xff08;CMS&#xff09;来改善客户体验。 客户管理系统是一种专门设计用于帮助企业跟踪…

Day05 03-MySQL主从-主主原理与搭建详解

文章目录 第十六章 MySQL的系统架构&#xff08;主从架构&#xff09;16.1 MySQL集群架构的介绍16.1.1 主从架构介绍16.1.2 主从复制的原理 16.2 MySQL主从复制的实现16.2.1 环境说明16.2.2 主库配置16.2.3 从库配置16.2.4 主从复制测试 16.3 MySQL主主复制的实现16.3.1 主主复…

移植好U8g2图形库的STM32F407标准库工程模板,0.96寸OLED驱动程序

移植好U8g2图形库的STM32F407标准库工程模板&#xff0c;用的0.96寸OLED屏&#xff08;SSD1306&#xff09;&#xff0c;用硬件IIC驱动。 花了一晚上时间去移植。开发板主控MCU用的是STM32F407VET6&#xff0c;I2C接口用I2C1&#xff0c;SCL接PB6&#xff0c;SDA接PB7。 嵌入…

从分布式到微服务解密“架构”原理与实战笔记

分布式架构与微服务平台是当今IT界的关键技术&#xff0c;也是资深软件工程师和系统架构师必须掌握的核心技术。 微服务、云原生、Kubernetes、Service Mesh是分布式领域的热点技术&#xff0c;它们并不是凭空出现的&#xff0c;一定继承了某些“前辈”的优点。我们不仅要了解…

网络安全零基础之从原理看懂的XSS

01、XSS 的原理和分类 跨站脚本攻击 XSS(Cross Site Scripting)&#xff0c;为了不和层叠样式表(Cascading Style Sheets&#xff0c;CSS)的缩写混淆 故将跨站脚本攻击缩写为 XSS&#xff0c;恶意攻击者往 Web 页面里插入恶意 Script 代码&#xff0c;当用户浏览该页面时&…

软件测试将会赢来陌路?

最近参加了某大厂总监做的一场测试培训&#xff0c;感触颇深&#xff0c;一句话萦绕在耳畔“测试乃至测开&#xff0c;大厂为了降本增效这些都要被优化掉”。去年由他操刀优化了一大批优秀的测试员&#xff01; 实际小酋这几年已经有切身体会&#xff0c;测试野蛮增长的阶段已经…