CN110347585B - 一种ui自动化测试图片识别方法 - Google Patents

一种ui自动化测试图片识别方法 Download PDF

Info

Publication number
CN110347585B
CN110347585B CN201910449563.1A CN201910449563A CN110347585B CN 110347585 B CN110347585 B CN 110347585B CN 201910449563 A CN201910449563 A CN 201910449563A CN 110347585 B CN110347585 B CN 110347585B
Authority
CN
China
Prior art keywords
control
picture
matching
automatic test
coordinates
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910449563.1A
Other languages
English (en)
Other versions
CN110347585A (zh
Inventor
徐源
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Meimeichen Technology Co ltd
Original Assignee
Chengdu Meimeichen Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Meimeichen Technology Co ltd filed Critical Chengdu Meimeichen Technology Co ltd
Priority to CN201910449563.1A priority Critical patent/CN110347585B/zh
Publication of CN110347585A publication Critical patent/CN110347585A/zh
Application granted granted Critical
Publication of CN110347585B publication Critical patent/CN110347585B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/462Salient features, e.g. scale invariant feature transforms [SIFT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

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

Description

一种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方法提取特征描述符,使用匹配器对描述符进行匹配,并设置阈值。将匹配的向量距离小于阈值的值作为结果返回,随后执行相关的Touch Action或是Assert操作。
显而易见,通过本发明的方式将图片识别引入移动端自动化测试中,带来了效率的提升和维护成本的减少。主要体现在:
(1)将移动端自动化测试脚本编写工作和图片识别彻底解耦。这样一来可以将原本的团队一分为二,让编码能力更强的一个小组去实现控件的封装,编写和维护,同时他们可以做更多的优化;而另一个小组则只需要专心的编写脚本,因为他们甚至都不用再从屏幕上去截取图片,而是和使用APPIUM提供的方法一样,直接编写点击或者验证逻辑——他们不用关心这个步骤是否使用了图片识别。
(2)让代码库变得更加轻量级。就算我们的验证的控件图片平均大小只有20KB,那么如果我们需要用传统的方法验证1000张图片,那也会是20MB的图片。再者你一定会在你的.gitignore文件中写上图片后缀,那么每次维护完成后加一个强制标签或许也让人心烦。使用本发明的技术,这些问题都不存在了,你更不必担心图片的引用路径问题——脚本编写者只会看到一个普通的方法,和图片无关。
(3)应对UI改变能力增强。高速迭代的互联网移动应用难免会在每一个迭代都出现UI的改变。如果用传统的方式,那么你只能每一个发版周期都去花时间重新截图了。但本发明的识别方式,甚至可以说是对UI的变化免疫。当开发人员按照既定的UI规则作控件的更改时,我们根本不需要去维护;当然,如果规则有变动,我们只需要告诉负责控件封装的小组,请他们根据新规则稍作改动即可。
由上可知,本发明采用SIFT算法,其原因在于:
通常来说,SURF算法是SIFT算法的加速版。我们知道,SURF相对于SIFT而言,特征点检测的速度有着极大的提升,所以在一些实时视频流物体匹配上有着很强的应用。而SIFT因为其巨大的特征计算量而使得特征点提取的过程异常花费时间(如图4),所以在一些注重速度的场合难有应用场景。但是SIFT相对于SURF的优点就是,由于SIFT基于浮点内核计算特征点,因此通常认为,SIFT算法检测的特征在空间和尺度上定位更加精确,所以在要求匹配极度精准且不考虑匹配速度的场合可以考虑使用SIFT算法。执行移动端UI自动化测试的时候,显然对精确度的要求要比速度高很多,所以我们采用SIFT算法执行特征提取。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种UI自动化测试图片识别方法,其特征在于,包括以下步骤:
1)根据应用控件的设计需要按规定制作对照表;
2)根据UI规则对应用控件执行抽象和封装;
3)提取页面控件,获取控件坐标,实现步骤3)的方法为:
11)对页面控件需要执行识别的图片颜色进行空间转换,获得图片色域值;
12)对步骤11)中获得的色域值通过高低边界值匹配所有疑似目标控件,并将获取到的控件坐标以原点坐标+宽高的模式存储;
4)提取匹配SIFT特征,获得匹配结果,执行指定操作,实现步骤4)的方法为:
21)以步骤3)中获取的控件坐标进行区域性的图片截取,并以这些图片作为源进行遍历;
22)使用SiftFeatureDetector的detect方法检测特征存入一个向量里,再使用SiftDescriptorExtractor的Compute方法提取特征描述符,使用匹配器对描述符进行匹配,并设置阈值;
23)将匹配的向量距离小于阈值的值作为结果返回,随后执行相关的Touch Action或是Assert操作。
2.根据权利要求1所述的一种UI自动化测试图片识别方法,其特征在于:步骤1)中对照表的内容包括控件像素、控件字体大小、控件图片色域(RGB)。
3.根据权利要求1所述的一种UI自动化测试图片识别方法,其特征在于:步骤2)中封装的内容包括控件的图片色域、色调、饱和度、亮度。
CN201910449563.1A 2019-05-28 2019-05-28 一种ui自动化测试图片识别方法 Active CN110347585B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910449563.1A CN110347585B (zh) 2019-05-28 2019-05-28 一种ui自动化测试图片识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910449563.1A CN110347585B (zh) 2019-05-28 2019-05-28 一种ui自动化测试图片识别方法

