GUI控件的识别方法和装置转让专利

申请号 : CN201410747884.7

文献号 : CN104391797B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 洪丽娜李珂

申请人 : 北京奇虎科技有限公司奇智软件(北京)有限公司

摘要 :

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

权利要求 :

1.一种GUI控件的识别方法,所述GUI控件的属性信息被预先录制并具有唯一标识,所述属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像;其中,所述GUI控件为非标准控件,且所述GUI控件的父窗口为可识别的标准控件;

所述方法包括:

预先录制所述GUI控件的属性信息,具体包括:将鼠标移动到所述GUI控件上,指定图像半径后,捕获鼠标相对于父窗口的坐标作为所述GUI控件相对于父窗口的位置坐标,截取以鼠标位置为中心,图像半径范围内的图像作为所述第一图像;

根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗口;

根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像;

计算所述第二图像与第一图像之间的相似度并根据所述相似度对所述GUI控件进行识别。

2.根据权利要求1所述的方法,其中,预先录制的所述属性信息还包括:GUI控件对应的图像半径;

所述GUI控件对应的第一图像是以所述GUI控件相对于父窗口的位置坐标为中心,以GUI控件对应的图像半径为半径确定的图形区域内的图像;

所述根据GUI控件相对于父窗口的位置坐标截取预设尺寸和位置的第二图像进一步为:根据所述GUI控件相对于父窗口的位置坐标,截取以所述GUI控件相对于父窗口的位置坐标为中心,以GUI控件对应的图像半径为半径的图形区域内的第二图像。

3.根据权利要求1所述的方法,其中,所述计算所述第二图像与第一图像之间的相似度并根据所述相似度对所述GUI控件进行识别进一步包括:利用感知哈希算法为第一图像和第二图像分别生成指纹字符串;

根据所述指纹字符串计算所述第二图像与第一图像之间的相似度;

若所述相似度大于预设阈值,将第二图像区域识别为GUI控件。

4.根据权利要求2所述的方法,其中,所述计算所述第二图像与第一图像之间的相似度并根据所述相似度对所述GUI控件进行识别进一步包括:利用感知哈希算法为第一图像和第二图像分别生成指纹字符串;

根据所述指纹字符串计算所述第二图像与第一图像之间的相似度;

若所述相似度大于预设阈值,将第二图像区域识别为GUI控件。

5.根据权利要求1-4任一项所述的方法,其中,所述方法还包括:预先设置一个或多个导出接口,将GUI控件的识别过程封装在所述一个或多个导出接口中,或者,将GUI控件的识别过程和对GUI控件的预设操作逻辑封装在所述一个或多个导出接口中;

其中,封装所述GUI控件的识别过程的导出接口用于接收GUI控件的标识参数,根据预先录制的GUI控件的属性信息识别GUI控件;

封装所述GUI控件的识别过程和对GUI控件的预设操作逻辑的导出接口用于接收GUI控件的标识参数和GUI控件的预设操作参数,根据预先录制的GUI控件的属性信息识别GUI控件并执行对GUI控件的预设操作。

6.根据权利要求5所述的方法,其中,所述导出接口包括:第一导出接口,用于接收GUI控件的标识参数,根据预先录制的GUI控件的属性信息识别GUI控件;

第二导出接口,接收第一GUI控件标识参数,第二GUI控件标识参数以及第一GUI控件的预设操作参数以识别第一GUI控件并对第一GUI控件执行相应的操作直到在父窗口中识别到第二GUI控件;

第三导出接口,接收GUI控件标识参数和预设操作参数以识别并对GUI控件执行相应的操作直到实现目标窗口。

7.根据权利要求6所述的方法,其中,所述方法还包括:

根据预定的GUI测试过程,向所述导出接口传递GUI控件的标识参数和/或GUI控件的预设操作参数,通过调用所述导出接口编写测试用例;所述导出接口在一个测试用例中执行GUI测试步骤,对一个或多个GUI控件进行自动测试;

执行所述编写的测试用例。

8.根据权利要求7所述的方法,其中,所述导出接口还接收超时参数,指定调用该导出接口的测试步骤的最长执行时间。

9.根据权利要求7或8所述的方法,其中,所述方法还包括:预先设置一个或多个GUI功能接口;所述GUI功能接口中封装有已编写的测试用例中的由所述导出接口执行的多个测试步骤;

所述方法还包括:根据预定的GUI测试过程,调用所述GUI功能接口编写测试用例;

所述导出接口还包括:用于调用所述GUI功能接口的第四导出接口。

10.一种GUI控件的识别装置,其中,所述GUI控件的属性信息被预先录制并具有唯一标识;其中,所述GUI控件为非标准控件,且所述GUI控件的父窗口为可识别的标准控件;

所述装置包括:

GUI控件录制模块,适于预先录制GUI控件的属性信息,所述属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像;

其中,所述GUI控件录制模块在预先录制GUI控件的属性信息时,具体适于:将鼠标移动到所述GUI控件上,指定图像半径后,捕获鼠标相对于父窗口的坐标作为所述GUI控件相对于父窗口的位置坐标,截取以鼠标位置为中心,图像半径范围内的图像作为所述第一图像;

查找模块,适于根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗口;

图像截取模块,适于根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像;

识别模块,适于计算所述第二图像与第一图像之间的相似度并根据所述相似度对所述GUI控件进行识别。

11.根据权利要求10所述的装置,其中,预先录制的所述属性信息还包括:GUI控件对应的图像半径;

所述GUI控件对应的第一图像是以所述GUI控件相对于父窗口的位置坐标为中心,以GUI控件对应的图像半径为半径确定的图形区域内的图像;

