7种前端自动化测试框架,到底谁是No.1
7种前端自动化测试框架,到底谁是No.1
互联网时代,我们对web前端进行测试,不应该只关注其功能是否实现,还有其它更多的测试内容,如样式是否符合预期、交互是否流畅、应用是否安全等各个方面。
前端自动化测已经成为web自动化测试中的终极目标和追求,但目前市场上层出不穷的前端测试框架,往往让人眼花缭乱。下面说一说,前端自动化测试框架的对比,以及初阶选择推荐。
框架对比
前端自动化的流派主要分为3类:基于录制回放技术的自动化测试框架,基于对文档对象模型 (DOM)对象进行解析的自动化测试框架,以及基于图像识别的自动化测试框架。
1、基于录制回放技术的自动化测试框架
基于录制回放的方法大多是通过记录测试人员的操作行为以及记录被操作的屏幕坐标来开发用例。
该方法操作简单,学习成本低,对于前端知识储备不够充分的人员来说,上手很容易,方便没有代码基础的测试工程师进行自动化测试。
但该方法仍存在自己的缺点,如:当应用发生一点小修改,对象定位的属性发生改变,将使得录制好的脚本无法使用。常见的基于录制回放技术的自动化测试框架有UI recoder,Selenium ide等。
2、基于对文档对象模型 (DOM)对象进行解析的自动化测试框架
目前,主流的前端自动化测试框架是基于文档对象模型 (DOM)对象进行解析。
同样该方法也存在和录制回放相同的问题,一旦前端元素布局放生改变,测试脚本就可能失效,自动化脚本就要重写,且该方法是还受特定平台的限制。
常见的基于文档对象模型的自动化测试有基于Selenium自编程序和自写的js测试程序等等。
3、基于图像识别的自动化测试框架
基于图像识别的自动化测试,算是近年来“异军突起”的“非主流”。
它是通过类似图像识别的原理进行自动化操作的,测试不易识别或无法定位的对象,比如map 、Flash和图表等。同前两种方法对比,该方法不受目标前端代码修改的影响,即使目标前端代码发生改变,也无需担心。
但是,该方法受制于图片清晰度、屏幕分辨率等影响,要求图片匹配区域的大小和样式不能有丝毫变化。所以,一旦屏幕分辨率、浏览器缩放等,导致图片区域的大小发生变化,该方法的测试脚本就会失败。常见的框架有Aritest,sikuli等。
如下图1所示,为常见的前端测试框架对比:
图1 多种框架对比
如何选择
对于前端自动化测试初级人员来说,尽管基于录制回放技术的测试框架存在各种问题,本身并不完美,但仍不失为前端自动化测试学习和测试初期的一个高性价比选择。它可以使得测试人员在测试过程中,学习前端知识,通过测试代码的学习了解元素定位方法等等。
而在本文介绍中,笔者选择使用Selenium ide而放弃UI Recorder的原因很直白:后者开源贡献力后期不足,存在的bug无法得到及时修复,在安装环节就几次让笔者试图放弃。相反,Selenium ide作为一个比较成熟的插件,安装方法简单,使用方便。
Selenium ide是一款基于Selenium驱动的可视化界面编辑插件,可以提供给用户快速录制、回放,多种语言(python、java、c#、ruby等)导出测试脚本等功能。并且具有支持firefox和chrome主流浏览器,id、css、xpath等多种元素定位,用户代码扩展等能力。虽然不支持ie浏览器,但在前端自动化测试初期,表现也无伤大雅。
Selenium ide官方文档页面:https://www.Selenium.dev/Selenium-ide/docs/en/introduction/getting-started
1、Selenium ide安装方法
1)下载Selenium ide插件
下载网址:https://www.crx4chrome.com/crx/77585/
2)添加chrome扩展程序
将下载的crx文件,更改后缀名为.rar并解压。然后打开chrome://extensions/,点击“加载已解压的扩展程序”选择解压的文件夹即可。
3)启动Selenium ide插件
点击chrome扩展程序的Selenium ide图标即可。
2、Selenium ide使用
Selenium ide使用方法,点击录制即可生成测试脚本,点击回放即可完成回归测试。网上初级教程很多,不再举例,贴图笔者的一个case某段截图。
图2 某case截图
Selenium ide生成测试代码之后,可以根据用户需要导出python、java等语言的测试脚本,方便用户学习和修改测试代码。且Selenium ide导出的测试代码还可以与Robotframework等自动化测试框架结合,进行更深层的编程和测试,为用户提供更高阶的前端自动化测试。
如何结合
Robotframework的第三方的库Selenium2Library提供了丰富的关键字(如open browser,click element,get location等等)给用户,以实现可以前端自动化测试。
但在使用过程中,对于前端知识不甚丰富的测试人员而言,经常会在寻找元素、定位元素时遭遇“滑铁卢”,使得测试脚本编写变得困难。且Robotframework为关键字驱动框架,将录屏后的文件当作整体关键字使用,可以方便用户专注业务层逻辑测试,在底层关键字修改和自动化测试集成方面都能更加方便。
因此,将Selenium ide与Robotframework结合使用,不失为一种快速学习、加快测试的好方法。
1、使用Selenium ide录制
使用Selenium ide进行录制,会自动生成测试语句(具体使用方法不赘述)。
2、导出测试脚本为python文件
点击“Test suites”>“Export”选择导出为Robotframework支持的python语言格式,导出界面及导出后脚本如下图所示:
图3 测试集导出
图4 导出的python脚本
3、将python文件导入Robotframework使用
直接导出的python文件可能无法直接导入Robotframework中(导入失败会变成红色字体)。需要确保以下两点:
1)python文件名与class名一致,且首字母需大写;
2)同级目录存在__init__py文件。确保以上2点,即可进行导入。
打开robotfamework-ride,点击suite或test层的Settings>Library,选择2中导出的python文件(如本文中的Test.py),将它作为外源关键字在Robotframework中使用,导入成功为黑色,如下图所示:
图5 成功导入Robotframework中的Selenium ide导出文件
此时,在robotframwork中按F5键即可查看引入python文件中的关键字,如本文Test.py中的Setup Method、Teardown Method和Test关键字(与图4一致),本文使用录屏的关键步骤皆在Test关键字。
图6 导入的Selenium ide录屏文件关键字
加助教老师VX:xiaoxianchen89,回复:软件测试马上加入IT学习交流群,领更多软件测试学习资料
7种前端自动化测试框架,到底谁是No.1相关推荐
- 7种前端自动化测试框架
1.基于录制回放技术的自动化测试框架 UI recoder,Selenium IDE 2.基于对文档对象模型 (DOM)对象进行解析的自动化测试框架 基于Selenium自编程序和自写的js测试程序 ...
- 前端自动化测试框架cypress(一)
前端自动化测试框架cypress 自动化测试 为了保障软件质量,并减少重复性的测试工作,自动化测试已经被广泛运用. 自动化测试是一种测试方法,是指使用特定的软件,去控制测试流程,并比较实际结果与预期结 ...
- 前端自动化测试框架cypress
前端自动化测试框架cypress 自动化测试 为了保障软件质量,并减少重复性的测试工作,自动化测试已经被广泛运用. 自动化测试是一种测试方法,是指使用特定的软件,去控制测试流程,并比较实际结果与预期结 ...
- 前端自动化测试框架 Jest 极简教程
前端自动化测试框架 Jest 极简教程 Delightful JavaScript Testing. https://jestjs.io Jest是由Facebook发布的开源的.基于Jasmine的 ...
- webim 前端自动化测试框架
webim 前端自动化测试框架 文档 https://github.com/wytheme/wytheme.github.io/blob/master/raw/react-autotest.md 对应 ...
- 几种常见自动化测试框架
因为自己项目组所使用的自动化测试框架完全是自己开发的一套工具,语言也是不常用的TCL(基于C/C++开发).其也面临各种问题,因此想了解下广泛使用的测试框架,可能是自己没有接触过这些,暂时转点资料过来 ...
- 前端自动化测试框架Jest介绍和使用
在实际项目的自动化测试过程中,如果只有这两个方法,很显然,是远远不够的,这时候,就需要我们对之前的方法进行扩充,同时还有很多自动化的机制需要集成进去.这时候 Jest 闪亮登场! Jest 框架介绍 ...
- 前端js框架到底有哪些?
做前端开发的都知道3大框架:Angular,Vue,React.但是除了这三个框架以外的前端框架还有那些?他们在前端技术的发展中有什么样的作用?哪些网站还在用它们? 下面具体介绍下前端都有那些框架: ...
- 牛逼呀,前端自动化测试框架cypress
自动化测试 为了保障软件质量,并减少重复性的测试工作,自动化测试已经被广泛运用. 自动化测试是一种测试方法,是指使用特定的软件,去控制测试流程,并比较实际结果与预期结果之间的差异.通过将测试自动化, ...
最新文章
- Linux服务器部署ssl证书教程,linux服务器在wdcp面板安装ssl证书教程
- watchOS 5 新特性:继续发力运动与健身
- linux mysql 权限设置_Linux下mysql新建账号及权限设置
- Delphi 与 DirectX 之 DelphiX(77): TDIB.Distort();
- pytorch可视化 resnet50特征图
- java项目(java project)如何导入jar包的解决方案列表
- mysql主从同步监控小脚本(加强版)
- U盘病毒及其相关资源的分析(patch shell32.dll)
- python遇到‘\u’开头的unicode编码
- 数据-第16课-栈的应用实战二
- Java递归算法求n的阶乘
- 所有图形得面积和周长公式
- 南京旅游迈入大数据时代
- 计算机网络实训报告总结,学习计算机网络的实训总结
- Hazelcast IMDG参考中文版手册-第十一章-分布式查询
- 【大数据哔哔集20210124】有人问我Kafka Leader选举?我真没慌
- HTML之网页布局与设计技巧
- 【PHP】单词十以内的加法de多种解法
- [LOJ#6617][THUPC2019]摆家具(矩阵乘法 + 子集和变换)
- 网站快照异常预示网站优化有问题