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

2023-11-19

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

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

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

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • AtCoder Beginner Contest 169 B Multiplication 2 long long竟然不够用

    AtCoder Beginner Contest 169 比赛人数11374 比赛开始后15分钟看到A题 在比赛开始后第20分钟看到所有题 AtCoder Beginner Contest 169 B Multiplication 2 lo
  • OpenGL ES 2.0升级到3.0配置win32环境以及编译所遇bug

    安装win32平台的OpenGL ES 3 0模拟器 一 安装3 0模拟器 一般用32位的 https developer arm com products software development tools graphics devel
  • ctfshow-网络迷踪-初学再练( 一座雕像判断军事基地名称)

    ctf show 网络迷踪第4关 题目中只有一座雕像 需要根据雕像提交军事基地的名称 推荐使用谷歌识图 溯源到一篇博客 答案就在文章标题中 给了一座雕像 看样子不像是国内的风格 扔谷歌识图找找线索 访问谷歌识图 根据图片搜索 https w
  • kubernetes常见异常处理

    一 kubernetes常见Pod异常状态的处理 一 一般排查方式 无论 Pod 处于什么异常状态 都可以执行以下命令来查看 Pod 的状态 kubectl get pod
  • 拉格朗日乘数法

    拉格朗日乘数法
  • attention(注意力机制)原理和pytorch demo

    目录 说明 RNN的局限性 注意力机制原理 注意力机制实现 第一步 编码 第二步 第0次打分并解码 第三步 第1次打分并解码 Demo链接和结果分析 总结 改进 说明 demo源自吴恩达老师的课程 从tensorflow修改为pytorch
  • Selenium成长之路-01如何开始学习

    为什么最近要写selenium 是因为最近有不少同事问我关于selenium的问题 所以觉得有必要来写一篇selenium 从环境搭建到框架构成都写出来 也分享一下我的selenium的点点经验 有不足之处 欢迎吐槽 学习selenium之
  • 区块链技术是如何应用到版权维护上?

    随着视频和音乐行业的迅速发展 数字出版已经形成完整的产业链 带来一些可观的收入 但是也伴随侵权的现象发生 那么区块链技术怎么运用到作品版权保护上呢 1 时间戳 我们知道区块链有一个 时间戳 这个可信时间戳由权威机构签发 能证明数据电文在一个
  • 我的百度经验目录

    百度经验目录 进一步了解基于Mathematica的图像特征检测方法 http jingyan baidu com article a501d80c44a372ec630f5eb4 html 怎么把python代码打包成exe文件 http
  • Obsidian入门

    这里讲一下Obsidian 一款支持markdown语法的笔记软件 软件上手没有难度 会基本的markdown语法可以直接使用 但是Obsidian第三方库插件社区提供了近千种插件以及各种各样的主题 可以帮助用户更好的使用它 相信很多人都跟
  • Python 导出保存 MongoDB上数据到Excel(.xls和.csv)文件

    Python 中使用MongoDB存储数据 若需要导出数据到文件 可以使用pandas或xlwings导出到Excel xls和 csv 文件 本文主要介绍Python 中导出保存MongoDB上数据到Excel xls和 csv 文件的方
  • CVPR17(backbone) - ResNeXt : 引入网络设计中的新维度cardinality

    文章目录 原文地址 论文阅读方法 初识 相知 回顾 代码 论文全称 Aggregated Residual Transformations for Deep Neural Network 原文地址 原文地址 论文阅读方法 三遍论文法 初识
  • 《一个操作系统的实现》读书笔记-- 第一章--最小的“操作系统”

    一 最简单的 操作系统 最最简单的 操作系统 就是一个最最简单的引导扇区 Boot Sector 虽然它不具有任何功能 但是它却能够直接在裸机上运行 不依赖其他软件 一个引导扇区是512个字节 并且以0xAA55为结束标识的扇区 下面就是那
  • EIoU和Focal-EIoU Loss

    1 论文 论文题目 Focal and Efficient IOU Loss for Accurate Bounding Box Regression 2 引言 CIoU Loss虽然考虑了边界框回归的重叠面积 中心点距离 高宽比 但是其公
  • 第一章:宇宙第一IDE--Visual Studio

    数据结构 是指一种计算机存储 组织数据的方式 IDE Integrated Development Environment 的缩写 表示 集成开发环境 它是一种用于提供程序开发环境的应用程序 一般包括代码编辑器 编译器 调试工具和图形化用户
  • Java调用exe程序

    String exePath D Xftp6 Xftp exe BufferedReader br null BufferedReader brError String line null try String cmd D Xftp6 Xf
  • MATLAB函数句柄

    1 何为函数句柄 函数句柄也是MATLAB中的一种常见的数据类型 它的地位类似于其它计算机语言里的函数对象 Javascript Python 函数指针 C 或者函数引用 Perl 它的作用是将一个函数封装成一个变量 使其能够像其它变量一样
  • 【NLP】自然语言处理技术在自动生成足球比赛战报上的应用

    1 背景介绍 自动生成新闻看似是一个很成熟的技术 很多年前就有各种应用 但是深入了解后我们可以发现机器自动生成的文章一般都是复述一些数字和简单的趋势变化 所以自动生成新闻的技术广泛应用在金融 体育领域 原因就是这类报道需要基于一定的事实 而
  • 模型调参之网格搜索与随机搜索

    模型调参之网格搜索与随机搜索 网格搜索法 GridSearchCV GridSearchCV GridSearchCV可以拆分成GridSearch和CV两部分 即网格搜素和交叉验证 GridSearch系统地遍历多种参数组合 通过交叉验证
  • 一文讲透彻!RobotFramwork测试框架教程(全能)

    Robot Framwork在业界早已名声大振 有很多刚学自动化测试的伙伴问我 有没有不需要编程就可以玩自动化的方法 有吗 有的 Robot Framwork 我们今天就一篇文章 把它讲得明明白白 一 Robot Framwork简述 Ro