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

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.kler.cn/news/364749.html

相关文章:

  • Java 代理模式详解
  • 中小企业设备资源优化:Spring Boot系统实现
  • Node + HTML搭建自己的ChatGPT [基础版]
  • ubuntu 用 ss-tproxy的内置 DNS 前挂上 AdGuardHome,AdGuardHome实现的DHCP和DNS 去广告
  • COVON全意卫生巾,轻薄透气,绵柔速干,马来西亚热销中
  • uniapp微信小程序使用vant组件库
  • 最新PHP网盘搜索引擎系统源码 附教程
  • 微信小程序自定义分享按钮
  • Pandas 文件读取与保存指南:高效处理 CSV、Excel 等多种格式数据
  • C# 使用Dll的几种方法举例
  • Linux中查询Redis中的key和value(没有可视化工具)
  • Java【多线程】单例模式
  • 网络安全资源导航
  • pycharm 中提示ModuleNotFoundError: No module named ‘distutils‘
  • 啊!?异常重启竟然是KV惹的祸!快来看看怎么回事?
  • 红队攻防 | 凭证获取的10个方法,零基础入门到精通,收藏这一篇就够了
  • locust断点调试(pdb)
  • Linux 字符设备驱动 之 无法归类的《杂项设备驱动》
  • @SpringBootApplication
  • CSS揭秘:7. 伪随机背景
  • Sigrity Power SI Model Extraction模式如何提取电源网络的S参数和阻抗操作指导(一)
  • java脚手架系列10-统一缓存、分布式锁
  • 怎么做系统性能优化
  • WPF:Binding数据绑定
  • 接地电阻柜的生产流程
  • java项目之电影评论网站(springboot)