CN110347585B - 一种ui自动化测试图片识别方法 - Google Patents
一种ui自动化测试图片识别方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/56—Extraction of image or video features relating to colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation 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/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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自动化测试图片识别方法。
背景技术
在目前广泛使用的移动端自动化测试技术中,图片识别技术必不可少。这类技术的作用在于:
(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)中封装的内容包括控件的图片色域、色调、饱和度、亮度。
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)
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)
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 | 郑州云海信息技术有限公司 | 一种用户界面自动化测试装置及方法 |
-
2019
- 2019-05-28 CN CN201910449563.1A patent/CN110347585B/zh active Active
Patent Citations (3)
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 |