所述图像截取模块进一步适于:根据所述GUI控件相对于父窗口的位置坐标,截取以所述GUI控件相对于父窗口的位置坐标为中心,以GUI控件对应的图像半径为半径的图形区域内的第二图像。

12.根据权利要求10所述的装置,其中,所述识别模块进一步适于:利用感知哈希算法为第一图像和第二图像分别生成指纹字符串;

根据所述指纹字符串计算所述第二图像与第一图像之间的相似度;

若所述相似度大于预设阈值,将第二图像区域识别为GUI控件。

13.根据权利要求11所述的装置,其中,所述识别模块进一步适于:利用感知哈希算法为第一图像和第二图像分别生成指纹字符串;

根据所述指纹字符串计算所述第二图像与第一图像之间的相似度;

若所述相似度大于预设阈值,将第二图像区域识别为GUI控件。

14.根据权利要求10-13任一项所述的装置,其中,所述装置还包括:导出接口管理模块,适于预先设置一个或多个导出接口,将GUI控件的识别过程封装在所述一个或多个导出接口中,或者,将GUI控件的识别过程和对GUI控件的预设操作逻辑封装在所述一个或多个导出接口中;

其中,封装所述GUI控件的识别过程的导出接口用于接收GUI控件的标识参数,根据预先录制的GUI控件的属性信息识别GUI控件;

封装所述GUI控件的识别过程和对GUI控件的预设操作逻辑的导出接口用于接收GUI控件的标识参数和GUI控件的预设操作参数,根据预先录制的GUI控件的属性信息识别GUI控件并执行对GUI控件的预设操作。

15.根据权利要求14所述的装置,其中,所述导出接口包括:第一导出接口,用于接收GUI控件的标识参数,根据预先录制的GUI控件的属性信息识别GUI控件;

第二导出接口,接收第一GUI控件标识参数,第二GUI控件标识参数以及第一GUI控件的预设操作参数以识别第一GUI控件并对第一GUI控件执行相应的操作直到在父窗口中识别到第二GUI控件;

第三导出接口,接收GUI控件标识参数和预设操作参数以识别并对GUI控件执行相应的操作直到实现目标窗口。

16.根据权利要求14所述的装置,其中,所述装置还包括:用例编写模块,适于根据预定的GUI测试过程,向所述导出接口传递GUI控件的标识参数以及GUI控件的预设操作参数,通过调用所述导出接口编写测试用例;所述导出接口在一个测试用例中执行GUI测试步骤,对一个或多个GUI控件进行自动测试;

用例执行模块,适于执行由所述导出接口编写的测试用例。

17.根据权利要求16所述的装置,其中,所述导出接口还接收超时参数,指定调用该导出接口的测试步骤的最长执行时间。

18.根据权利要求16或17所述的装置,其中,所述装置还包括:GUI功能接口管理模块,适于将已编写的测试用例中的由所述导出接口执行的多个测试步骤封装在一个或多个GUI功能接口中;

所述用例编写模块还适于:根据预定的GUI测试过程,调用所述GUI功能接口编写测试用例;

所述导出接口还包括:用于调用所述GUI功能接口的第四导出接口。

说明书 :

GUI控件的识别方法和装置

技术领域

[0001] 本发明涉及计算机技术领域,具体涉及一种GUI控件的识别方法和装置。

背景技术

[0002] 随着软件技术的飞速发展和软件规模的不断扩大,基于图形用户界面软件越来越多,借助自动化软件测试工具来对GUI软件进行自动化测试获得了越来越广泛的应用。
[0003] 出于各方面的因素,越来越多的软件界面中开始使用自绘控件或第三方控件,然而现阶段很多技术对GUI控件的识别存在很大的局限性,一般仅仅能识别Windows标准控件,通过已有的Windows API接口获取界面元素的各种属性信息,而对于大部分第三方控件识别率都不高,目前的一些GUI自动化测试框架也都存在开发用例成本高,不易于扩展,当GUI界面发生变化时维护成本高等缺点,这给GUI自动化测试带来了更多的挑战。
[0004] 在GUI自动化测试中,很多软件体系都采用录制回放技术。这种技术要求测试者通过鼠标和键盘的点击进行工作,脚本记录事件,然后以自动化测试的方式进行回放。记录下来的测试脚本必须经过编辑和调试之后插入验证和检查点。产生的脚本通常是硬编码,需要测试人员对脚本进行编辑以及参数化操作。同时,界面元素属性的任何变化都会影响脚本的运行,有时甚至需要重新录制脚本。此外,还有基于数据驱动的GUI自动化测试,但其仅支持脚本录制并要独立维护测试数据和对应关系,以及基于关键字的GUI自动化测试,但其关键字的维护成本较高。

发明内容

[0005] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的GUI控件的识别方法和装置。
[0006] 根据本发明的一个方面,提供了一种GUI控件的识别方法,其中,GUI控件的属性信息被预先录制并具有唯一标识,属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像;
[0007] 识别方法包括:
[0008] 根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗口;
[0009] 根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像;
[0010] 计算第二图像与第一图像之间的相似度并根据所述相似度对所述GUI控件进行识别。
[0011] 根据本发明的另一方面,提供了一种GUI控件的识别装置,其中,GUI控件的属性信息被预先录制并具有唯一标识;
[0012] 装置包括:
[0013] GUI控件录制模块,适于预先录制GUI控件的属性信息,属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像;
[0014] 查找模块,适于根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗口;
[0015] 图像截取模块,适于根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像;
[0016] 识别模块,适于根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像。
[0017] 根据本发明的GUI控件的识别方法和装置,预先录制能够唯一确定GUI控件的,包含GUI控件图形元素的图像、父窗口名称、GUI控件相对于父窗口的坐标等的属性信息,在识别过程中根据父窗口名称和坐标确定GUI控件的位置,截取第二图像,根据第二图像与属性信息中的包含GUI控件图形元素的图像来识别GUI控件。根据该方案,能够对标准GUI控件和非标准的GUI控件进行识别,具有普遍的通用性。并且,上述测试方法易于封装为接口函数,编写测试用例时,只需要根据待测的界面和测试流程,对导出接口进行重新组合即可,从而实现了测试数据和测试脚本的分离。而且,用例的编写无需开发人员了解程序开发知识,操作便捷。当界面变化时只需重新录制GUI控件并重新组合导出接口即可,易于维护,录制过程简单,只要将鼠标放在关注的图像位置,设定半径,就很容易自动获取这些属性信息。
[0018] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0019] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0020] 图1示出了根据本发明一个实施例的GUI控件的识别方法的流程图;
[0021] 图2示出了根据本发明另一个实施例的GUI控件的识别方法的流程图;
[0022] 图3示出了根据本发明另一个实施例的GUI控件的识别方法的流程图;
[0023] 图4示出了根据本发明一个实施例的GUI控件的识别装置的结构框图;
[0024] 图5示出了根据本发明另一个实施例的GUI控件的识别装置的结构框图。

具体实施方式