Publications (2)

Publication Number Publication Date
CN110347585A CN110347585A (zh) 2019-10-18
CN110347585B true CN110347585B (zh) 2023-06-06

Family

ID=68174661

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910449563.1A Active CN110347585B (zh) 2019-05-28 2019-05-28 一种ui自动化测试图片识别方法

Country Status (1)

Country Link
CN (1) CN110347585B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377119A (zh) * 2012-04-23 2013-10-30 腾讯科技(深圳)有限公司 一种非标准控件自动化测试方法和装置
US9934129B1 (en) * 2017-03-17 2018-04-03 Google Llc Determining application test results using screenshot metadata
CN109117358A (zh) * 2017-06-23 2019-01-01 百度在线网络技术(北京)有限公司 用于电子设备的测试方法和测试装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9465726B2 (en) * 2013-06-05 2016-10-11 Vmware, Inc. Abstract layer for automatic user interface testing
CN103645890B (zh) * 2013-11-29 2017-12-01 北京奇虎科技有限公司 一种用于在图形用户界面中定位控件的方法和装置
CN104794048B (zh) * 2014-01-17 2017-10-24 阿里巴巴集团控股有限公司 一种ui自动化测试方法和系统
CN104391797B (zh) * 2014-12-09 2017-11-10 北京奇虎科技有限公司 Gui控件的识别方法和装置
CN105426305B (zh) * 2015-11-03 2017-10-31 上海斐讯数据通信技术有限公司 一种控件属性解析系统及方法
CN107845113B (zh) * 2017-10-20 2021-07-30 阿里巴巴(中国)有限公司 目标元素定位方法、装置以及用户界面测试方法、装置
CN107957948A (zh) * 2017-12-07 2018-04-24 郑州云海信息技术有限公司 一种用户界面自动化测试装置及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377119A (zh) * 2012-04-23 2013-10-30 腾讯科技(深圳)有限公司 一种非标准控件自动化测试方法和装置
US9934129B1 (en) * 2017-03-17 2018-04-03 Google Llc Determining application test results using screenshot metadata
CN109117358A (zh) * 2017-06-23 2019-01-01 百度在线网络技术(北京)有限公司 用于电子设备的测试方法和测试装置

Also Published As

Publication number Publication date
CN110347585A (zh) 2019-10-18

Similar Documents

Publication Publication Date Title
WO2020140698A1 (zh) 表格数据的获取方法、装置和服务器
US9244607B2 (en) System and method for image processing using multi-touch gestures
CN108805169B (zh) 影像处理方法、非暂态电脑可读取媒体以及影像处理系统
CN108564082B (zh) 图像处理方法、装置、服务器和介质
JP4757001B2 (ja) 画像処理装置、画像処理方法
US20180253852A1 (en) Method and device for locating image edge in natural background
Beyeler OpenCV with Python blueprints
JP2014041486A (ja) 信号処理方法及び信号処理装置
JP7383022B2 (ja) 自動リアルタイム高ダイナミックレンジコンテンツレビューシステム
US9066036B2 (en) Determining transparent fills based on a reference background colour
CN104111913A (zh) 一种流式文档的处理方法及装置
CN103955713A (zh) 一种图标识别方法和装置
CN110347585B (zh) 一种ui自动化测试图片识别方法
CN111831123B (zh) 一种适用于桌面混合现实环境的手势交互方法及系统
CN110533020A (zh) 一种文字信息的识别方法、装置及存储介质
CN109255807B (zh) 一种图像信息处理方法及服务器、计算机存储介质
CN108875073A (zh) 一种遥感影像的快速栅格转矢量方法
KR20150137233A (ko) 프로젝션 환경에서 영상객체인식을 위한 전처리 기술 및 그 방법
JP2016532190A (ja) 文書フォーマット変換装置及び方法
CN115017922A (zh) 图片翻译的方法、装置、电子设备及可读存储介质
KR101225196B1 (ko) 이미지 프로세싱에서 블롭 라벨링 방법 및 장치
KR20220048651A (ko) 3차원 의류 객체 생성 시스템 및 그 동작 방법
CN112417920A (zh) 基于高拍仪的扫描输入方法、装置、设备及介质
CN110853115A (zh) 一种开发流程页面的创建方法及设备
CN111126382A (zh) 一种用于ocr识别的基于关键点定位的票据矫正方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant