■创新与实践
D01:10.19557/jki.l001-9944.2021.03.020
基于#图%别的UI(动化测试研用
余锦润,杨丹君,李波波
(浙江中控技术股份有限公司,杭州310053)
摘要:在软件测试领域,自动化测试的研究层出不穷,而新技术的发展,给自动化测试提供
了更多的方向,而UI自动化测试的需求更是繁多0该文从Electro*应用出发,针对界面元素
id无法提取的情况,设计并实现了一种位图识别的自动化测试方案,以Opencv的图像识别
算法为支撑,以Sikulix的库函数为底层驱动,应用Python+RF实现了各个模块的设计以及
整个测试框架集成°实验结果表明,元素识别率可以达到96.8%以上,在这种场景下是元素
id识别的完美替代,且丰富的API保证了复杂需求实现的可行性,通过项目的实际应用效果
以及输出的代码文档示例,证实了其应用价值°
关键词:自动化测试;%]'c n应用;0pe nc/;S12u&1x;图像识别
中图分类号:TP311.5文献标志码:A文章编号:1001-9944(2021)03-0090-05 Research and Application of UI Automated Testing Based on Bitmap Recognition
YU Jin-run,YANG Dan-jun#LI Bo-bo
(Zhejiang SUPC0N Technology Co.,Ltd.,Hangzhou310053,China)
Abstract:In the field of software testing, the research of automated testing emerges in endlessly.The development of new technology provides more directions for automated testing,and the demand of UI automated testing is more numerous.Starting from the application of electron and aiming at the situation that the ID of interface element can not be extracted, this paper designs and implements an automatic test scheme for bitmap recognition.Supported by the image recognition algorithm of opencv, driven by the library function of sikulix, the design of each module and the integration of the whole test framework are realized by python+RF.The experimental results show that the recognition rate of elements can reach more than96.8%.In this scenario, it is a perfect substitute for element ID r
ecognition, and rich API ensures the feasibility of implementing complex requirements.We verify its application value through the practical application effect of the project and the output code document.
Key words: automated testing;Electron applications;Opencv;Sikulix;image recognition
自动化测试是软件测试的一个重要分支,相对于手动测试而言,自动化测试是将人的测试行为通过代码框架转化成机器的测试行为,可用于各种测试范畴,主要强调的是通过工具结合自己的测试策略来辅助测试,可以全自动,也可以半自动,节省了大量的人力、时间和硬件资源,也同时了测试。一般来说,满足3个条件就可以对项目采取自动化测试叫软件动周期长、项目周期长、自动化脚本可以重复利用。
在自动化测试概念,敏捷大师Mike Cohn提出测试叫分自动化测试念,于的自动化测试念(于UI 的自动化测试,测试),分自动化测试
的。
收稿日期:2020-09-30"修订日期:2020-12-24
基金项目:工信部2018年工业互联网创新发展工程项目
作者简介:余锦润(1991—),男,硕士,研究方向为软件测试软件测试app
Automation&Instrumentation222",36(3)
UI层是用户使用产品的入口,在传统的测试模型中,大多数研发团队执着于通过UI进行全面的测试,甚至投入大量的人力成本进行手工测试,而自动化实现难度也极大"进行分层后,自动化测试的设计就有了针对性,也因此诞生了许多针对UI的测试工具和框架"本文主要研究了UI自动化测试的相关方法,结合Electron应用的测试难点分析了位图识Sikulix以及Opencv算法的,并进行自动化模的设计和工的实应用,朋了其实用价值。
1自动化测试的相关研究
在常规桌面客户测试中,市面上流行很多测试工具,发的UFT工具,商业软件Ranorex,了强大的,能
大部分测试要。在Web面测试中,大神器----ChromeDriver和WebDriverlO的支持,正因动,Web的自动化测试进行
有,和多框架相结合进行的测试需求定制,比如Selenium等。由于Web的流行,Electron应用程序也开始兴起,Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个
开源库。Electron通过将Chromium 和NoDe.js合行中,并将其打包为Mac,Windows和Linux系统下的应用,节省了的资源典针对于桌面的UI自化测试,主的于统框架的UI自动化测试和基于Spectron框架的UI自化测试。1.1基于传统框架的UI自动化测试
传统框架主要于API层面的对象和于图识的2。痞于API层面的于人员给出了式,测试操作精准,但从另角度说,消耗大量的人力和处理API;基于图片像识式主要通过对整面进行二进,类似于大多数测试工具中的-放功,但是样的缺陷更加明显,在辨率,不同浏览渲染式,坐标点引的偏移和失真,会导致识别出错,降低了可移植性%在一些高的录-回放功中,增加了元id识,但很多非常规应用,Electron加壳应用,或者修改过‘的应用,其元id是无识的%
创新与实践
1.2基于Spectron框架的UI自动化测试
上文提到Electron应用是Web加壳的桌面客户端形式的应用,会导致其Web元id被隐藏,常规的测试工具无识元id,官方给出了框架Spectron,通过JS语言进行测试代码的编写,可以调用WebDriverIO的API,但版本有限制%另面,Spectron专门针对Electron,无法作常规的测试工具,扩展性弱,使用JS语言,于Python础语言的测试人员而言,学习本也比较高%
1.3基于Sikulix框架的UI自动化测试
Sikulix是麻理工学院的,是一种全新的UI自化测试模式,俗称“上帝之”,完全模人的操作模式叫可用Opencv提供的图识进行可化和操作,相于
种框架,Sikulix的优势在于:①Sikulix由于其jar包的性,全可作API操作,用Python 调用可大型的测试;"Sikulix的图识可常规的-放工具元素id无识,辨率浏览器的渲染式,Sikulix去操作坐标点,图识精度可按照需求设,默认0.7,景的;#于UI自化测试,式的可扩展性
写本的性,大大降低了测试人员的手难度,使测试人员投入更多的去性测试%
2Sikulix+Opencv模型与算法介绍
Sikulix是Java行,本了
的IDE,了整的模测试人员的操作行,了实现更的测试,使用IDE,而应用Jython Python编写驱动模块,Sikulix的工作原理如图1%
Fig.1System framework of Sikulix
图1Sikulix系统框架
Java API
Java.awt.
Robot
Opencv
自动化与仪表2021,36(3)
■创新与实践.
可以看到,除了常规的J"V"和Jython支持外,最重要的一个底层驱动Opencv用于图像对比和图片匹配,Opencv是目前最流行的计算机视觉开源库,在人工智能领域应用完善。Opencv的图片对比指标主要有:①均方差MSE对比:将两张尺寸一样的图片的所有RGB三种颜的像素点进行一一对比;②峰值信噪比PSNR对比:将一张原图和一张压缩过的图片进行对比,用PSNR值表示其失真程度;
③结构相似性SSIM对比:于前两种指标是机过线性图片信,SSIM了人的特征,基于感知模型(然图像度结构化,像素点之间存在相关性),可结构信的差。SSIM主要3个模:结构、对比度和亮度,在本文中使用SSIM对比,其算流程图2所示⑸。
图2SSIM测量系统
Fig.2SSIM measurement system
将以3个模块的,得到SSIM 的表:
SS/#($,%)二%22"号%+c i)(2"$%&C2)
++'1)+'2" 2
式中:表示$的均值;表示%的均值;"$表示$ 2
的方差;"%表示%的方差;"$%表示$和%的协方差;
22
常数'1;((1L),'2;((2*)是为了避免分母接近0,其,*图像度!(*二2加数一1),(#1,默认为(<=0.01,(2二0.03。
Opencv的图片匹配原是在原图片中到一块与模板图片匹配的域,过动原图像进行比,将动的度值结图片,的值表示匹配度,的是匹配位置。Opencv通过M"tchTempl"te函数提供了6种匹配算,如表1所示。
用的是相匹配-归一化版本:采用模目标图片像素个图片的均值计算
表1Opencv匹配算法
Tab.1Matching algorithms of Opencv
算法枚举值区别
方差匹配
相匹配
相 匹配
方差匹配-
一
相匹配-归一化
相匹配-
一
CV_TM_SQDIFF
CV_YM_CCORR
CV_TM_CCOEFF
CV_TM_SQDIFF_NORMED
CV_YM_CCORR_NORMED
CV_TM_CCOEFF_NORMED
方差算一相
—相1
匹配,准确度由
低到,而计算复
杂度也相应,
在应用,常用
相匹配-
一,阈值
定更简单。
数量积,正值越大匹配度越高,范围为[-1,1),如果图片没有的特征,0,表示进行匹配。3UI自动化测试设计与应用
3.1系统结构的整体设计
针对UI的能,以本公司内部的Electron 应用 目标,了其完的能点,本文基于Opencv的图片识别匹配算法以及Sikulix 的库设计出如图3的结构图。
图3系统结构图
Fig.3Systematic structure diagram
前端UI事件在图片素材给的基础上,通过鼠标的点击,键盘的输以及快捷键,界面状态的,截图保存等,完一套UI自动的流程事件。
优化层在体流程无重大逻辑错误的基础上,对于素图片,过程图片,结果图片的匹配度有一个预先的阈值,因类型的截图,类型的域,匹配度尽相同,能一个匹配度用于所有情况,必须灵活。轮至少经过3
Automation&Instrumentation2021,36(
3)
次测试以确定阈值。只有当匹配度大于这个阈值 时,才能进行下一步操作。对于软件界面,有2种情 况,一种是软件界面被遮挡,导致识别不到相应图
片,解决方式是采用区域遍历的方式,搜索出遮挡
区域,确认存在遮挡后,将软件前置或者强制重启
(极端情况);第二种是软件崩溃情况,会弹出error
指示框,识别出指示框界面后,标记未通过测试,并 强制重启后进行下一个用例测试&
界面层与功能模块层这
于测试核
, 对 个界面 ,
个 能 的 操
作,完成了 UI 自动化 框架的编&其过图片 图片 是 自 ,对 能
的前后 图 , 相 度 于 定 的 阈 值,
UI 化 , 当 UI 化 时 ( 图 片
未变),会以自
图的形式 存 相应的路径中。
管理组件和运行环境本文使用RobotFrame
work 来管理整个测试工程以及用例的编写冋,主要
的三大 图4 示&其行
用Java
虚拟机,Sikulix 的函数库,Python 的第三方库。
/菜单栏---------1测试驱动—各个豐能件抉的—
v 画布面板
测试工程
J 测试用例一RF 编写的用例文件
厂基础图片素材
!_________. 一-操作过程图片素材
I 卑浮库■!——更新比对图片素材
、交互设计稿图片
图4测试工程结构图
Fig.4 Testing engineering structure diagram
根据以上方法,本文的具体实施测试对象是公
司内部的AppDev 前端程序,是一款使用Electron
的应用,图4 示的测试 以出:(1) 了测试 件,用
应用的 个 能 的 Python
,
栏、
操作
;
(2)
了测试用例文件夹,使用RF 统一
测试用例的 , 以 测试一 化 的 行;
(3) 了资源库文件夹,用来管理测试
过 用的图片 , 过 件,这也是
自动化测试必不可少的
&
一工具栏
—左右侧功能面板
创新与实践
整个测试工程搭建了之后,进行以下章节的对
比实验,并 了 。
3.2实验及结果分析
实验环境 DELL 5I20工作站,CPU Inter Xeon
3.20 GHz ,内存I G ,WinTowslO 64位中文版操作系
统,分辨率 1920*1010 以及 1210*1024
测试对象 Electron 应用
实验1 Opencv 算法的对比分析
上文提到, 用Sikulix+Opencv 图片识别和匹配算进行自化框架的集成&我们基于
Opencv 的SSIM 图片对比算法基础上,通过6种匹
配算法遍历匹配应用的126个图片元(未优化
匹配度),结果如表2所示&
表2匹配算法对比
Tab.2 Comparison of matching algorithms
算法匹配成功率/%
匹配耗时/s
平方差匹配
86.5
203相关匹配89.7248相关系匹配
96.8294方差匹配-归一化86.5152相关匹配-归一化
89.7176相关系 匹配-归一化
96.8208
从表中可以看出相关系数匹配法成功率最高, 但是耗时最多&而图片识别率是保证自化进行的 前提条件,因 用其归一化版,在降低一定耗
时量的同时,识别率不变&
实验2 流的UI 自动化测试软件对界面的
识别效果
本文的Electron 应用界面一共拥有126个可点
击以键盘编辑元素,UI 自动化测试的前提是能在 不同分辨率下识别这126个元,将 计的系
统方案 流的UI 自动化 进行对 ,并 增了不同分辨率以匹配度优化的 &
图5工具的元素识别数对比
Fig.5 Element recongnition number comparison of tools
从图5可以看出,Ranorex 和UFT 由于无法识
别到元 id ,而自带的位图识别功能效 不佳,导
自动化与仪表2021,36(
3)
■创新与实践.
致识别率很低。Spectron由于是官方提供的框架,能准确识别元素id,因此均能完整识别。而本文Sikulix方案,由于基于图片识别匹配,在匹配度没调整的,的,在匹配度优化后,能完全识别,进而可以满足UI自动化的功能测试要,,代码易读性方面均优于Spectron。
实验3与人工测试进行对比
自动工测的是,自动化可以别的测,工的忽。在RF框架的148测,图6,文版测
工测试,的时间,通过数,fail 率等,3。
Total Statistics Total Pass Fail Elapsed Pass/Fail
Critical'l'ests14813990:57:40
All Tests14813990:57:40
图6RF自动化测试结果
Fig.6RF automation test results
表3人工与自动化测试的效果比对
Tab.3Comparison of the effects of manual
and automated testing
测/(min)平均Fail/工测96142 6.25%自动测5713915.79%
从表3中分析可知,就冒烟测试而言,自动化测试发现bug率于人工,证明本文方案符合自动化测的率要。
综合以上实验结果,我们可以看出,本文结合Sikulix+Opencv的动,整个系统设计是可以满足测试要的,工在electron 应用的,低本的方法可以id元素识别,分辨率,UI等。在UI自动测,本方案度低,
展性强等优势,测能很快设计的测试框架,是一种实用性很强的方法。
4结语
本文从UI自动化测试出发,从Electron应用的角度思考,提简洁,的测
设计方案。研究Opencv图片识别和匹配算法, Sikulix的库函,得出相应的设计思路,并完整个测试系统框架的设计搭建。将本方案和常规工,从不的角度测试,本方案于传统的测工。
由于本文主要针桌,且目前只I了冒烟用例的编写,后期复杂测试需求提,可能面临各的:①度依赖截图,功能组合很多,单一的图片识别方式会导致图片数巨大,此时需要考虑以图片识别辅助接口测试的方案;②由于是界面展示型测试,台数据型测相,未知干扰多,包括输入法兼容,桌等因素,期需要思考规避方案;③目前可以UI 重排的图片更新,但是法UI文字,图形,需要重新动素材的提取,期可能要从人工智能的角度,探索新的值新方法。
参考文献:
[1]虫师.Selenium2自动化测试实战:基于Python语言[M],北京:电
子工业出版社,2016.
[2]Cohn M.Succeeding with Agile[M].Addison Wesley,2010.
[3]张佳伟,张涛,周叶•基于Electron的跨平台客户端技术[J]•智能
计算机与应用,2017,7(3):120-122.
[4]王小巍•基于Sikuli的自动化测试研究与应用[J].软件导刊,
2012,11(4):103-105.
[5]陈胜勇,刘•基于OpenCV的计算机视觉技术实现[M].北京:科
学出版社,2008.
[6]梁思秋•基于Robot Framework的MVC GUI模块自动化测试框
架的设计与实现[D].上海:东华大学,2015.
(上接第85页)
[6]李传斌,严刚,刘梦阳,等.FlexRay-CAN网关中的多队列消息处
理方法[J]•合肥工业大学学报:自然科学版,2011,34(1):28—32.
[7]李斌•基于CAN总线网络控制系统调度算法的分析与研究[D].
天津:天津大学,2004.[8]Traian Pop,Paul Pop, Petru Eles, et al.Timing analysis of the
FlexRay communication protocol[J].Real-time Systems,2008(39):1—3.
[9]张哲宇.CAN-FlexRay总线在车载系统中的组网研究与设计[D].
贵阳:贵州大学,2018.■
欢迎浏$%www.zdh&b
Automation&Instrumentation222",36(3)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论