[0025] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0026] 首先,简要介绍GUI控件的识别和测试。GUI是以图形方式显示的计算机操作用户界面。一个最简单的手工GUI识别和测试过程就是首先人眼识别GUI界面上的某一个图形元素,然后对此元素进行相应的鼠标或键盘操作,查看操作后的GUI界面是否符合预期。可见GUI控件测试中涉及两个步骤,先要识别出GUI控件,然后对GUI控件进行预设的操作。其中,对GUI控件的操作是容易模拟的,而GUI控件的自动识别是比较困难的。对于Windows标准控件的识别较为容易,可以直接使用Windows  API的方式,例如,使用FindWindow,EnumWindow,GetWindowText,GetWindowRect等函数获取GUI控件的句柄,文本,位置等信息,进而实现对GUI控件的识别。
[0027] 对于非标准的GUI控件,上述方法并不适用。这时,可以采用基于MSAA,基于坐标的方法等进行GUI控件的识别。但上述方法有些较为繁琐,开发复杂,适用范围非常有限,容易受到界面变化的影响,维护成本高。
[0028] 图1示出了根据本发明一个实施例的GUI控件的识别方法的流程图,如图1所示,方法包括:
[0029] 步骤S110,预先录制GUI控件的属性信息。
[0030] 录制的GUI控件的属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像。
[0031] 以360浏览器的安装窗口中的GUI控件为例,安装过程中首先涉及“开始安装”GUI控件。该GUI控件的父窗口标题就是安装窗口的窗口名,例如“360浏览器安装”。而GUI控件相对于父窗口的位置以及控件的图形元素一般是不变的。因此,根据上述录制的属性信息能够唯一确定一个GUI控件。当然,也可以选择录制父窗口的类名,句柄等,或窗口名称与类名的组合。
[0032] GUI控件的第一图像至少包括部分GUI控件的图形元素,例如,对上述的“开始安装”控件,其图形元素显示为一个带有“开始安装”字样的按钮。第一图像可通过截图方式获取,截取带有完整的或一部分字样的图像。
[0033] GUI控件相对于父窗口位置的坐标可以是GUI控件图像元素上任一点相对于父窗口的坐标。例如,以父窗口的右下角作为坐标原点,以“开始安装”按钮中心位置的坐标作为GUI控件的坐标。或者,录制GUI控件所在的坐标范围作为属性信息。
[0034] 对每个录制完成的GUI控件,赋予一个唯一的标识,根据标识即可找到该GUI控件的属性信息。在测试用例和导出接口中对GUI控件的引用都可以用标识替代,实现了界面元素名与测试内部对象名的分离。可选地,若GUI控件的名称在测试用例中唯一,则使用GUI控件的名称作为所述唯一标识。
[0035] 可选地,录制的属性信息还包括:GUI控件对应的图像半径;则GUI控件对应的第一图像是以GUI控件相对于父窗口的位置坐标为中心,以GUI控件对应的图像半径为半径确定的图形区域内的图像。
[0036] 具体地,录制时,将鼠标移动到GUI控件上,指定图像半径r后,程序自动捕获鼠标相对于父窗口的坐标作为GUI控件相对于父窗口的位置坐标,截取以鼠标位置(x,y)为中心,图像半径r即(x-r,y-r,x+r,y+r)范围内的图像作为第一图像。本发明可以根据控件大小选择不同的半径。
[0037] 步骤S120,根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗口。
[0038] 在识别时,首先确定GUI控件所在的父窗口已经打开。GUI控件所在的父窗口一定是一个可识别的标准控件,可通过FindWindow,EnumWindows等API进行查找。
[0039] 步骤S130,根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像。
[0040] 具体地,按照与录制相应的方式进行。根据属性信息中的GUI控件相对于父窗口的坐标,自动将鼠标移动到录制时控件相对于父窗口的位置坐标处,然后截取以鼠标位置坐标(x,y)为中心的半径为r的圆形图像作为第二图像,半径r即是录制的属性信息中的控件对应的图像半径。或者截取(x-r,y-r,x+r,y+r)范围内的图像作为第二图像。
[0041] 步骤S140,计算所述第二图像与第一图像之间的相似度并根据所述相似度对所述GUI控件进行识别。
[0042] 相似度大于预先设置的阈值时,认为第一图像和第二图像匹配,将鼠标当前位置的第二图像区域作为待识别的GUI控件。
[0043] 可选地,利用感知哈希算法为第一图像和第二图像分别生成指纹字符串;然后根据指纹字符串计算所述相似度。
[0044] 具体地,利用感知哈希算法计算相似度包括如下过程:
[0045] 1)缩小尺寸。将第一图像和第二图像缩小到8×8的尺寸,总共64个像素。这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。2)简化色彩。将缩小后的图像,转为64级灰度。也就是说,所有像素点总共只有64种颜色。3)分别计算第一、第二图像所有64个像素的灰度平均值。4)比较像素的灰度。将每个像素的灰度与平均值进行比较,若大于或等于平均值,记为1;小于平均值,记为0。5)第五步,计算哈希值。将上一步的比较结果组合在一起构成了一个64位的整数,这就是这张图像的指纹。其中组合的次序并不重要,只要保证所有图像都采用同样次序就行了。在得到指纹以后,就可以对比第一图像和第二图像,看看64位中有多少位是不一样的。在理论上,这等同于计算“汉明距离”。如果不相同的数据位不超过5,就说明两张图像很相似;如果大于10,就说明这是两张不同的图像。
[0046] 上述基于图像的GUI控件识别方法,同样适用于标准GUI控件,具有普遍通用性。
[0047] 根据本发明上述实施例提供的方法,预先录制能够唯一确定GUI控件的属性信息,包含GUI控件图形元素的图像、控件所在的父窗口名称以及GUI控件相对于父窗口的坐标等的属性信息,在识别过程中根据父窗口名称和坐标确定GUI控件的位置,截取第二图像,根据第二图像与属性信息中的包含GUI控件图形元素的图像来识别GUI控件。根据该方案,能够准确识别非标准的GUI控件。并且,这种识别方法可直接封装为接口,适合用于GUI自动化测试中。
[0048] 图2示出了根据本发明一个实施例的GUI控件的识别方法的流程图。本实施例的方法将上述的基于图像的GUI控件识别方法应用于GUI控件的自动测试中。具体地,如图2所示,方法包括如下步骤:
[0049] 步骤S210,预先录制的GUI控件的属性信息。
[0050] 以对软件安装过程进行GUI测试为例,例如,安装过程中涉及两个GUI控件,“开始安装”GUI控件和“安装完成”GUI控件。预期的功能是:用户点击开始安装后,进入安装完成界面,点击安装完成后,界面消失。这两个控件都作为待识别的GUI控件。
[0051] 具体地,根据本实施例中的方法,录制GUI控件时,录制的不是简单的图像或复杂的操作过程脚本,而是录制能够唯一识别此GUI控件的属性信息。
[0052] 对每个录制完成的GUI控件,赋予一个唯一的标识,根据标识即可找到该GUI控件的属性信息。在测试用例和导出接口中对GUI控件的引用都可以用标识替代,实现了界面元素名与测试内部对象名的分离。可选地,若GUI控件的名称在测试用例中唯一,则使用GUI控件的名称作为所述唯一标识。
[0053] 步骤S220,预先设置多个导出接口。
[0054] 导出接口用于在测试用例中执行GUI测试步骤。如前文所述,每个GUI的测试步骤通常包括两个部分,对GUI控件的识别以及对该GUI控件的操作。在编写用例前,将通用的GUI控件的识别逻辑和/或操作逻辑封装在一个导出接口中。该导出接口表现为一个开发人员封装的函数,可在实际的用例中直接调用。
[0055] 其中,识别逻辑可以是上一实施例所述的GUI控件的识别逻辑,也可以是标准GUI控件的识别逻辑。例如,使用FindWindow,EnumWindow,GetWindowText,GetWindowRect等系统API函数获取GUI控件的句柄,文本,位置等信息,对GUI控件进行识别,也可以是基于MSAA的识别逻辑或本发明下文中介绍的基于图像的识别逻辑等。
[0056] 操作逻辑对识别出的GUI控件进行操作,包含但不仅限于点击和回车操作等。例如,软件安装过程中,识别出当前界面内的GUI控件为“开始安装”按钮,模拟用户点击该GUI控件,点击后进入下一界面“安装完成”。导出接口还可用于判断对GUI控件的操作是否成功,这通过判断操作后的界面是否符合预期完成。例如,点击“开始安装”按钮后,在界面中查找“安装完成”按钮,若找到,判断“开始安装”这一测试步骤操作成功。
[0057] 具体地,在测试用例中被调用时,导出接口接收GUI控件的标识参数和/或GUI控件的预设操作参数,标识参数就是步骤S110中为每个GUI控件赋予的唯一标识。根据标识参数找到预先录制的GUI控件的属性信息,利用属性信息识别GUI控件,然后,接收操作参数执行对GUI控件的预设操作。当然,也可以将识别逻辑和操作逻辑分别封装在不同的导出接口中,本领域技术人员可自行选择。
[0058] 作为示例,本实施例中给出三个导出接口,分别为:
[0059] 第一导出接口,接收GUI控件的标识参数以识别GUI控件;
[0060] 第二导出接口,接收第一GUI控件标识参数,第二GUI控件标识参数以及第一GUI控件的预设操作参数以识别并操作第一GUI控件直到识别到第二GUI控件;操作包括鼠标单击,双击,回车,tab切换等。
[0061] 第三导出接口,接收GUI控件标识参数和预设操作参数以识别并操作GUI控件直到实现目标窗口,例如,点击控件直到该GUI控件消失,或直到能够查找到期望的目标窗口。
[0062] 上述步骤S210和步骤S220在测试用例编写前执行。
[0063] 步骤S230,根据预定的GUI测试过程,调用导出接口编写测试用例。
[0064] 具体地,按预定的GUI测试过程,根据测试过程中每个GUI的特征,调用合适的导出接口,对导出接口进行重新的组合,编写测试用例。
[0065] 仍以上述的软件安装过程为例,可调用第二导出接口对“开始安装”GUI控件的测试,调用第三导出接口对“安装完成”GUI控件的测试。分别将标识参数和预设操作参数传递给第二导出接口和第三导出接口。
[0066] 步骤S240,执行编写的测试用例。
[0067] 导出接口接收参数后执行识别逻辑和操作逻辑。若编写的测试用例执行成功,GUI测试过程通过。
[0068] 根据本发明上述实施例提供的方法,录制的GUI控件的属性信息作为测试执行过程中所需的测试数据被提取出来,并将可能在多个测试用例中通用的测试步骤封装为导出接口,在被调用时,导出接口读取预先录制的测试数据,这种方式实现了脚本与数据的分离。在编写测试用例时,只需要根据待测的界面和测试流程,对导出接口进行重新组合即可,从而实现了测试数据和测试脚本的分离。用例的编写无需了解程序开发知识,十分便捷。界面变化时只需重新录制GUI控件并重新组合导出接口即可,易于维护。
[0069] 图3示出了根据本发明另一个实施例的GUI控件的识别方法的流程图,该实施例以360浏览器的安装过程中的GUI界面为例,360浏览器安装界面中包括3个GUI控件的识别和操作,依次为:设置为默认浏览器、开始安装和开始体验。其中,方法包括如下步骤:
[0070] 步骤S310,分别录制设置为默认浏览器、开始安装、开始体验3个GUI控件的属性信息。
[0071] 本实施例中采用上文描述的基于图像的GUI控件识别方法识别GUI控件。
[0072] 具体地,依次录制设置为默认浏览器、开始安装、开始体验3个GUI控件的控件名称(name),父窗口类名或标题(ptitle),每个控件相对于父窗口的位置坐标(pos),控件对应的图像的半径(radius),控件对应图像,以及控件的图像路径(imagepath)。以及预先设定的第一图像和第二图像的相似度阈值,和图像路径imagepath。具体地,录制的信息如下表所示。
[0073]
[0074] 步骤S320,预先设置多个导出接口,导出接口根据录制的GUI控件属性信息识别待测的GUI控件并对待测的GUI控件执行预设操作。
[0075] 在界面自动化测试中经常遇到的一个问题是,对一个GUI控件点击后,默认点击成功然后继续执行后面的操作,但实际执行中却由于机器卡、界面反应慢等各种原因导致点击可能并没有成功,使得GUI控件自动化测试出现不稳定的情况。这时,可以选择使测试过程休眠一段时间,等待界面恢复正常,但这并不总是有效。
[0076] 本实施例还通过导出接口判断GUI操作是否成功,例如,导出接口在识别GUI控件后,持续执行对该GUI控件的点击操作直到该GUI控件从浏览器安装界面中消失,期望的目标窗口出现;或者持续执行对该GUI控件的点击操作直到在界面中能够识别出另一控件。这能够大大提高GUI测试过程的稳定性,避免界面反应慢造成测试的中断。
[0077] 作为示例,本实施例中提供了三个导出接口,介绍如下:
[0078] (1)findWnd(wnd),该导出接口用于查找一个控件,其中wnd为控件的标识,可以是标准GUI控件或非标准GUI控件,对于标准GUI控件,wnd一般为该标准GUI控件的标题和/或控件类名。这时,该导出接口采用标准GUI控件的识别方式进行查找,例如,对于Windows标准GUI控件通过FindWindow,EnumWindows等API实现查找。对于非标准GUI控件,该导出接口可采用上一实施例所述的基于图像识别的非标准GUI控件识别方法进行查找。
[0079] (2)clickWndForFind(wnd1,wnd2,clickmode),该导出接口用于查找一个GUI控件wnd1并执行预设的操作。具体地,预设操作为查找后持续点击或触发该GUI控件wndl,直到在界面中能够查找到另一个GUI控件wnd2。其中,clickmode参数可选,表示该GUI控件的预定触发方式,可以是鼠标左键单击,右键单击,双击等。可选地,参数值默认为0,表示GUI控件的触发方式为左键单击。该导出接口对GUI控件的识别方式与上一接口相同,此处不再赘述。
[0080] (3)clickWndForHiddenSelf(wnd,clickmode),该接口用于查找一个GUI控件,之后点击或触发该GUI控件直到实现目标窗口,例如,点击该GUI控件直到控件消失,无法在查找到该GUI控件;或者点击该GUI控件直到查找到期望出现的下一窗口。
[0081] 上述的导出接口仅作为示例,本领域技术人员可在此基础上得到多种变形,例如,将clickWndForFind(wnd1,wnd2)接口分解为findWnd(wnd1),执行点击功能的接口和find(wnd2),而完成相同的功能。
[0082] 步骤S310和S320在编写测试用例前执行。下面通过步骤S330和S340介绍如何利用上述的导出接口编写360浏览器安装过程中的GUI自动测试用例。
[0083] 步骤S330,根据预定的GUI控件测试过程,对导出接口进行组合,编写测试用例。
[0084] 在一个示例中,360浏览器安装界面中首先出现的GUI控件是设置为默认浏览器,预定的测试过程为,该GUI控件接收鼠标点击,或回车操作后变化到下一界面。则对这一控件的操作可以选用clickWndForHiddenSelf()导出接口。向该导出接口传递GUI控件的标识参数“设置默认浏览器”以及操作参数clickmode=0,则该导出接口之后重复点击直到控件消失,以防止界面卡住等原因导致的测试中断。
[0085] 下一界面包含“开始安装”GUI控件,可选择使用clickWndForFind(wnd1,wnd2,clickmode)接口,其中将GUI控件标识参数“开始安装”传递给wnd1,将下一界面中的GUI控件标识参数“开始体验”传递给wnd2。当然,也可以选用clickWndForHiddenSelf()接口来执行该测试步骤。
[0086] 最后,使用clickWndForHiddenSelf()接口执行GUI控件“开始体验”的自动测试步骤。
[0087] 经过上述过程,编写的测试用例如下表所示:
[0088] #360浏览器安装
[0089] clickWndForHiddenSelf:\设为默认浏览器,0
[0090] clickWndForFind:\开始安装,\开始体验,0
[0091] clickWndForHiddenSelf:\开始体验,0
[0092] 可选地,还可以为上述导出接口设置超时参数timeout,例如,clickWndForHiddenSelf(wnd,timeout,clickmode),clickWndForFind(wnd1,wnd2,clickmode)。该超时参数指定调用该导出接口的测试步骤的最长执行时间。导出接口在超时参数指定的时间内未完成测试步骤,测试失败。带有超时参数的测试用例如下:
[0093] #360浏览器安装
[0094] clickWndForHiddenSelf:\设为默认浏览器,60,0
[0095] clickWndForFind:\开始安装,\开始体验,120,0
[0096] clickWndForHiddenSelf:\开始体验,30,0
[0097] 步骤S340,执行编写的测试用例。
[0098] 执行步骤S330中编写的测试用例,完成对安装过程中涉及GUI控件的自动测试。
[0099] 在本发明的另一个实施例中,还包括预先设置的一个或多个GUI功能接口;GUI功能接口中封装有已编写的测试用例中的由导出接口执行的多个测试步骤。
[0100] 实际测试中,会遇到一些操作流程在很多用例中重复使用,这些操作流程由多个测试步骤组成。则可以将多个测试步骤封装为可调用的GUI功能接口,进一步假话用例编写。例如,对于上文中360浏览器,可将安装过程中的全部GUI测试步骤:
[0101] clickWndForHiddenSelf:\设为默认浏览器,60,0
[0102] clickWndForFind:\开始安装,\开始体验,120,0
[0103] clickWndForHiddenSelf:\开始体验,30,0
[0104] 封装为一个功能接口360browser_install,以供其它用例涉及类似操作流程时直接调用。这时,还应提供一个导出接口用于调用封装的GUI功能接口。例如,对于360浏览器的卸载过程,若需要先安装,用例可编写如下:
[0105] #360浏览器卸载
[0106] doFunc:360browser_install
[0107] clickWndForFind:\卸载,\完成|\卸载提示,60,0
[0108] clickWndForHiddenSelf:[\卸载提示,10,0]
[0109] findWnd:\完成|\卸载完成,120
[0110] 上述用例中,doFunc即为调用liebao_install的导出接口。另外,上述用例中,[]表示可选步骤,“|”代表或。例如,在上述用例中,“\卸载提示”控件可能不会出现,因此,clickWndForHiddenSelf:[\卸载提示,10,0]为可选步骤,若“\卸载提示”控件未出现,该步骤略过。
[0111] 根据本发明上述实施例提供的GUI控件的识别方法,导出接口和GUI功能接口简化了用例编写过程,能够在测试中实现测试脚本与测试数据的分离,可以快速增加相似测试用例。并且导出接口中封装的操作逻辑还可重复执行GUI操作,判断是否操作成功,这能够大大提高GUI测试过程的稳定性,避免界面反应慢造成测试的中断。
[0112] 图4示出了根据本发明一个实施例的GUI控件的识别装置,所述GUI控件的属性信息被预先录制并具有唯一标识。如图4所示,装置包括:
[0113] GUI控件录制模块410,适于预先录制GUI控件的属性信息,属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像。
[0114] 查找模块420,适于根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗口。
[0115] 图像截取模块430,适于根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像。
[0116] 识别模块440,适于计算所述第二图像与第一图像之间的相似度并根据所述相似度对所述GUI控件进行识别。
[0117] 可选地,GUI控件录制模块410预先录制的属性信息还包括:GUI控件对应的图像半径。相应地,GUI控件对应的第一图像是以GUI控件相对于父窗口的位置坐标为中心,以GUI控件对应的图像半径为半径确定的图形区域内的图像。图像截取模块430进一步适于:根据GUI控件相对于父窗口的位置坐标,截取以GUI控件相对于父窗口的位置坐标为中心,以控件对应的图像半径为半径的区域内的第二图像。
[0118] 可选地,识别模块440进一步适于:利用感知哈希算法为第一图像和第二图像分别生成指纹字符串;根据所述指纹字符串计算所述第二图像与第一图像之间的相似度;若所述相似度大于预设阈值,将第二图像区域识别为GUI控件。
[0119] 图5示出了根据本发明另一个实施例的GUI控件的识别装置,GUI控件的属性信息被预先录制并具有唯一标识。如图5所示,装置包括:
[0120] GUI控件录制模块510,适于预先录制GUI控件的属性信息,属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像。
[0121] 查找模块520,适于根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗口。
[0122] 图像截取模块530,适于根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像。
[0123] 识别模块540,适于计算所述第二图像与第一图像之间的相似度并根据所述相似度对所述GUI控件进行识别。
[0124] 导出接口管理模块550,适于预先设置一个或多个导出接口,将GUI控件的识别过程封装在所述一个或多个导出接口中,或者,将GUI控件的识别过程和对GUI控件的预设操作逻辑封装在所述一个或多个导出接口中;
[0125] 其中,封装所述GUI控件的识别过程的导出接口用于接收GUI控件的标识参数,根据预先录制的GUI控件的属性信息识别GUI控件;封装所述GUI控件的识别过程和对GUI控件的预设操作逻辑的导出接口用于接收GUI控件的标识参数和GUI控件的预设操作参数,根据预先录制的GUI控件的属性信息识别GUI控件并执行对GUI控件的预设操作。
[0126] 在一个具体实施方式中,导出接口包括:
[0127] 第一导出接口,用于接收GUI控件的标识参数,根据预先录制的GUI控件的属性信息识别GUI控件;
[0128] 第二导出接口,接收第一GUI控件标识参数,第二GUI控件标识参数以及第一GUI控件的预设操作参数以识别第一GUI控件,并对第一GUI控件执行相应的操作直到在父窗口中识别到第二GUI控件;以及
[0129] 第三导出接口,接收GUI控件标识参数和预设操作参数以识别并对GUI控件执行相应的操作直到实现目标窗口。所述实现目标窗口可能是GUI控件消失,或者期望的窗口出现。
[0130] 用例编写模块560,适于根据预定的GUI测试过程,向导出接口传递GUI控件的标识参数和/或GUI控件的预设操作参数,通过调用导出接口编写测试用例;所述导出接口在一个测试用例中执行GUI测试步骤,对一个或多个GUI控件进行自动测试。
[0131] 可选地,导出接口还接收超时参数,指定调用该导出接口的测试步骤的最长执行时间。
[0132] 用例执行模块570,适于执行由导出接口编写的测试用例。
[0133] 可选地,装置还包括:GUI功能接口管理模块580,适于将已编写的测试用例中的由所述导出接口执行的多个测试步骤封装在一个或多个GUI功能接口中。
[0134] 用例编写模块560还适于:根据预定的GUI测试过程,调用GUI功能接口编写测试用例。
[0135] 导出接口还包括:用于调用GUI功能接口的第四导出接口。
[0136] 根据本发明上述实施例提供的装置,录制的GUI控件的属性信息作为测试执行过程中所需的测试数据被提取出来,并将可能在多个测试用例中通用的测试步骤封装为导出接口,在被调用时,导出接口读取预先录制的测试数据,这种方式实现了脚本与数据的分离。测试用例的编写通过调用导出接口完成,提高了用例开发效率。GUI功能接口进一步简化了用例编写过程,并且导出接口中封装的操作逻辑还可重复执行GUI操作,判断是否操作成功,这能够大大提高GUI测试过程的稳定性,避免界面反应慢造成测试的中断。
[0137] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0138] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0139] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0140] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0141] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0142] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的GUI控件的识别方法中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0143] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0144] 本发明公开了:
[0145] A1、一种GUI控件的识别方法,所述GUI控件的属性信息被预先录制并具有唯一标识,所述属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像;
[0146] 所述方法包括:
[0147] 根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗口;
[0148] 根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像;
[0149] 计算所述第二图像与第一图像之间的相似度并根据所述相似度对所述GUI控件进行识别。
[0150] A2、根据A1所述的方法,其中,预先录制的所述属性信息还包括:GUI控件对应的图像半径;
[0151] 所述GUI控件对应的第一图像是以所述GUI控件相对于父窗口的位置坐标为中心,以GUI控件对应的图像半径为半径确定的图形区域内的图像;
[0152] 所述根据GUI控件相对于父窗口的位置坐标截取预设尺寸和位置的第二图像进一步为:
[0153] 根据所述GUI控件相对于父窗口的位置坐标,截取以所述GUI控件相对于父窗口的位置坐标为中心,以GUI控件对应的图像半径为半径的图形区域内的第二图像。
[0154] A3、根据A1或2所述的方法,其中,所述计算所述第二图像与第一图像之间的相似度并根据所述相似度对所述GUI控件进行识别进一步包括:
[0155] 利用感知哈希算法为第一图像和第二图像分别生成指纹字符串;
[0156] 根据所述指纹字符串计算所述第二图像与第一图像之间的相似度;
[0157] 若所述相似度大于预设阈值,将第二图像区域识别为GUI控件。
[0158] A4、根据A1-A3任一项所述的方法,其中,所述方法还包括:
[0159] 预先设置一个或多个导出接口,将GUI控件的识别过程封装在所述一个或多个导出接口中,或者,将GUI控件的识别过程和对GUI控件的预设操作逻辑封装在所述一个或多个导出接口中;
[0160] 其中,封装所述GUI控件的识别过程的导出接口用于接收GUI控件的标识参数,根据预先录制的GUI控件的属性信息识别GUI控件;
[0161] 封装所述GUI控件的识别过程和对GUI控件的预设操作逻辑的导出接口用于接收GUI控件的标识参数和GUI控件的预设操作参数,根据预先录制的GUI控件的属性信息识别GUI控件并执行对GUI控件的预设操作。
[0162] A5、根据A4所述的方法,其中,所述导出接口包括:
[0163] 第一导出接口,用于接收GUI控件的标识参数,根据预先录制的GUI控件的属性信息识别GUI控件;
[0164] 第二导出接口,接收第一GUI控件标识参数,第二GUI控件标识参数以及第一GUI控件的预设操作参数以识别第一GUI控件并对第一GUI控件执行相应的操作直到在父窗口中识别到第二GUI控件;
[0165] 第三导出接口,接收GUI控件标识参数和预设操作参数以识别并对GUI控件执行相应的操作直到实现目标窗口。
[0166] A6、根据A5所述的方法,其中,所述方法还包括:
[0167] 根据预定的GUI测试过程,向所述导出接口传递GUI控件的标识参数和/或GUI控件的预设操作参数,通过调用所述导出接口编写测试用例;所述导出接口在一个测试用例中执行GUI测试步骤,对一个或多个GUI控件进行自动测试;
[0168] 执行所述编写的测试用例。
[0169] A7、根据A6所述的方法,其中,所述导出接口还接收超时参数,指定调用该导出接口的测试步骤的最长执行时间。
[0170] A8、根据A6或A7所述的方法,其中,所述方法还包括:
[0171] 预先设置一个或多个GUI功能接口;所述GUI功能接口中封装有已编写的测试用例中的由所述导出接口执行的多个测试步骤;
[0172] 所述方法还包括:根据预定的GUI测试过程,调用所述GUI功能接口编写测试用例;
[0173] 所述导出接口还包括:用于调用所述GUI功能接口的第四导出接口。
[0174] B9、一种GUI控件的识别装置,其中,所述GUI控件的属性信息被预先录制并具有唯一标识;
[0175] 所述装置包括:
[0176] GUI控件录制模块,适于预先录制GUI控件的属性信息,所述属性信息包括:GUI控件的父窗口的标题和/或类名,GUI控件相对于父窗口的位置坐标以及GUI控件对应的第一图像;
[0177] 查找模块,适于根据属性信息中的父窗口标题和/或父窗口类名查找GUI控件所在的父窗口;
[0178] 图像截取模块,适于根据GUI控件相对于父窗口的位置坐标,截取预设尺寸和位置的第二图像;
[0179] 识别模块,适于计算所述第二图像与第一图像之间的相似度并根据所述相似度对所述GUI控件进行识别。
[0180] B10、根据B9所述的装置,其中,预先录制的所述属性信息还包括:GUI控件对应的图像半径;
[0181] 所述GUI控件对应的第一图像是以所述GUI控件相对于父窗口的位置坐标为中心,以GUI控件对应的图像半径为半径确定的图形区域内的图像;
[0182] 所述图像截取模块进一步适于:根据所述GUI控件相对于父窗口的位置坐标,截取以所述GUI控件相对于父窗口的位置坐标为中心,以GUI控件对应的图像半径为半径的图形区域内的第二图像。
[0183] B11、根据B10或B11所述的装置,其中,所述识别模块进一步适于:
[0184] 利用感知哈希算法为第一图像和第二图像分别生成指纹字符串;
[0185] 根据所述指纹字符串计算所述第二图像与第一图像之间的相似度;
[0186] 若所述相似度大于预设阈值,将第二图像区域识别为GUI控件。
[0187] B12、根据B9-B11任一项所述的装置,其中,所述装置还包括:导出接口管理模块,适于预先设置一个或多个导出接口,将GUI控件的识别过程封装在所述一个或多个导出接口中,或者,将GUI控件的识别过程和对GUI控件的预设操作逻辑封装在所述一个或多个导出接口中;
[0188] 其中,封装所述GUI控件的识别过程的导出接口用于接收GUI控件的标识参数,根据预先录制的GUI控件的属性信息识别GUI控件;
[0189] 封装所述GUI控件的识别过程和对GUI控件的预设操作逻辑的导出接口用于接收GUI控件的标识参数和GUI控件的预设操作参数,根据预先录制的GUI控件的属性信息识别GUI控件并执行对GUI控件的预设操作。
[0190] B13、根据B12所述的装置,其中,所述导出接口包括:
[0191] 第一导出接口,用于接收GUI控件的标识参数,根据预先录制的GUI控件的属性信息识别GUI控件;
[0192] 第二导出接口,接收第一GUI控件标识参数,第二GUI控件标识参数以及第一GUI控件的预设操作参数以识别第一GUI控件并对第一GUI控件执行相应的操作直到在父窗口中识别到第二GUI控件;
[0193] 第三导出接口,接收GUI控件标识参数和预设操作参数以识别并对GUI控件执行相应的操作直到实现目标窗口。
[0194] B14、根据B12所述的装置,其中,所述装置还包括:
[0195] 用例编写模块,适于根据预定的GUI测试过程,向所述导出接口传递GUI控件的标识参数以及GUI控件的预设操作参数,通过调用所述导出接口编写测试用例;所述导出接口在一个测试用例中执行GUI测试步骤,对一个或多个GUI控件进行自动测试;
[0196] 用例执行模块,适于执行由所述导出接口编写的测试用例。
[0197] B15、根据B14所述的装置,其中,所述导出接口还接收超时参数,指定调用该导出接口的测试步骤的最长执行时间。
[0198] B16、根据B14或B15所述的装置,其中,所述装置还包括:
[0199] GUI功能接口管理模块,适于将已编写的测试用例中的由所述导出接口执行的多个测试步骤封装在一个或多个GUI功能接口中;
[0200] 所述用例编写模块还适于:根据预定的GUI测试过程,调用所述GUI功能接口编写测试用例;
[0201] 所述导出接口还包括:用于调用所述GUI功能接口的第四导出接口。