GUI控件的识别方法和装置制造方法及图纸

技术编号:11113934 阅读:94 留言:0更新日期:2015-03-05 18:39
本发明专利技术公开了一种GUI控件的识别方法和装置,其中,GUI控件的属性信息被预先录制并具有唯一标识,属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像。方法包括:根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗口;根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像;计算第二图像与第一图像之间的相似度并根据相似度对GUI控件进行识别。根据该方案,能够准确识别出非标准控件,并且,这种识别方法可直接封装为接口,适合用于GUI自动化测试中。

【技术实现步骤摘要】

本专利技术涉及计算机
,具体涉及一种GUI控件的识别方法和装置
技术介绍
随着软件技术的飞速发展和软件规模的不断扩大,基于图形用户界面软件越来越多,借助自动化软件测试工具来对GUI软件进行自动化测试获得了越来越广泛的应用。出于各方面的因素,越来越多的软件界面中开始使用自绘控件或第三方控件,然而现阶段很多技术对GUI控件的识别存在很大的局限性,一般仅仅能识别Windows标准控件,通过已有的Windows API接口获取界面元素的各种属性信息,而对于大部分第三方控件识别率都不高,目前的一些GUI自动化测试框架也都存在开发用例成本高,不易于扩展,当GUI界面发生变化时维护成本高等缺点,这给GUI自动化测试带来了更多的挑战。在GUI自动化测试中,很多软件体系都采用录制回放技术。这种技术要求测试者通过鼠标和键盘的点击进行工作,脚本记录事件,然后以自动化测试的方式进行回放。记录下来的测试脚本必须经过编辑和调试之后插入验证和检查点。产生的脚本通常是硬编码,需要测试人员对脚本进行编辑以及参数化操作。同时,界面元素属性的任何变化都会影响脚本的运行,有时甚至需要重新录制脚本。此外,还有基于数据驱动的GUI自动化测试,但其仅支持脚本录制并要独立维护测试数据和对应关系,以及基于关键字的GUI自动化测试,但其关键字的维护成本较高。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的GUI控件的识别方法和装置。根据本专利技术的一个方面,提供了一种GUI控件的识别方法,其中,GUI控件的属性信息被预先录制并具有唯一标识,属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像;识别方法包括:根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗口;根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像;计算第二图像与第一图像之间的相似度并根据所述相似度对所述GUI控件进行识别。根据本专利技术的另一方面,提供了一种GUI控件的识别装置,其中,GUI控件的属性信息被预先录制并具有唯一标识;装置包括:GUI控件录制模块,适于预先录制GUI控件的属性信息,属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像;查找模块,适于根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗口;图像截取模块,适于根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像;识别模块,适于根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像。根据本专利技术的GUI控件的识别方法和装置,预先录制能够唯一确定GUI控件的,包含GUI控件图形元素的图像、父窗口名称、GUI控件相对于父窗口的坐标等的属性信息,在识别过程中根据父窗口名称和坐标确定GUI控件的位置,截取第二图像,根据第二图像与属性信息中的包含GUI控件图形元素的图像来识别GUI控件。根据该方案,能够对标准GUI控件和非标准的GUI控件进行识别,具有普遍的通用性。并且,上述测试方法易于封装为接口函数,编写测试用例时,只需要根据待测的界面和测试流程,对导出接口进行重新组合即可,从而实现了测试数据和测试脚本的分离。而且,用例的编写无需开发人员了解程序开发知识,操作便捷。当界面变化时只需重新录制GUI控件并重新组合导出接口即可,易于维护,录制过程简单,只要将鼠标放在关注的图像位置,设定半径,就很容易自动获取这些属性信息。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的GUI控件的识别方法的流程图;图2示出了根据本专利技术另一个实施例的GUI控件的识别方法的流程图;图3示出了根据本专利技术另一个实施例的GUI控件的识别方法的流程图;图4示出了根据本专利技术一个实施例的GUI控件的识别装置的结构框图;图5示出了根据本专利技术另一个实施例的GUI控件的识别装置的结构框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。首先,简要介绍GUI控件的识别和测试。GUI是以图形方式显示的计算机操作用户界面。一个最简单的手工GUI识别和测试过程就是首先人眼识别GUI界面上的某一个图形元素,然后对此元素进行相应的鼠标或键盘操作,查看操作后的GUI界面是否符合预期。可见GUI控件测试中涉及两个步骤,先要识别出GUI控件,然后对GUI控件进行预设的操作。其中,对GUI控件的操作是容易模拟的,而GUI控件的自动识别是比较困难的。对于Windows标准控件的识别较为容易,可以直接使用Windows API的方式,例如,使用FindWindow,EnumWindow,GetWindowText,GetWindowRect等函数获取GUI控件的句柄,文本,位置等信息,进而实现对GUI控件的识别。对于非标准的GUI控件,上述方法并不适用。这时,可以采用基于MSAA,基于坐标的方法等进行GUI控件的识别。但上述方法有些较为繁琐,开发复杂,适用范围非常有限,容易受到界面变化的影响,维护成本高。图1示出了根据本专利技术一个实施例的GUI控件的识别方法的流程图,如图1所示,方法包括:步骤S110,预先录制GUI控件的属性信息。录制的GUI控件的属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像。以360浏览器的安装窗口中的GUI控件为例,安装过程中首先涉及“开始安装”GUI控件。该GUI控件的父窗口标题就是安装窗口的窗口名,例如...
GUI控件的识别方法和装置

