一种UI自动化测试图片识别方法技术

技术编号:22329960 阅读:104 留言:0更新日期:2019-10-19 12:15
本发明专利技术公开了一种UI自动化测试图片识别方法,包括以下步骤:首先根据应用控件的设计需要按规定制作对照表;然后根据UI规则对应用控件执行抽象和封装;其次提取页面控件,获取控件坐标;最后提取匹配SIFT特征,获得匹配结果,执行指定操作。本发明专利技术让代码库变得更加轻量级;应对UI改变能力增强,大大减少了维护所需工作量;将移动端自动化测试脚本编写工作和图片识别彻底解耦,团队分工明确。

【技术实现步骤摘要】
一种UI自动化测试图片识别方法
本专利技术属于软件图片识别
,特别是涉及一种UI自动化测试图片识别方法。
技术介绍
在目前广泛使用的移动端自动化测试技术中,图片识别技术必不可少。这类技术的作用在于:(1)解决终端的多样性导致的原生控件定位问题。(2)提供内置WebView页面的操作可行性。(3)在严格的自动化测试工程中丰富验证手段的多样性。现如今市面上使用的商业工具或者是开源框架中,多数采用的较为直接的对比方式(如图1),即在屏幕上执行部分的图片截取,保存到代码库中,以方便在不同的执行环境下进行图片对比;随后根据客户端引入OpenCV的库,直接调用内部的比较方法,从而转化为相应的屏幕坐标进行操作,或者执行包含验证。这样的方法有着如下的局限性:(1)让代码库冗余。在常规的代码管理中,类似于图片,视频或者压缩包这样的“制造品”不应该被追踪到git或者subversion的代码库中。保持代码库的整洁是一个好习惯。但是如果我们要使用这种传统的去做图片识别,那么你的代码库会变成一个庞然大物:试想你有一万个图片需要比对。(2)图片难以维护。当你的用例堆积如山后,脚本可以通过不断的重构和二次封装变得尽量容易维护,但是这些图片会给整体的维护工作带来巨大的困扰,试想一下你每天都在不断的重新截图,然后执行一个最小代码片段来执行测试。因此,如何解决上述问题成为本领域人员研究的重点。
技术实现思路
本专利技术的目的就是提供一种UI自动化测试图片识别方法,能完全解决上述现有技术的不足之处。本专利技术的目的通过下述技术方案来实现:一种UI自动化测试图片识别方法,包括以下步骤:1)根据应用控件的设计需要按规定制作对照表;2)根据UI规则对应用控件执行抽象和封装;3)提取页面控件,获取控件坐标;4)提取匹配SIFT特征,获得匹配结果,执行指定操作。作为优选,步骤1)中对照表的内容包括控件像素、控件字体大小、控件图片色域(RGB)。作为优选,步骤2)中封装的内容包括控件的图片色域、色调、饱和度、亮度。作为优选,实现提取页面控件,获取控件坐标的方法为:11)对页面控件需要执行识别的图片颜色进行空间转换,获得图片色域值;12)对步骤11)中获得的色域值通过高低边界值匹配所有疑似目标控件,并将获取到的控件坐标以原点坐标+宽高的模式存储。作为优选,实现取匹配SIFT特征,获得匹配结果,执行指定操作的方法为:21)以步骤3)中获取的控件坐标进行区域性的图片截取,并以这些图片作为源进行遍历;22)使用SiftFeatureDetector的detect方法检测特征存入一个向量里,再使用SiftDescriptorExtractor的Compute方法提取特征描述符,使用匹配器对描述符进行匹配,并设置阈值;23)将匹配的向量距离小于阈值的值作为结果返回,随后执行相关的TouchAction或是Assert操作。与现有技术相比,本专利技术的有益效果在于:1.本专利技术让代码库变得更加轻量级;2.本专利技术应对UI改变能力增强,大大减少了维护所需工作量;3.本专利技术将移动端自动化测试脚本编写工作和图片识别彻底解耦,团队分工明确。附图说明图1是现有广泛使用的移动端自动化测试图片识别流程图;图2是本专利技术执行自动化图片识别的的流程图;图3是针对移动端应用控件的封装流程图;图4是SIFT特征提取流程图以及各部分运行所占的时间比例。具体实施方式下面结合具体实施例和附图对本专利技术作进一步的说明。如图1至图4所示,一种UI自动化测试图片识别方法,包括以下步骤:1)根据应用控件的设计需要按规定制作对照表;由于本专利技术不再将图片作实时对比,因此需要强大的UI体系作依托,因此移动端应用的控件设计必须按照严格的规定,从控件像素、控件字体大小、控件图片色域(RGB)等各方面制定完整的对照表。2)根据UI规则对应用控件执行抽象和封装;由于需要采用OpenCV做轮廓查找,所以需要根据UI规则制作的完整对照表对控件的RGB、色调、饱和度、亮度等信息作封装。并且针对特定的控件作特定的方法处理。同时,在最上层脚本需要提供足够的精确到步骤的检测方法,同样采用接口的模式实现,以避免在自动化测试用例的开发过程中再次去维护UI控件类集群,因此在高速迭代的互联网移动应用时代,每一个迭代难免都出现UI的改变,所以我们可以采用专门的时间去维护控件,但是不要在做用例的时候,可大大减少维护成本和耗时。3)提取页面控件,获取控件坐标;具体的,首先对页面控件执行颜色空间转换和范围删选,即当特定的屏幕上需要执行图片识别时,我们会将这种识别精确定位到执行该行为所需要的某种控件,使用该控件截取原图后,执行颜色空间转换,然后通过高低边界值匹配所有疑似目标控件,并将获取到的控件左边以原点坐标+宽高的模式存储。4)提取匹配SIFT特征,获得匹配结果,执行指定操作;具体的以步骤3)中获取的坐标进行区域性的图片截取,并以这些图片作为源进行遍历,使用SiftFeatureDetector的detect方法检测特征存入一个向量里,再使用SiftDescriptorExtractor的Compute方法提取特征描述符,使用匹配器对描述符进行匹配,并设置阈值。将匹配的向量距离小于阈值的值作为结果返回,随后执行相关的TouchAction或是Assert操作。显而易见,通过本专利技术的方式将图片识别引入移动端自动化测试中,带来了效率的提升和维护成本的减少。主要体现在:(1)将移动端自动化测试脚本编写工作和图片识别彻底解耦。这样一来可以将原本的团队一分为二,让编码能力更强的一个小组去实现控件的封装,编写和维护,同时他们可以做更多的优化;而另一个小组则只需要专心的编写脚本,因为他们甚至都不用再从屏幕上去截取图片,而是和使用APPIUM提供的方法一样,直接编写点击或者验证逻辑——他们不用关心这个步骤是否使用了图片识别。(2)让代码库变得更加轻量级。就算我们的验证的控件图片平均大小只有20KB,那么如果我们需要用传统的方法验证1000张图片,那也会是20MB的图片。再者你一定会在你的.gitignore文件中写上图片后缀,那么每次维护完成后加一个强制标签或许也让人心烦。使用本专利技术的技术,这些问题都不存在了,你更不必担心图片的引用路径问题——脚本编写者只会看到一个普通的方法,和图片无关。(3)应对UI改变能力增强。高速迭代的互联网移动应用难免会在每一个迭代都出现UI的改变。如果用传统的方式,那么你只能每一个发版周期都去花时间重新截图了。但本专利技术的识别方式,甚至可以说是对UI的变化免疫。当开发人员按照既定的UI规则作控件的更改时,我们根本不需要去维护;当然,如果规则有变动,我们只需要告诉负责控件封装的小组,请他们根据新规则稍作改动即可。由上可知,本专利技术采用SIFT算法,其原因在于:通常来说,SURF算法是SIFT算法的加速版。我们知道,SURF相对于SIFT而言,特征点检测的速度有着极大的提升,所以在一些实时视频流物体匹配上有着很强的应用。而SIFT因为其巨大的特征计算量而使得特征点提取的过程异常花费时间(如图4),所以在一些注重速度的场合难有应用场景。但是SIFT相对于SURF的优点就是,由于SIFT基于浮点内核计算特征点,因此通常认为,SIFT算法检测的特征本文档来自技高网...

【技术保护点】
1.一种UI自动化测试图片识别方法,其特征在于,包括以下步骤:1)根据应用控件的设计需要按规定制作对照表;2)根据UI规则对应用控件执行抽象和封装;3)提取页面控件,获取控件坐标;4)提取匹配SIFT特征,获得匹配结果,执行指定操作。

【技术特征摘要】
1.一种UI自动化测试图片识别方法,其特征在于,包括以下步骤:1)根据应用控件的设计需要按规定制作对照表;2)根据UI规则对应用控件执行抽象和封装;3)提取页面控件,获取控件坐标;4)提取匹配SIFT特征,获得匹配结果,执行指定操作。2.根据权利要求1所述的一种UI自动化测试图片识别方法,其特征在于:步骤1)中对照表的内容包括控件像素、控件字体大小、控件图片色域(RGB)。3.根据权利要求1所述的一种UI自动化测试图片识别方法,其特征在于:步骤2)中封装的内容包括控件的图片色域、色调、饱和度、亮度。4.根据权利要求1所述的一种UI自动化测试图片识别方法,其特征在于:实现步骤3)的方法为:11)对页面控件需要执行识别的图片颜色进行...

【专利技术属性】
技术研发人员:徐源
申请(专利权)人:成都美美臣科技有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1