【技术实现步骤摘要】
本专利技术涉及计算机
,具体涉及一种GUI控件的识别方法和装置。
技术介绍
随着软件技术的飞速发展和软件规模的不断扩大,基于图形用户界面软件越来越多,借助自动化软件测试工具来对GUI软件进行自动化测试获得了越来越广泛的应用。出于各方面的因素,越来越多的软件界面中开始使用自绘控件或第三方控件,然而现阶段很多技术对GUI控件的识别存在很大的局限性,一般仅仅能识别Windows标准控件,通过已有的Windows API接口获取界面元素的各种属性信息,而对于大部分第三方控件识别率都不高,目前的一些GUI自动化测试框架也都存在开发用例成本高,不易于扩展,当GUI界面发生变化时维护成本高等缺点,这给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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。