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

Robot Framework自动化测试全面指南
本文深入介绍Robot Framework,一个基于Python的开源自动化测试框架。文章涵盖了RF的工作原理、功能、特性,以及环境搭建、接口自动化、Web自动化和App自动化的实现。适合初学者和有一定基础的测试工程师学习。
部署运行你感兴趣的模型镜像

阅读本文大概需要 10 分钟,文末有福利。

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官网下载: https://www.python.org/

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

pip install robotframework 不兼容Selenium2Library,已经使用robotframework-browser测试库
pip install robotframework==3.1.2支持selenium2Library![在这里插入图片描述](https://img-blog.csdnimg.cn/20201218141651792.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNDM0MzE4,size_16,color_FFFFFF,t_70)

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 .

七、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

需要更多往期教程

安装包以及录制好的原创视频教程公众号【程序员阿沐】

愿你我相遇,皆有所获! 欢迎关注微信公众号:程序员阿沐

1.免费领取一份216页软件测试工程师面试宝典文档资料。

2.软件测试学习路线以及相对应的视频学习教程免费分享!

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

RobotFramework⽤法总结 ⽤法总结 今天总结下Robot Framework最基本的⽤法,⼀来呢,希望⾃⼰以后看到这篇总结,很快能回忆起如何使⽤Robot Framework。⼆来呢, 以初学者的姿态总结Robot Framework,希望帮助到刚⼊门,却⽆从下⼿的新⼿们,毕竟⽹上很多资料可能是⼀些⼤神整理的,跳跃性很 ⼤。 ⽬录 ⼀,环境的搭建 关于robotframework环境搭建请参考笔者的另外⼀篇博⽂: ⼆,最基本流程 2.1创建项⽬New Project File->New Project 注:选择directory原因是,在directory的项⽬下可以创建测试套件,如果是tpye为file,则只能创建测试⽤例,这不利于⽤例的管理。 2.2创建测试套件New Suite 右键项⽬Test,点击New Suite。 注:选择file原因是,在file的测试套件下可以创建测试⽤例,如果是tpye为directory,还得重新再继续建file的测试套件,才能创建测试⽤ 例,因为测试⽤例只能在file类型下创建。 2.3创建测试⽤例New Test Case 右键测试套件,点击New Test Case。 最终页⾯显⽰ 三,Ride各个⾯板说明 3.1测试套件⼯作区说明 3.1.1测试套件Edit区 ⼤体分成4个部分。 (1)加载外部⽂件 Library:加载测试库,主要是[PYTHON⽬录]\Lib\site-packages⾥的测试库。具体操作可查看博⽂下⽅的""。 Resource:加载资源,主要是你⼯程相关的资源⽂件。具体操作可查看博⽂下⽅的""。 Variables:加载变量⽂件,不怎么⽤,可暂时忽略。 (2)定义内部变量 Add Scalar:定义变量。 Add List:定义列表型变量。 Add Dict: (3)元数据定义 Add Metadata:定义元数据。 (4)settings ⼀般settings是隐藏的,点击settings按钮,则会显⽰。 Documentation:⽂档,每⼀项都有。可以给当前的对象加⼊⽂档说明。 Suite Setup指的是测试套件启动的时候就执⾏某个关键字。(例:我在Suite Setup设置了Sleep " 5sec,表⽰等待5秒,要注意关键字的参数 要使⽤ " 分隔) Suite Teardown指的是测试套件结束的时候就执⾏某个关键字。 Test Setup指的就是案例启动的时候执⾏某个关键字。 Test Teardown指的就是案例结束的时候执⾏某个关键字。 Test Template:测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模版,这样所有的TestCase就只需要设置这个关键 字的传⼊参数即可。 Test Timeout:设置每⼀个测试案例的超时时间,只要超过这个时间就会失败,并停⽌案例运⾏。这是防⽌某些情况导致案例⼀直卡住不 动,也不停⽌也不失败。 Force Tags:在⽂件型Suite这⾥还可以继续给⼦元素增加Force Tags,但是他不能删除⽗元素设置的tags。 Default Tags:默认标记,其实和Force Tags没啥区别的。 Arguments:传⼊参数。 Return Value:返回值。 3.1.2测试套件Text Edit区 测试套件测试⽤例⽂本信息。 3.1.3测试套件Run区 Execution Profile:选择运⾏⽅式,⾥⾯有pybot、jybot和custom script。默认pybot即可。 Start:运⾏案例。若该测试套件下的测试⽤例前⽆勾选,则默认执⾏该测试套件下所有的⽤例。若测试⽤例勾选,则执⾏该测试陶见下勾选 的⽤例。 Stop:停⽌案例。 Report和Log: 报告和⽇志,要运⾏之后才能点击。他们的区别,报告更多是结果上的展⽰,⽇志更多是过程的记录,更多使⽤的还是⽇志。 Autosave: ⾃动保存,如果不勾选,在修改了案例之后如果没有保存的话,运⾏案例时会提⽰是否保存。勾选则在运⾏时⾃动保存了。 Arguments: pybot的参数(或者jybot等)。完整版的参数可以在doc命令⾏输⼊pybot.bat --help Only Run Tests with these Tags: 只运⾏这些标记的测试案例。在case的setting⾥可以添加tag。 Skip Tests with these Tags: 跳过这些标记的测试案例。在case的setting⾥可以添加tag。 3.2测试⽤例⼯作区说明 3.2.1测试⽤例Edit区 (1)settings Documentation:⽂档,每⼀项都有。可以给当前的对象加⼊⽂档说明。 Setup指的就是案例启
Robotframework⼊门教程(⼀) 最近⼯作中⽤Robot Framework框架来做⾃动化,所以,花时间学习了⼀下,⽹上好的⽂档不多,⼤多都是复制粘贴如何安装环境。要么就是介绍了⼀堆RIDE 的界⾯,活活把这么强⼤的⼀个⼯具成了个photoshop,我⽬前⽤了1个多⽉,这个⼯具很强⼤,简单写两句。 ==安装== ⾸先其实RIDE是个好⼯具,但是安装起来真⼼费劲,当时我的MAC上安装的时候google了两天,⼀个问题接⼀个问题。 我这边呢就不⽤RIDE了,想⽤呢⾃⼰想辙安去。 安装命令: pip install robotframework ==第⼀个testcase== RF的特点什么的就不多说了,⽹上有的是,撸起袖⼦就是⼲。 新建demo.robot⽂件,内容如下。 *** Test Cases *** First Case Log Hello World! warn Second Case ${res} Evaluate 1+2+3 Should Be Equal ${res} 6 Third Case ${res} Evaluate 'i'*3 Length Should Be ${res} 运⾏ robot demo.robot。将得到如下 上⾯的例⼦有三条case,第⼀条调⽤内置关键字Log, 第⼀个参数是"Hello World! " ,第⼆个参数是"warn"。就是简单打印⼀条log,后⾯的是log的等级,默 认输出info以上的log到console,截图中可以看到first case中打印了 Hello World!等级为WARN。 第⼆条case,调⽤内置关键字Evaluate,参数是"1+2+3",结果赋值给变量res(RF的语法是⽤$和⼤括号代表标量变量,还有其他类型的变量以后再说)然后调 ⽤Should Be Equal校验结果是否等于6,因为默认是字符串格式,所以second case 执⾏结果是FAIL。 第三条case,和第⼆条类似,同样调⽤Evalutate 赋值给变量res为"iii",校验变量长度为3,执⾏结果为PASS。 最后三⾏显⽰这次执⾏结果⽣成的⽂件,output.xml,log.html,report.html。打开log⽂件如下,结果报告有什么优点就不说了,⾃⼰去看。output.xml先放放以后 再说。 前⾯说过RF中默认的都是格式是String,那么怎么给关键字传其他的类型,答案是⽤变量。修改second case如下: Second Case ${res} Evaluate 1+2+3 Should Be Equal ${res} ${6} 再次执⾏robot demo.robot 这次的结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值