【技术保护点】
一种GUI控件的识别方法,所述GUI控件的属性信息被预先录制并具有唯一标识,所述属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像;所述方法包括:根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗口;根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像;计算所述第二图像与第一图像之间的相似度并根据所述相似度对所述GUI控件进行识别。

【技术特征摘要】
1.一种GUI控件的识别方法,所述GUI控件的属性信息被预先录制并具
有唯一标识,所述属性信息包括:GUI控件的父窗口的标题和/或类名,GUI
控件相对于父窗口的位置坐标以及GUI控件对应的第一图像;
所述方法包括:
根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗
口;
根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图
像;
计算所述第二图像与第一图像之间的相似度并根据所述相似度对所述
GUI控件进行识别。
2.根据权利要求1所述的方法,其中,预先录制的所述属性信息还包括:
GUI控件对应的图像半径;
所述GUI控件对应的第一图像是以所述GUI控件相对于父窗口的位置坐
标为中心,以GUI控件对应的图像半径为半径确定的图形区域内的图像;
所述根据GUI控件相对于父窗口的位置坐标截取预设尺寸和位置的第二
图像进一步为:
根据所述GUI控件相对于父窗口的位置坐标,截取以所述GUI控件相对
于父窗口的位置坐标为中心,以GUI控件对应的图像半径为半径的图形区域
内的第二图像。
3.根据权利要求1或2所述的方法,其中,所述计算所述第二图像与第
一图像之间的相似度并根据所述相似度对所述GUI控件进行识别进一步包括:
利用感知哈希算法为第一图像和第二图像分别生成指纹字符串;
根据所述指纹字符串计算所述第二图像与第一图像之间的相似度;
若所述相似度大于预设阈值,将第二图像区域识别为GUI控件。
4.根据权利要求1-3任一项所述的方法,其中,所述方法还包括:
预先设置一个或多个导出接口,将GUI控件的识别过程封装在所述一个

\t或多个导出接口中,或者,将GUI控件的识别过程和对GUI控件的预设操作
逻辑封装在所述一个或多个导出接口中;
其中,封装所述GUI控件的识别过程的导出接口用于接收GUI控件的标
识参数,根据预先录制的GUI控件的属性信息识别GUI控件;
封装所述GUI控件的识别过程和对GUI控件的预设操作逻辑的导出接口
用于接收GUI控件的标识参数和GUI控件的预设操作参数,根据预先录制的
GUI控件的属性信息识别GUI控件并执行对GUI控件的预设操作。
5.根据权利要求4所述的方法,其中,所述导出接口包括:
第一导出接口,用于接收GUI控件的标识参数,根据预先录制的GUI控
件的属性信息识别GUI控件;
第二导出接口,接收第一GUI控...

【专利技术属性】
技术研发人员:洪丽娜李珂
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

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

1