当前位置: 首页 > news >正文

Robot Framework实战

自动化测试框架如何选型?不同的框架使用场景与优劣势如何?Robot Framework如何写关键字?如何构建PageObject模型?如何进行后续的CI/CD等自动化工作?本文由小米视频高级测试开发魏航在公益讲座中分享的《Robot Framework实战》整理成稿。以下是正文:

今天为大家分享的内容是Robot Framework从入门到实践的整个过程,首先会简单为大家介绍一下自动化测试框架,包括框架选择、环境搭建、接口自动化等,最后会带大家实际操作一遍,下面就让我们一起进入正题。

首先简单介绍一下,为什么要做自动化测试?我总结了3点:

1.减少人力成本自动化测试可以更好地利用无人值守的时间,去更频繁地执行测试。

2.完成大量重复性工作自动化测试可以替代大量重复性操作,可以把更多的时间花在更全面的用例设计和新功能的测试上。

3.提高测试效率自动化测试可以大幅提升回归测试的效率,包括对E2E用例的观察。

自动化测试框架选型

接下来我们一起来分析一下市面上比较流行的自动化测试框架。

(可私信我获取公益直播回放,查看详细解说)

Robot Framework环境搭建

下面我们一起看一下Robot Framework环境搭建的过程。

因为Robot Framework是基于python的,所以首先要安装python的环境,需要安装3.7及以下版本,因为我们在实践中发现Robot Framework对3.8及以上版本的兼容性有问题。

第二步,安装Robot Framework框架,通过pip去安装就可以,它是python自带的安装软件包的命令。

第三步,安装wxpython,图形化的界面是基于wxpython的,所以要安装一下wxpython。

最后,安装robotframework-ride,这个ride就是Robot Framework编写用例的图形化界面。

装完环境之后,我们还需要装一些依赖。

我们常用的接口依赖有以下这四个:requests库、RequestLibrary (封装的http)、 DatabaseLibrary(操作数据库)、RedisLibrary(操作redis),都是在Robot Framework中直接导入库名就可以了。

大家可以看到,这些常用的依赖都有非常丰富的第三方依赖库去帮助我们使用的。接下来我们一起来看一下UI相关的依赖。

根据浏览器不同,需要选择对应的浏览器驱动,选择浏览器驱动时要对应浏览器版本,我们常用的一般有火狐、Chrome和微软的Edge。

1)Mozilla GeckoDriver(Firefox) https://github.com/mozilla/geckodriver/releases2)Google Chrome Driver https://sites.google.com/a/chromium.org/chromedriver/ https://chromedriver.storage.googleapis.com/index.html?path=2.28/3)Microsoft Edge Driver(IE) https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/与此同时我们还需要安装Selenium2Library库也是直接导入库名Selenium2Library就可以了。

下面简单给大家讲一下导入Robot Framewor库的步骤,在后面带大家实战演练的过程中也会使用到。

在下图的右侧,我们可以看到有一个Library按钮,点击之后,会弹出下图所示的框,需要我们输入要导入的库名。库名的输入要正确,需要区分大小写。点击OK之后,如果字体是黑色的,说明导入成功。如果字体是红色的,需要排查一下是依赖的问题,还是我们输入的问题。

导入之后,我们可以查看一下,我们导入的关键字有哪些。快捷键是F5,当我们按F5之后,会弹出如下图所示的提示框,可以查阅关键字。

接下来我们讲一下目录层级结构。最外层是项目名称,二级目录是TestSuit测试套件,也就是我们所说的测试用例,测试用例下面又分了接口、UI等。再往下就是Keyword(关键字),再往下还有一些我们用例中可能会用到的参数。

前面为大家讲了一些依赖的安装、环境的安装,这里我们也为大家整理了一份安装的说明,有需要的朋友可以私信我获取。可私信我获取直播回放链接,查看详细解说。

Robot Framework命令

接下来我们再一起看一下Robot 有哪些命令。先来看这一条:robot -d xxx(报告地址) xxx(用例地址)

这一条的意思是我们通过调robot的指令就可以去执行自动化测试,第一个参数是你要生成的报告的地址在哪,第二个是你当前编写的.robot的文件用例放在哪。

robot –h(robot --help)帮助命令,通过这个指令我们可以看到常用的参数有哪些。

1. -i --include tag *通过标签控制测试执行范围,可以使用 AND,OR,NOT 操作符

-- include B0-Single-API-i B0-Single-APIANDB1-stock-center

2. -e --exclude tag *通过标签控制测试不执行范围

--exclude tag1-e tag2

......

回放视频中有针对这些指令的演示,可私信我获取直播回放链接。

Robot Framework Tag的运用

接下来我们一起看一下Tag的运用:1、合理使用标签可以提升测试报告可读性2、使用标签可以对用例进行筛选调试

第一条很好理解,我们在生成报告的时候,测试报告可以根据Tag去进行分类,后面的实战演示中也会跟大家一起去看一下测试报告是什么样的。第二条讲的是,如果我需要对一部分用例进行调试,这时候就可以通过标签的方式去进行筛选调试。

接下来我们一起看一下标签在哪里打。通过下面的截图我们可以看到,如果你在suite下面,所有的测试用例都被打上Force Tags标签,如果在Testcase用例层级,那就是只针对当前用例打标签。

接口自动化测试案例

下面我们再看一个接口自动化的例子。接口自动化步骤:

1、发送请求 通过RequestsLibrary类库中的post request关键字发起HTTP请求,如下图所示

2、解析结果 通过解析接口返回的状态码或者其他字段

3、验证结果 通过接口解析字段值结果与预期结果相比较

大家都知道,接口测试其实就是HTTP请求,大家可能也会通过postman之类的工具去发起请求,一个正常的请求需要包含哪些内容呢?首先会有一个url地址,还有一些header信息、参数等。

从上面的截图中我们可以看到,先生成一个header,然后再定义一个别名,通过post或get请求去执行这个http请求,会有一个返回值,我们对这个返回值进行校验,如果解析出来的结果状态码是符合我们预期的,结果和我们的预期结果相比较是一致的,代表这个接口自动化测试就通过了。

上面这个截图是我们之前的一个项目,我们可以看到,经过各种封装之后,目录层级就会变得比较多了。关键字分为接口请求的关键字、断言的关键字、包括一些初始化的关键字,还有一些公共的关键字。公共的关键字里面可能会去做一些redis、mysql之类的封装,它本身是提供这些能力的,但是可能需要我们每一步都重新配置一下,如果把它配置出来,封装成一个关键字,就可以更方便的供我们使用了。

后面的内容是实战演示,可私信我获取直播回放链接。


http://www.mrgr.cn/news/58471.html

相关文章:

  • Linux可分配内存和空闲内存
  • 纯css实现瀑布流! 附源码!!!
  • EasyExcel文件导入与导出
  • 高效设备管理:中小企业的Spring Boot解决方案
  • 基于物联网、大数据、人工智能等技术开发的Spring Cloud 智慧工地云平台源码,支持多端应用
  • python支付宝支付和回调
  • 使用 Kafka 和 MinIO 实现人工智能数据工作流
  • 反悔贪心学习笔记[浅谈]
  • Java多Module项目打包
  • 第一单元历年真题整理
  • Linux中查询Redis中的key和value(没有可视化工具)
  • C++常用函数定义解释
  • HBuilder X 中Vue.js基础使用->计算属性的应用(三)
  • 大数据环境下的数据清洗技术研究
  • 广告变现:2024年全球四大热门聚合广告平台
  • 什么是高存储服务器,有哪些优势,如何选择?
  • 数据挖掘:基于电力知识图谱的客户画像构建实施方案
  • 助力FP商家躲过审核机制,规避封号风险
  • 光影交织,文旅融合:开启城市新风尚
  • csdn要打开或者无法刷新内容管理,文章无法发布或者未保存成功(服务器超时)-->先保存在自己的电脑里
  • Android Navigation传递复杂参数(自定义)
  • 台达A2伺服
  • 提升海外直播画质的关键因素与解决方案
  • 国产标准数字隔离器的未来---克里雅半导体
  • vue 表单页面validate验证重置
  • leetcode-73-矩阵置零