自动化测试方法、装置和移动终端转让专利

申请号 : CN201510992909.4

文献号 : CN105550114B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李学海

申请人 : 广东欧珀移动通信有限公司

摘要 :

本发明提出一种自动化测试方法、装置和移动终端,该自动化测试方法包括获取待测控件对象的特征属性和局部图像;根据待测控件对象和局部图像生成对应的脚本,以模拟用户对待测控件对象的操作;根据待测控件对象的特征属性和局部图像定位待测控件对象,并根据对应的脚本对待测控件对象进行自动化测试。通过本发明能够提高自动化测试脚本的稳健性和通用性,扩展自动化测试方法的实现范围。

权利要求 :

1.一种自动化测试方法,其特征在于,包括以下步骤:获取待测控件对象的特征属性和局部图像;

根据所述待测控件对象和局部图像生成对应的脚本,以模拟用户对所述待测控件对象的操作;

根据所述待测控件对象的特征属性和局部图像定位所述待测控件对象,并根据所述对应的脚本对所述待测控件对象进行自动化测试;

所述根据所述待测控件对象和局部图像生成对应的脚本,以模拟用户对所述待测控件对象的操作,包括:根据所述待测控件对象生成与所述待测控件对象对应的第一脚本测试步骤,以及根据所述局部图像生成与所述局部图像对应的第二脚本测试步骤;

根据预设规则确定所述待测控件对象和所述局部图像的优先级,得到优先级结果;

根据所述第一脚本测试步骤、所述第二脚本测试步骤,以及所述优先级结果生成对应的脚本,以模拟用户对所述待测控件对象的操作;

所述预设规则为:

判断所述待测控件对象的特征属性是否能够唯一标识所述待测控件对象,如果所述待测控件对象的特征属性能够唯一标识所述待测控件对象,则确定所述优先级结果为控件优先,如果所述待测控件对象的特征属性不能够唯一标识所述待测控件对象,则确定所述优先级结果为图像优先;

或者,根据自动化测试应用场景的需求来确定所述待测控件对象和局部图像的优先级,如果在所述自动化测试应用场景中,所述待测控件对象的局部图像的图像质量满足预设条件,则直接确定所述优先级结果为图像优先。

2.如权利要求1所述的自动化测试方法,其特征在于,所述根据所述待测控件对象的特征属性和局部图像定位所述待测控件对象,包括:根据所述待测控件对象的特征属性、所述局部图像,以及所述优先级结果定位所述待测控件对象。

3.如权利要求2所述的自动化测试方法,其特征在于,所述优先级结果包括控件优先,所述根据所述待测控件对象的特征属性、所述局部图像,以及所述优先级结果定位所述待测控件对象,包括:判断所述优先级结果是否为所述控件优先;

如果所述优先级结果为所述控件优先,则根据所述待测控件对象的特征属性定位所述待测控件对象。

4.如权利要求2所述的自动化测试方法,其特征在于,所述优先级结果还包括图像优先,所述根据所述待测控件对象的特征属性、所述局部图像,以及所述优先级结果定位所述待测控件对象,包括:判断所述优先级结果是否为所述图像优先;

如果所述优先级结果为所述图像优先,则根据所述待测控件对象的局部图像定位所述待测控件对象。

5.如权利要求2所述的自动化测试方法,其特征在于,所述优先级结果包括控件和图像并行,所述根据所述待测控件对象的特征属性、所述局部图像,以及所述优先级结果定位所述待测控件对象,包括:判断所述优先级结果是否为所述控件和图像并行;

如果所述优先级结果为所述控件和图像并行,则根据所述待测控件对象的所述特征属性,或者所述局部图像定位所述待测控件对象。

6.如权利要求4所述的自动化测试方法,其特征在于,所述根据所述待测控件对象的局部图像定位所述待测控件对象,包括:对所述待测控件对象的局部图像进行模版匹配和特征点查找,以定位所述待测控件对象。

7.一种自动化测试装置,其特征在于,包括:

获取模块,用于获取待测控件对象的特征属性和局部图像;

脚本生成模块,用于根据所述待测控件对象和局部图像生成对应的脚本,以模拟用户对所述待测控件对象的操作;

测试模块,用于根据所述待测控件对象的特征属性和局部图像定位所述待测控件对象,并根据所述对应的脚本对所述待测控件对象进行自动化测试;

所述脚本生成模块包括:

测试步骤生成子模块,用于根据所述待测控件对象生成与所述待测控件对象对应的第一脚本测试步骤,以及根据所述局部图像生成与所述局部图像对应的第二脚本测试步骤;

优先级结果获取子模块,用于根据预设规则确定所述待测控件对象和所述局部图像的优先级,得到优先级结果;

脚本生成子模块,用于根据所述第一脚本测试步骤、所述第二脚本测试步骤,以及所述优先级结果生成对应的脚本,以模拟用户对所述待测控件对象的操作;

所述预设规则为:

判断所述待测控件对象的特征属性是否能够唯一标识所述待测控件对象,如果所述待测控件对象的特征属性能够唯一标识所述待测控件对象,则确定所述优先级结果为控件优先,如果所述待测控件对象的特征属性不能够唯一标识所述待测控件对象,则确定所述优先级结果为图像优先;

或者,根据自动化测试应用场景的需求来确定所述待测控件对象和局部图像的优先级,如果在所述自动化测试应用场景中,所述待测控件对象的局部图像的图像质量满足预设条件,则直接确定所述优先级结果为图像优先。

8.如权利要求7所述的自动化测试装置,其特征在于,所述测试模块具体用于:根据所述待测控件对象的特征属性、所述局部图像,以及所述优先级结果定位所述待测控件对象。

9.如权利要求8所述的自动化测试装置,其特征在于,所述优先级结果包括控件优先,所述测试模块还具体用于:判断所述优先级结果是否为所述控件优先;

如果所述优先级结果为所述控件优先,则根据所述待测控件对象的特征属性定位所述待测控件对象。

10.如权利要求8所述的自动化测试装置,其特征在于,所述优先级结果还包括图像优先,所述测试模块进一步具体用于:判断所述优先级结果是否为所述图像优先;

如果所述优先级结果为所述图像优先,则根据所述待测控件对象的局部图像定位所述待测控件对象。

11.如权利要求8所述的自动化测试装置,其特征在于,所述优先级结果包括控件和图像并行,所述测试模块进一步具体用于:判断所述优先级结果是否为所述控件和图像并行;

如果所述优先级结果为所述控件和图像并行,则根据所述待测控件对象的所述特征属性,或者所述局部图像定位所述待测控件对象。

12.如权利要求10所述的自动化测试装置,其特征在于,所述测试模块进一步具体用于:对所述待测控件对象的局部图像进行模版匹配和特征点查找,以定位所述待测控件对象。

13.一种移动终端,其特征在于,包括:

壳体;

处理器;

存储器;

电路板和电源电路;

其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为移动终端的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行:获取待测控件对象的特征属性和局部图像;根据所述待测控件对象和局部图像生成对应的脚本,以模拟用户对所述待测控件对象的操作;根据所述待测控件对象的特征属性和局部图像定位所述待测控件对象,并根据所述对应的脚本对所述待测控件对象进行自动化测试;

所述根据所述待测控件对象和局部图像生成对应的脚本,以模拟用户对所述待测控件对象的操作,包括:根据所述待测控件对象生成与所述待测控件对象对应的第一脚本测试步骤,以及根据所述局部图像生成与所述局部图像对应的第二脚本测试步骤;

根据预设规则确定所述待测控件对象和所述局部图像的优先级,得到优先级结果;

根据所述第一脚本测试步骤、所述第二脚本测试步骤,以及所述优先级结果生成对应的脚本,以模拟用户对所述待测控件对象的操作;

所述预设规则为:

判断所述待测控件对象的特征属性是否能够唯一标识所述待测控件对象,如果所述待测控件对象的特征属性能够唯一标识所述待测控件对象,则确定所述优先级结果为控件优先,如果所述待测控件对象的特征属性不能够唯一标识所述待测控件对象,则确定所述优先级结果为图像优先;

或者,根据自动化测试应用场景的需求来确定所述待测控件对象和局部图像的优先级,如果在所述自动化测试应用场景中,所述待测控件对象的局部图像的图像质量满足预设条件,则直接确定所述优先级结果为图像优先。

说明书 :

自动化测试方法、装置和移动终端

技术领域

[0001] 本发明涉及软件测试技术领域,尤其涉及一种自动化测试方法、装置和移动终端。

背景技术

[0002] 在迭代更新快速、机海战术盛行的Android智能机时代,项目周期短、测试周期缩短,决定了对软件自动化测试的迫切需求。相关技术中的自动化测试方法主要是根据坐标或控件点击,在添加检查点时,主要是根据获取相关控件或判断控件属性变化。如果在软件设备版本更替的过程中,控件变化会降低自动化测试脚本通用性,从而影响自动化测试效率。

发明内容

[0003] 本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
[0004] 为此,本发明的一个目的在于提出一种自动化测试方法,能够提高自动化测试脚本的稳健性和通用性,有效提升自动化测试效果。
[0005] 本发明的另一个目的在于提出一种自动化测试装置。
[0006] 本发明的另一个目的在于提出一种移动终端。
[0007] 为达到上述目的,本发明第一方面实施例提出的自动化测试方法,包括:获取待测控件对象的特征属性和局部图像;根据所述待测控件对象和局部图像生成对应的脚本,以模拟用户对所述待测控件对象的操作;根据所述待测控件对象的特征属性和局部图像定位所述待测控件对象,并根据所述对应的脚本对所述待测控件对象进行自动化测试。
[0008] 本发明第一方面实施例提出的自动化测试方法,通过获取待测控件对象的特征属性和局部图像;根据所述待测控件对象和局部图像生成对应的脚本,以模拟用户对所述待测控件对象的操作;根据所述待测控件对象的特征属性和局部图像定位所述待测控件对象,并根据所述对应的脚本对所述待测控件对象进行自动化测试。
[0009] 为达到上述目的,本发明第二方面实施例提出的自动化测试装置,包括:获取模块,用于获取待测控件对象的特征属性和局部图像;脚本生成模块,用于根据所述待测控件对象和局部图像生成对应的脚本,以模拟用户对所述待测控件对象的操作;测试模块,用于根据所述待测控件对象的特征属性和局部图像定位所述待测控件对象,并根据所述对应的脚本对所述待测控件对象进行自动化测试。
[0010] 本发明第二方面实施例提出的自动化测试装置,通过获取待测控件对象的特征属性和局部图像;根据所述待测控件对象和局部图像生成对应的脚本,以模拟用户对所述待测控件对象的操作;根据所述待测控件对象的特征属性和局部图像定位所述待测控件对象,并根据所述对应的脚本对所述待测控件对象进行自动化测试。
[0011] 为达到上述目的,本发明第三方面实施例提出的移动终端,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为移动终端的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行:获取待测控件对象的特征属性和局部图像;根据所述待测控件对象和局部图像生成对应的脚本,以模拟用户对所述待测控件对象的操作;根据所述待测控件对象的特征属性和局部图像定位所述待测控件对象,并根据所述对应的脚本对所述待测控件对象进行自动化测试。
[0012] 本发明第三方面实施例提出的移动终端,通过获取待测控件对象的特征属性和局部图像;根据所述待测控件对象和局部图像生成对应的脚本,以模拟用户对所述待测控件对象的操作;根据所述待测控件对象的特征属性和局部图像定位所述待测控件对象,并根据所述对应的脚本对所述待测控件对象进行自动化测试。
[0013] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0014] 本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0015] 图1是本发明一实施例提出的自动化测试方法的流程示意图;
[0016] 图2是本发明另一实施例提出的自动化测试方法的流程示意图;
[0017] 图3是本发明另一实施例提出的自动化测试方法的流程示意图;
[0018] 图4是本发明另一实施例提出的自动化测试方法的流程示意图;
[0019] 图5是本发明另一实施例提出的自动化测试方法的流程示意图;
[0020] 图6是本发明另一实施例提出的自动化测试装置的结构示意图;
[0021] 图7是本发明另一实施例提出的自动化测试装置的结构示意图。

具体实施方式

[0022] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0023] 图1是本发明一实施例提出的自动化测试方法的流程示意图,该自动化测试方法包括:
[0024] S101:获取待测控件对象的特征属性和局部图像。
[0025] 其中,控件是指Windows图形界面的组成部分,可以接受键盘或鼠标等输入设备的输入,从而完成某个特定的功能。常见的控件例如按钮、选项按钮、编辑框、列表框、滚动条,以及静态控件等。
[0026] 在本发明的实施例中,待测控件对象为需要运用自动化测试方法进行测试的控件。
[0027] 在本发明的实施例中,待测控件对象的特征属性可以是待测控件对象的控件属性中,控件特征明显,能够唯一标识该待测控件对象的控件属性。
[0028] 待测控件对象的特征属性例如可以包括待测控件对象的id标识,用于唯一标识该待测控件对象;文本是计算机的一种文档类型,该类文档主要用于记载和储存文字信息,而不是图像、声音和格式化数据,可以用于标识该待测控件对象的功能;控件类型,用于标识待测控件对象的种类。
[0029] 在本发明的实施例中,待测控件对象的局部图像为对该待测控件对象所截取的局部图像,例如,截取到的待测控件对象的局部图像可以用A表示。
[0030] 例如,假设待测控件对象为具有返回上一步骤的按钮,则控件对象的id标识可以为“button”,文本可以为“返回”,控件类型可以为“按钮”。
[0031] 在迭代更新快速、机海战术盛行的Android智能机时代,项目周期短、测试周期缩短,决定了对软件自动化测试的迫切需求。相关技术中的自动化测试方法主要是根据坐标或控件点击,在添加检查点时,主要是根据获取相关控件或判断控件属性变化。如果在软件设备版本更替的过程中,控件变化会降低自动化测试脚本通用性,从而影响自动化测试效率。
[0032] 具体地,在本发明的实施例中,可以在自动化测试的脚本录制阶段选定待测控件对象,并获取待测控件对象的所有控件属性,选取控件特征明显,能够唯一标识该待测控件对象的控件属性作为特征属性,进一步,截取待测控件对象的局部图像,以使后续在自动化测试的脚本回放阶段可以通过特征属性,或者局部图像定位该待测控件对象。其中,录制是在人工基于某个设备对被测应用进行操作的过程中,通过自动化工具自动记录并操作步骤、输入数据等信息。回放是基于录制的脚本测试步骤选择不同的设备自动还原之前人工操作的过程,是用例的回放。
[0033] S102:根据待测控件对象和局部图像生成对应的脚本,以模拟用户对待测控件对象的操作。
[0034] 可选地,可以在自动化测试的脚本回放阶段,通过根据优先级结果运行第一脚本测试步骤和第二脚本测试步骤,以模拟用户对待检测控件对象的操作。
[0035] 可选地,在自动化测试的脚本录制阶段,可以根据对待测控件对象的操作需求,生成与待测控件对象和局部图像生成对应的脚本,例如,可以将用户对待测控件对象的每一个操作步骤及被操作的控件对象记录下来,生成脚本测试步骤,用以模拟用户对待测控件对象的操作。
[0036] 例如,如果待测控件对象为按钮,在实际的待测控件按钮的应用场景中,用户需要点击按钮,则生成点击按钮和点击按钮的局部图像这两个脚本测试步骤,如果待测控件对象为滚动条,用户需要拉动滚动条,则生成拉动滚动条和拉动滚动条的局部图像这两个脚本测试步骤。
[0037] 可选地,根据待测控件对象和局部图像生成对应的脚本,以模拟用户对待测控件对象的操作,包括:根据待测控件对象生成与待测控件对象对应的第一脚本测试步骤,以及根据局部图像生成与局部图像对应的第二脚本测试步骤;根据预设规则确定待测控件对象和局部图像的优先级,得到优先级结果;根据第一脚本测试步骤、第二脚本测试步骤,以及优先级结果生成对应的脚本,以模拟用户对待测控件对象的操作。
[0038] S103:根据待测控件对象的特征属性和局部图像定位待测控件对象,并根据对应的脚本对待测控件对象进行自动化测试。
[0039] 在本发明的实施例中,通过待检测控件对象的特征属性定位待检测控件对象,也可以通过待检测控件对象的局部图像定位待检测控件对象,或者,也可以结合待检测控件对象的特征属性和局部图像定位待检测控件对象。
[0040] 在本发明的实施例中,根据待测控件对象的特征属性和局部图像的优先级,来确定使用合适的方式定位待测控件对象。
[0041] 可选地,若通过待检测控件对象的局部图像定位待检测控件对象,或者,通过结合待检测控件对象的特征属性和局部图像定位待检测控件对象时,可以对待测控件对象的局部图像进行模版匹配和特征点查找,以定位待测控件对象。
[0042] 例如,在自动化测试的脚本回放阶段,当定位到待测控件对象后,可以通过运行与待测控件对象对应的第一脚本测试步骤和第二脚本测试步骤,以模拟用户对待检测控件对象的操作,进行自动化测试。
[0043] 可选地,根据待测控件对象的特征属性和局部图像定位待测控件对象,包括:根据待测控件对象的特征属性、局部图像,以及优先级结果定位待测控件对象。
[0044] 本实施例中,通过根据待测控件对象和局部图像生成对应的脚本,以模拟用户对待测控件对象的操作,根据待测控件对象的特征属性和局部图像定位待测控件对象,并根据对应的脚本对待测控件对象进行自动化测试,能够提高自动化测试脚本的稳健性和通用性,扩展自动化测试方法的实现范围。
[0045] 图2是本发明另一实施例提出的自动化测试方法的流程示意图,该自动化测试方法包括:
[0046] S201:获取待测控件对象的特征属性和局部图像。
[0047] 其中,控件是指Windows图形界面的组成部分,可以接受键盘或鼠标等输入设备的输入,从而完成某个特定的功能。常见的控件例如按钮、选项按钮、编辑框、列表框、滚动条,以及静态控件等。
[0048] 在本发明的实施例中,待测控件对象为需要运用自动化测试方法进行测试的控件。
[0049] 在本发明的实施例中,待测控件对象的特征属性可以是待测控件对象的控件属性中,控件特征明显,能够唯一标识该待测控件对象的控件属性。
[0050] 待测控件对象的特征属性例如可以包括待测控件对象的id标识,用于唯一标识该待测控件对象;文本是计算机的一种文档类型,该类文档主要用于记载和储存文字信息,而不是图像、声音和格式化数据,可以用于标识该待测控件对象的功能;控件类型,用于标识待测控件对象的种类。
[0051] 在本发明的实施例中,待测控件对象的局部图像为对该待测控件对象所截取的局部图像,例如,截取到的待测控件对象的局部图像可以用A表示。
[0052] 例如,假设待测控件对象为具有返回上一步骤的按钮,则控件对象的id标识可以为“button”,文本可以为“返回”,控件类型可以为“按钮”。
[0053] 在迭代更新快速、机海战术盛行的Android智能机时代,项目周期短、测试周期缩短,决定了对软件自动化测试的迫切需求。相关技术中的自动化测试方法主要是根据坐标或控件点击,在添加检查点时,主要是根据获取相关控件或判断控件属性变化。如果在软件设备版本更替的过程中,控件变化会降低自动化测试脚本通用性,从而影响自动化测试效率。
[0054] 具体地,在本发明的实施例中,可以在自动化测试的脚本录制阶段选定待测控件对象,并获取待测控件对象的所有控件属性,选取控件特征明显,能够唯一标识该待测控件对象的控件属性作为特征属性,进一步,截取待测控件对象的局部图像,以使后续在自动化测试的脚本回放阶段可以通过特征属性,或者局部图像定位该待测控件对象。
[0055] 其中,录制是在人工基于某个设备对被测应用进行操作的过程中,通过自动化工具自动记录并操作步骤、输入数据等信息。
[0056] 回放是基于录制的脚本测试步骤选择不同的设备自动还原之前人工操作的过程,是用例的回放。
[0057] S202:根据待测控件对象生成与待测控件对象对应的第一脚本测试步骤,以及根据局部图像生成与局部图像对应的第二脚本测试步骤。
[0058] 可选地,可以在自动化测试的脚本回放阶段,通过根据优先级结果运行第一脚本测试步骤和第二脚本测试步骤,以模拟用户对待检测控件对象的操作。
[0059] 可选地,在自动化测试的脚本录制阶段,可以根据对待测控件对象的操作需求,生成与待测控件对象和局部图像生成对应的脚本,例如,可以将用户对待测控件对象的每一个操作步骤及被操作的控件对象记录下来,生成脚本测试步骤,用以模拟用户对待测控件对象的操作。
[0060] 例如,如果待测控件对象为按钮,在实际的待测控件按钮的应用场景中,用户需要点击按钮,则生成点击按钮和点击按钮的局部图像这两个脚本测试步骤,如果待测控件对象为滚动条,用户需要拉动滚动条,则生成拉动滚动条和拉动滚动条的局部图像这两个脚本测试步骤。
[0061] S203:根据预设规则确定待测控件对象和局部图像的优先级,得到优先级结果。
[0062] 其中,优先级结果包括控件优先、图像优先,或者控件和图像并行。
[0063] 在本发明的实施例中,预设规则可以为:判断待检测控件对象的特征属性是否能够唯一标识该待测控件对象,如果待检测控件对象的特征属性能够唯一标识该待测控件对象,则确定优先级结果为控件优先,如果待检测控件对象的特征属性不能够充分唯一标识该待检测控件对象,则确定优先级结果为图像优先,另外,也可以根据自动化测试应用场景的需求来确定待测控件对象和局部图像的优先级,如果在自动化测试应用场景中,待检测控件对象的局部图像的图像质量较高,特征点明显,则可以直接确定优先级结果为图像优先,本发明对此不做限制。
[0064] S204:根据第一脚本测试步骤、第二脚本测试步骤,以及优先级结果生成对应的脚本,以模拟用户对待测控件对象的操作。
[0065] 其中,第一脚本测试步骤为与待测控件对象对应的脚本测试步骤,第二脚本测试步骤为与待检测控件对象的局部图像对应的脚本测试步骤。
[0066] 在本发明的实施例中,可以根据第一脚本测试步骤、第二脚本测试步骤,以及优先级结果生成对应的脚本,其中,对应的脚本的回放过程例如,当优先级结果为控件优先时,执行第一脚本测试步骤;当优先级结果为图像优先时,执行第二脚本测试步骤;当优先级结果为控件和图像并行时,执行第一脚本测试步骤,或者,执行第二脚本测试步骤。
[0067] S205:根据待测控件对象的特征属性、局部图像,以及优先级结果定位待测控件对象。
[0068] 在本发明的实施例中,通过待检测控件对象的特征属性定位待检测控件对象,也可以通过待检测控件对象的局部图像定位待检测控件对象,或者,也可以结合待检测控件对象的特征属性和局部图像定位待检测控件对象。
[0069] 在本发明的实施例中,根据待测控件对象的特征属性和局部图像的优先级,来确定使用合适的方式定位待测控件对象。
[0070] 可选地,若通过待检测控件对象的局部图像定位待检测控件对象,或者,通过结合待检测控件对象的特征属性和局部图像定位待检测控件对象时,可以对待测控件对象的局部图像进行模版匹配和特征点查找,以定位待测控件对象。
[0071] 可选地,如图3所示,图3是本发明另一实施例提出的自动化测试方法的流程示意图,在步骤S205中,还可以包括:
[0072] S301:判断优先级结果是否为控件优先。
[0073] 在本发明的实施例中,在实际的待测控件对象的应用场景下,可以首先判断待检测控件对象的优先级结果,如果优先级结果为控件优先,即表明待检测控件对象的特征属性能够唯一标识待测控件对象,则触发执行步骤S302,如果优先级结果不为控件优先,则可以进一步判断优先级结果是否为其他可选的优先级。
[0074] S302:如果优先级结果为控件优先,则根据待测控件对象的特征属性定位待测控件对象。
[0075] 在本发明的实施例中,如果优先级结果为控件优先,则获取实际的待测控件对象的应用场景中,获取整个应用场景中的(应用场景例如,系统界面)的全部控件对象和全部控件对象的控件特征,用自动化测试的脚本录制阶段的待检测控件对象的特征属性,与获取到的全部控件对象的控件特征进行逐个比对,以在应用场景中定位到待检测控件。
[0076] 本实施例中,通过在优先级结果为控件优先时,根据待测控件对象的特征属性定位待测控件对象,使得在待检测控件的局部图像不能够充分唯一标识待检测控件对象时,能够通过特征属性定位待测控件对象,有效保证自动化测试脚本的回放阶段中脚本定位的精确性,提升自动化测试效果。
[0077] 可选地,如图4所示,图4是本发明另一实施例提出的自动化测试方法的流程示意图,在步骤S205中,还可以包括:
[0078] S401:判断优先级结果是否为图像优先。
[0079] 在本发明的实施例中,在实际的待测控件对象的应用场景下,可以首先判断待检测控件对象的优先级结果,如果优先级结果为图像优先,即表明待检测控件对象的局部图像能够唯一标识待测控件对象,则触发执行步骤S402,如果优先级结果不为图像优先,则可以进一步判断优先级结果是否为其他可选的优先级。
[0080] S402:如果优先级结果为图像优先,则根据待测控件对象的局部图像定位待测控件对象。
[0081] 在本发明的实施例中,如果优先级结果为图像优先,则获取实际的待测控件对象的应用场景中,截取整个应用场景所在设备的屏幕图像B,用自动化测试的脚本录制阶段的待检测控件对象的局部图像A与屏幕图像B进行图像匹配,以定位待测控件对象。
[0082] 可选地,根据待测控件对象的局部图像定位待测控件对象,包括:对待测控件对象的局部图像进行模版匹配和特征点查找,以定位待测控件对象。
[0083] 其中,模板匹配是以屏幕图像B的左上角为起点,设置与局部图像A的面积大小一致的匹配框C,以此将匹配框C在屏幕图像B上向右或向下移动,获取匹配框C中所框出的屏幕图像B的局部图像B’,其中,局部图像B’为图像序列,对比局部图像A与局部图像B’中的每个局部图像的各像素点的相似度,最终获取局部图像B’中像素点的相似度最大的局部图像A’,此像素点的相似度最大的局部图像A’中的控件对象,即为需要定位的待测控件对象。
[0084] 特征点匹配是提取局部图像A和屏幕图像B的特征点,其中,特征点例如灰度,或者位置,对比局部图像A和屏幕图像B中每个特征点的相似度,当有多个特征点相似,且相似的特征点对应的坐标值在误差范围内,则表示在屏幕图像B中有与局部图像A相似的图像,将屏幕图像B中与局部图像A相似的图像所框出的控件作为需要定位的待测控件对象。
[0085] 本实施例中,通过在优先级结果为图像优先时,根据待测控件对象的局部图像定位待测控件对象,使得在待检测控件的特征属性不能够充分唯一标识待检测控件对象时,能够通过局部图像定位待测控件对象,有效保证自动化测试脚本的回放阶段中脚本定位的精确性,提升自动化测试效果。
[0086] 可选地,如图5所示,图5是本发明另一实施例提出的自动化测试方法的流程示意图,在步骤S205中,还可以包括:
[0087] S501:判断优先级结果是否为控件和图像并行。
[0088] 在本发明的实施例中,在实际的待测控件对象的应用场景下,可以首先判断待检测控件对象的优先级结果,如果优先级结果为控件和图像并行,即表明待检测控件对象的特征属性和局部图像均能够唯一标识待测控件对象,则触发执行步骤S502,如果优先级结果不为控件和图像并行,则可以进一步判断优先级结果是否为其他可选的优先级。
[0089] S502:如果优先级结果为控件和图像并行,则根据待测控件对象的特征属性,或者局部图像定位待测控件对象。
[0090] 在本发明的实施例中,如果优先级结果为控件和图像并行,则可以根据实际的待测控件对象的应用场景的需求,来选择根据待测控件对象的特征属性,或者,局部图像定位待测控件对象。
[0091] 本实施例中,通过在优先级结果为控件和图像并行时,根据实际的待测控件对象的应用场景的需求,来选择根据待测控件对象的特征属性,或者,局部图像定位待测控件对象,有效提升自动化测试方法的适用性,通过结合特征属性的匹配和局部图像的匹配,可提高测试脚本的通用性,扩展自动化实现范围。
[0092] S206:根据对应的脚本对待测控件对象进行自动化测试。
[0093] 例如,在自动化测试的脚本回放阶段,当定位到待测控件对象后,可以通过运行与待测控件对象对应的第一脚本测试步骤和第二脚本测试步骤,以模拟用户对待检测控件对象的操作,进行自动化测试。
[0094] 本实施例中,通过根据待检测控件的优先级结果确定合适的定位策略,提升自动化测试脚本回放时待检测控件对象定位的准确性和兼容性。通过根据待测控件对象和局部图像生成对应的脚本,以模拟用户对待测控件对象的操作,根据待测控件对象的特征属性和局部图像定位待测控件对象,并根据对应的脚本对待测控件对象进行自动化测试,能够提高自动化测试脚本的稳健性和通用性,扩展自动化测试方法的实现范围。
[0095] 图6是本发明另一实施例提出的自动化测试装置的结构示意图,该自动化测试装置60包括获取模块601,用于获取待测控件对象的特征属性和局部图像;脚本生成模块602,用于根据待测控件对象和局部图像生成对应的脚本,以模拟用户对待测控件对象的操作;测试模块603,用于根据待测控件对象的特征属性和局部图像定位待测控件对象,并根据对应的脚本对待测控件对象进行自动化测试。
[0096] 获取模块601,用于获取待测控件对象的特征属性和局部图像。
[0097] 其中,控件是指Windows图形界面的组成部分,可以接受键盘或鼠标等输入设备的输入,从而完成某个特定的功能。常见的控件例如按钮、选项按钮、编辑框、列表框、滚动条,以及静态控件等。
[0098] 在本发明的实施例中,待测控件对象为需要运用自动化测试方法进行测试的控件。
[0099] 在本发明的实施例中,待测控件对象的特征属性可以是待测控件对象的控件属性中,控件特征明显,能够唯一标识该待测控件对象的控件属性。
[0100] 待测控件对象的特征属性例如可以包括待测控件对象的id标识,用于唯一标识该待测控件对象;文本是计算机的一种文档类型,该类文档主要用于记载和储存文字信息,而不是图像、声音和格式化数据,可以用于标识该待测控件对象的功能;控件类型,用于标识待测控件对象的种类。
[0101] 在本发明的实施例中,待测控件对象的局部图像为对该待测控件对象所截取的局部图像,例如,截取到的待测控件对象的局部图像可以用A表示。
[0102] 例如,假设待测控件对象为具有返回上一步骤的按钮,则控件对象的id标识可以为“button”,文本可以为“返回”,控件类型可以为“按钮”。
[0103] 在迭代更新快速、机海战术盛行的Android智能机时代,项目周期短、测试周期缩短,决定了对软件自动化测试的迫切需求。相关技术中的自动化测试方法主要是根据坐标或控件点击,在添加检查点时,主要是根据获取相关控件或判断控件属性变化。如果在软件设备版本更替的过程中,控件变化会降低自动化测试脚本通用性,从而影响自动化测试效率。
[0104] 具体地,在本发明的实施例中,可以在自动化测试的脚本录制阶段选定待测控件对象,并获取待测控件对象的所有控件属性,选取控件特征明显,能够唯一标识该待测控件对象的控件属性作为特征属性,进一步,截取待测控件对象的局部图像,以使后续在自动化测试的脚本回放阶段可以通过特征属性,或者局部图像定位该待测控件对象。其中,录制是在人工基于某个设备对被测应用进行操作的过程中,通过自动化工具自动记录并操作步骤、输入数据等信息。
[0105] 回放是基于录制的脚本测试步骤选择不同的设备自动还原之前人工操作的过程,是用例的回放。
[0106] 脚本生成模块602,用于根据待测控件对象和局部图像生成对应的脚本,以模拟用户对待测控件对象的操作。
[0107] 可选地,可以在自动化测试的脚本回放阶段,通过根据优先级结果运行第一脚本测试步骤和第二脚本测试步骤,以模拟用户对待检测控件对象的操作。
[0108] 可选地,在自动化测试的脚本录制阶段,可以根据对待测控件对象的操作需求,生成与待测控件对象和局部图像生成对应的脚本,例如,可以将用户对待测控件对象的每一个操作步骤及被操作的控件对象记录下来,生成脚本测试步骤,用以模拟用户对待测控件对象的操作。
[0109] 例如,如果待测控件对象为按钮,在实际的待测控件按钮的应用场景中,用户需要点击按钮,则生成点击按钮和点击按钮的局部图像这两个脚本测试步骤,如果待测控件对象为滚动条,用户需要拉动滚动条,则生成拉动滚动条和拉动滚动条的局部图像这两个脚本测试步骤。
[0110] 可选地,如图7所示,脚本生成模块602包括:
[0111] 测试步骤生成子模块6021,用于根据待测控件对象生成与待测控件对象对应的第一脚本测试步骤,以及根据局部图像生成与局部图像对应的第二脚本测试步骤。
[0112] 可选地,可以在自动化测试的脚本回放阶段,通过根据优先级结果运行第一脚本测试步骤和第二脚本测试步骤,以模拟用户对待检测控件对象的操作。
[0113] 可选地,在自动化测试的脚本录制阶段,可以根据对待测控件对象的操作需求,生成与待测控件对象和局部图像生成对应的脚本,例如,可以将用户对待测控件对象的每一个操作步骤及被操作的控件对象记录下来,生成脚本测试步骤,用以模拟用户对待测控件对象的操作。
[0114] 例如,如果待测控件对象为按钮,在实际的待测控件按钮的应用场景中,用户需要点击按钮,则生成点击按钮和点击按钮的局部图像这两个脚本测试步骤,如果待测控件对象为滚动条,用户需要拉动滚动条,则生成拉动滚动条和拉动滚动条的局部图像这两个脚本测试步骤。
[0115] 优先级结果获取子模块6022,用于根据预设规则确定待测控件对象和局部图像的优先级,得到优先级结果。
[0116] 其中,优先级结果包括控件优先、图像优先,或者控件和图像并行。
[0117] 在本发明的实施例中,预设规则可以为:判断待检测控件对象的特征属性是否能够唯一标识该待测控件对象,如果待检测控件对象的特征属性能够唯一标识该待测控件对象,则确定优先级结果为控件优先,如果待检测控件对象的特征属性不能够充分唯一标识该待检测控件对象,则确定优先级结果为图像优先,另外,也可以根据自动化测试应用场景的需求来确定待测控件对象和局部图像的优先级,如果在自动化测试应用场景中,待检测控件对象的局部图像的图像质量较高,特征点明显,则可以直接确定优先级结果为图像优先,本发明对此不做限制。
[0118] 脚本生成子模块6023,用于根据第一脚本测试步骤、第二脚本测试步骤,以及优先级结果生成对应的脚本,以模拟用户对待测控件对象的操作。
[0119] 其中,第一脚本测试步骤为与待测控件对象对应的脚本测试步骤,第二脚本测试步骤为与待检测控件对象的局部图像对应的脚本测试步骤。
[0120] 在本发明的实施例中,可以根据第一脚本测试步骤、第二脚本测试步骤,以及优先级结果生成对应的脚本,其中,对应的脚本的回放过程例如,当优先级结果为控件优先时,执行第一脚本测试步骤;当优先级结果为图像优先时,执行第二脚本测试步骤;当优先级结果为控件和图像并行时,执行第一脚本测试步骤,或者,执行第二脚本测试步骤。
[0121] 测试模块603,用于根据待测控件对象的特征属性和局部图像定位待测控件对象,并根据对应的脚本对待测控件对象进行自动化测试。
[0122] 在本发明的实施例中,通过待检测控件对象的特征属性定位待检测控件对象,也可以通过待检测控件对象的局部图像定位待检测控件对象,或者,也可以结合待检测控件对象的特征属性和局部图像定位待检测控件对象。
[0123] 在本发明的实施例中,根据待测控件对象的特征属性和局部图像的优先级,来确定使用合适的方式定位待测控件对象。
[0124] 可选地,若通过待检测控件对象的局部图像定位待检测控件对象,或者,通过结合待检测控件对象的特征属性和局部图像定位待检测控件对象时,可以对待测控件对象的局部图像进行模版匹配和特征点查找,以定位待测控件对象。
[0125] 例如,在自动化测试的脚本回放阶段,当定位到待测控件对象后,可以通过运行与待测控件对象对应的第一脚本测试步骤和第二脚本测试步骤,以模拟用户对待检测控件对象的操作,进行自动化测试。
[0126] 可选地,测试模块603具体用于:根据待测控件对象的特征属性、局部图像,以及优先级结果定位待测控件对象。
[0127] 可选地,优先级结果包括控件优先,测试模块603还具体用于:判断优先级结果是否为控件优先;如果优先级结果为控件优先,则根据待测控件对象的特征属性定位待测控件对象。
[0128] 在本发明的实施例中,如果优先级结果为控件优先,则获取实际的待测控件对象的应用场景中,获取整个应用场景中的(应用场景例如,系统界面)的全部控件对象和全部控件对象的控件特征,用自动化测试的脚本录制阶段的待检测控件对象的特征属性,与获取到的全部控件对象的控件特征进行逐个比对,以在应用场景中定位到待检测控件。
[0129] 本实施例中,通过在优先级结果为控件优先时,根据待测控件对象的特征属性定位待测控件对象,使得在待检测控件的局部图像不能够充分唯一标识待检测控件对象时,能够通过特征属性定位待测控件对象,有效保证自动化测试脚本的回放阶段中脚本定位的精确性,提升自动化测试效果。
[0130] 可选地,优先级结果还包括图像优先,测试模块603进一步具体用于:判断优先级结果是否为图像优先;如果优先级结果为图像优先,则根据待测控件对象的局部图像定位待测控件对象。
[0131] 在本发明的实施例中,如果优先级结果为图像优先,则获取实际的待测控件对象的应用场景中,截取整个应用场景所在设备的屏幕图像B,用自动化测试的脚本录制阶段的待检测控件对象的局部图像A与屏幕图像B进行图像匹配,以定位待测控件对象。
[0132] 可选地,根据待测控件对象的局部图像定位待测控件对象,包括:对待测控件对象的局部图像进行模版匹配和特征点查找,以定位待测控件对象。
[0133] 其中,模板匹配是以屏幕图像B的左上角为起点,设置与局部图像A的面积大小一致的匹配框C,以此将匹配框C在屏幕图像B上向右或向下移动,获取匹配框C中所框出的屏幕图像B的局部图像B’,其中,局部图像B’为图像序列,对比局部图像A与局部图像B’中的每个局部图像的各像素点的相似度,最终获取局部图像B’中像素点的相似度最大的局部图像A’,此像素点的相似度最大的局部图像A’中的控件对象,即为需要定位的待测控件对象。
[0134] 特征点匹配是提取局部图像A和屏幕图像B的特征点,其中,特征点例如灰度,或者位置,对比局部图像A和屏幕图像B中每个特征点的相似度,当有多个特征点相似,且相似的特征点对应的坐标值在误差范围内,则表示在屏幕图像B中有与局部图像A相似的图像,将屏幕图像B中与局部图像A相似的图像所框出的控件作为需要定位的待测控件对象。
[0135] 本实施例中,通过在优先级结果为图像优先时,根据待测控件对象的局部图像定位待测控件对象,使得在待检测控件的特征属性不能够充分唯一标识待检测控件对象时,能够通过局部图像定位待测控件对象,有效保证自动化测试脚本的回放阶段中脚本定位的精确性,提升自动化测试效果。
[0136] 可选地,优先级结果包括控件和图像并行,测试模块603进一步具体用于:判断优先级结果是否为控件和图像并行;如果优先级结果为控件和图像并行,则根据待测控件对象的特征属性,或者局部图像定位待测控件对象。
[0137] 在本发明的实施例中,如果优先级结果为控件和图像并行,则可以根据实际的待测控件对象的应用场景的需求,来选择根据待测控件对象的特征属性,或者,局部图像定位待测控件对象。
[0138] 本实施例中,通过在优先级结果为控件和图像并行时,根据实际的待测控件对象的应用场景的需求,来选择根据待测控件对象的特征属性,或者,局部图像定位待测控件对象,有效提升自动化测试方法的适用性,通过结合特征属性的匹配和局部图像的匹配,可提高测试脚本的通用性,扩展自动化实现范围。
[0139] 可选地,测试模块603进一步具体用于:对待测控件对象的局部图像进行模版匹配和特征点查找,以定位待测控件对象。
[0140] 本实施例中,通过根据待测控件对象和局部图像生成对应的脚本,以模拟用户对待测控件对象的操作,根据待测控件对象的特征属性和局部图像定位待测控件对象,并根据对应的脚本对待测控件对象进行自动化测试,能够提高自动化测试脚本的稳健性和通用性,扩展自动化测试方法的实现范围。
[0141] 本发明实施例还提供了一种移动终端,该移动终端包括壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为移动终端的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行:
[0142] S101’:获取待测控件对象的特征属性和局部图像。
[0143] 其中,控件是指Windows图形界面的组成部分,可以接受键盘或鼠标等输入设备的输入,从而完成某个特定的功能。常见的控件例如按钮、选项按钮、编辑框、列表框、滚动条,以及静态控件等。
[0144] 在本发明的实施例中,待测控件对象为需要运用自动化测试方法进行测试的控件。
[0145] 在本发明的实施例中,待测控件对象的特征属性可以是待测控件对象的控件属性中,控件特征明显,能够唯一标识该待测控件对象的控件属性。
[0146] 待测控件对象的特征属性例如可以包括待测控件对象的id标识,用于唯一标识该待测控件对象;文本是计算机的一种文档类型,该类文档主要用于记载和储存文字信息,而不是图像、声音和格式化数据,可以用于标识该待测控件对象的功能;控件类型,用于标识待测控件对象的种类。
[0147] 在本发明的实施例中,待测控件对象的局部图像为对该待测控件对象所截取的局部图像,例如,截取到的待测控件对象的局部图像可以用A表示。
[0148] 例如,假设待测控件对象为具有返回上一步骤的按钮,则控件对象的id标识可以为“button”,文本可以为“返回”,控件类型可以为“按钮”。
[0149] 在迭代更新快速、机海战术盛行的Android智能机时代,项目周期短、测试周期缩短,决定了对软件自动化测试的迫切需求。相关技术中的自动化测试方法主要是根据坐标或控件点击,在添加检查点时,主要是根据获取相关控件或判断控件属性变化。如果在软件设备版本更替的过程中,控件变化会降低自动化测试脚本通用性,从而影响自动化测试效率。
[0150] 具体地,在本发明的实施例中,可以在自动化测试的脚本录制阶段选定待测控件对象,并获取待测控件对象的所有控件属性,选取控件特征明显,能够唯一标识该待测控件对象的控件属性作为特征属性,进一步,截取待测控件对象的局部图像,以使后续在自动化测试的脚本回放阶段可以通过特征属性,或者局部图像定位该待测控件对象。其中,录制是在人工基于某个设备对被测应用进行操作的过程中,通过自动化工具自动记录并操作步骤、输入数据等信息。回放是基于录制的脚本测试步骤选择不同的设备自动还原之前人工操作的过程,是用例的回放。
[0151] S102’:根据待测控件对象和局部图像生成对应的脚本,以模拟用户对待测控件对象的操作。
[0152] 可选地,可以在自动化测试的脚本回放阶段,通过根据优先级结果运行第一脚本测试步骤和第二脚本测试步骤,以模拟用户对待检测控件对象的操作。
[0153] 可选地,在自动化测试的脚本录制阶段,可以根据对待测控件对象的操作需求,生成与待测控件对象和局部图像生成对应的脚本,例如,可以将用户对待测控件对象的每一个操作步骤及被操作的控件对象记录下来,生成脚本测试步骤,用以模拟用户对待测控件对象的操作。
[0154] 例如,如果待测控件对象为按钮,在实际的待测控件按钮的应用场景中,用户需要点击按钮,则生成点击按钮和点击按钮的局部图像这两个脚本测试步骤,如果待测控件对象为滚动条,用户需要拉动滚动条,则生成拉动滚动条和拉动滚动条的局部图像这两个脚本测试步骤。
[0155] 可选地,根据待测控件对象和局部图像生成对应的脚本,以模拟用户对待测控件对象的操作,包括:根据待测控件对象生成与待测控件对象对应的第一脚本测试步骤,以及根据局部图像生成与局部图像对应的第二脚本测试步骤;根据预设规则确定待测控件对象和局部图像的优先级,得到优先级结果;根据第一脚本测试步骤、第二脚本测试步骤,以及优先级结果生成对应的脚本,以模拟用户对待测控件对象的操作。
[0156] S103’:根据待测控件对象的特征属性和局部图像定位待测控件对象,并根据对应的脚本对待测控件对象进行自动化测试。
[0157] 在本发明的实施例中,通过待检测控件对象的特征属性定位待检测控件对象,也可以通过待检测控件对象的局部图像定位待检测控件对象,或者,也可以结合待检测控件对象的特征属性和局部图像定位待检测控件对象。
[0158] 在本发明的实施例中,根据待测控件对象的特征属性和局部图像的优先级,来确定使用合适的方式定位待测控件对象。
[0159] 可选地,若通过待检测控件对象的局部图像定位待检测控件对象,或者,通过结合待检测控件对象的特征属性和局部图像定位待检测控件对象时,可以对待测控件对象的局部图像进行模版匹配和特征点查找,以定位待测控件对象。
[0160] 例如,在自动化测试的脚本回放阶段,当定位到待测控件对象后,可以通过运行与待测控件对象对应的第一脚本测试步骤和第二脚本测试步骤,以模拟用户对待检测控件对象的操作,进行自动化测试。
[0161] 可选地,根据待测控件对象的特征属性和局部图像定位待测控件对象,包括:根据待测控件对象的特征属性、局部图像,以及优先级结果定位待测控件对象。
[0162] 本实施例中,通过根据待测控件对象和局部图像生成对应的脚本,以模拟用户对待测控件对象的操作,根据待测控件对象的特征属性和局部图像定位待测控件对象,并根据对应的脚本对待测控件对象进行自动化测试,能够提高自动化测试脚本的稳健性和通用性,扩展自动化测试方法的实现范围。
[0163] 另一实施例中,处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行:
[0164] S201’:获取待测控件对象的特征属性和局部图像。
[0165] 其中,控件是指Windows图形界面的组成部分,可以接受键盘或鼠标等输入设备的输入,从而完成某个特定的功能。常见的控件例如按钮、选项按钮、编辑框、列表框、滚动条,以及静态控件等。
[0166] 在本发明的实施例中,待测控件对象为需要运用自动化测试方法进行测试的控件。
[0167] 在本发明的实施例中,待测控件对象的特征属性可以是待测控件对象的控件属性中,控件特征明显,能够唯一标识该待测控件对象的控件属性。
[0168] 待测控件对象的特征属性例如可以包括待测控件对象的id标识,用于唯一标识该待测控件对象;文本是计算机的一种文档类型,该类文档主要用于记载和储存文字信息,而不是图像、声音和格式化数据,可以用于标识该待测控件对象的功能;控件类型,用于标识待测控件对象的种类。
[0169] 在本发明的实施例中,待测控件对象的局部图像为对该待测控件对象所截取的局部图像,例如,截取到的待测控件对象的局部图像可以用A表示。
[0170] 例如,假设待测控件对象为具有返回上一步骤的按钮,则控件对象的id标识可以为“button”,文本可以为“返回”,控件类型可以为“按钮”。
[0171] 在迭代更新快速、机海战术盛行的Android智能机时代,项目周期短、测试周期缩短,决定了对软件自动化测试的迫切需求。相关技术中的自动化测试方法主要是根据坐标或控件点击,在添加检查点时,主要是根据获取相关控件或判断控件属性变化。如果在软件设备版本更替的过程中,控件变化会降低自动化测试脚本通用性,从而影响自动化测试效率。
[0172] 具体地,在本发明的实施例中,可以在自动化测试的脚本录制阶段选定待测控件对象,并获取待测控件对象的所有控件属性,选取控件特征明显,能够唯一标识该待测控件对象的控件属性作为特征属性,进一步,截取待测控件对象的局部图像,以使后续在自动化测试的脚本回放阶段可以通过特征属性,或者局部图像定位该待测控件对象。
[0173] 其中,录制是在人工基于某个设备对被测应用进行操作的过程中,通过自动化工具自动记录并操作步骤、输入数据等信息。
[0174] 回放是基于录制的脚本测试步骤选择不同的设备自动还原之前人工操作的过程,是用例的回放。
[0175] S202’:根据待测控件对象生成与待测控件对象对应的第一脚本测试步骤,以及根据局部图像生成与局部图像对应的第二脚本测试步骤。
[0176] 可选地,可以在自动化测试的脚本回放阶段,通过根据优先级结果运行第一脚本测试步骤和第二脚本测试步骤,以模拟用户对待检测控件对象的操作。
[0177] 可选地,在自动化测试的脚本录制阶段,可以根据对待测控件对象的操作需求,生成与待测控件对象和局部图像生成对应的脚本,例如,可以将用户对待测控件对象的每一个操作步骤及被操作的控件对象记录下来,生成脚本测试步骤,用以模拟用户对待测控件对象的操作。
[0178] 例如,如果待测控件对象为按钮,在实际的待测控件按钮的应用场景中,用户需要点击按钮,则生成点击按钮和点击按钮的局部图像这两个脚本测试步骤,如果待测控件对象为滚动条,用户需要拉动滚动条,则生成拉动滚动条和拉动滚动条的局部图像这两个脚本测试步骤。
[0179] S203’:根据预设规则确定待测控件对象和局部图像的优先级,得到优先级结果。
[0180] 其中,优先级结果包括控件优先、图像优先,或者控件和图像并行。
[0181] 在本发明的实施例中,预设规则可以为:判断待检测控件对象的特征属性是否能够唯一标识该待测控件对象,如果待检测控件对象的特征属性能够唯一标识该待测控件对象,则确定优先级结果为控件优先,如果待检测控件对象的特征属性不能够充分唯一标识该待检测控件对象,则确定优先级结果为图像优先,另外,也可以根据自动化测试应用场景的需求来确定待测控件对象和局部图像的优先级,如果在自动化测试应用场景中,待检测控件对象的局部图像的图像质量较高,特征点明显,则可以直接确定优先级结果为图像优先,本发明对此不做限制。
[0182] S204’:根据第一脚本测试步骤、第二脚本测试步骤,以及优先级结果生成对应的脚本,以模拟用户对待测控件对象的操作。
[0183] 其中,第一脚本测试步骤为与待测控件对象对应的脚本测试步骤,第二脚本测试步骤为与待检测控件对象的局部图像对应的脚本测试步骤。
[0184] 在本发明的实施例中,可以根据第一脚本测试步骤、第二脚本测试步骤,以及优先级结果生成对应的脚本,其中,对应的脚本的回放过程例如,当优先级结果为控件优先时,执行第一脚本测试步骤;当优先级结果为图像优先时,执行第二脚本测试步骤;当优先级结果为控件和图像并行时,执行第一脚本测试步骤,或者,执行第二脚本测试步骤。
[0185] S205’:根据待测控件对象的特征属性、局部图像,以及优先级结果定位待测控件对象。
[0186] 在本发明的实施例中,通过待检测控件对象的特征属性定位待检测控件对象,也可以通过待检测控件对象的局部图像定位待检测控件对象,或者,也可以结合待检测控件对象的特征属性和局部图像定位待检测控件对象。
[0187] 在本发明的实施例中,根据待测控件对象的特征属性和局部图像的优先级,来确定使用合适的方式定位待测控件对象。
[0188] 可选地,若通过待检测控件对象的局部图像定位待检测控件对象,或者,通过结合待检测控件对象的特征属性和局部图像定位待检测控件对象时,可以对待测控件对象的局部图像进行模版匹配和特征点查找,以定位待测控件对象。
[0189] 另一实施例中,处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行:
[0190] S301’:判断优先级结果是否为控件优先。
[0191] 在本发明的实施例中,在实际的待测控件对象的应用场景下,可以首先判断待检测控件对象的优先级结果,如果优先级结果为控件优先,即表明待检测控件对象的特征属性能够唯一标识待测控件对象,则触发执行步骤S302’,如果优先级结果不为控件优先,则可以进一步判断优先级结果是否为其他可选的优先级。
[0192] S302’:如果优先级结果为控件优先,则根据待测控件对象的特征属性定位待测控件对象。
[0193] 在本发明的实施例中,如果优先级结果为控件优先,则获取实际的待测控件对象的应用场景中,获取整个应用场景中的(应用场景例如,系统界面)的全部控件对象和全部控件对象的控件特征,用自动化测试的脚本录制阶段的待检测控件对象的特征属性,与获取到的全部控件对象的控件特征进行逐个比对,以在应用场景中定位到待检测控件。
[0194] 本实施例中,通过在优先级结果为控件优先时,根据待测控件对象的特征属性定位待测控件对象,使得在待检测控件的局部图像不能够充分唯一标识待检测控件对象时,能够通过特征属性定位待测控件对象,有效保证自动化测试脚本的回放阶段中脚本定位的精确性,提升自动化测试效果。
[0195] 另一实施例中,处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行:
[0196] S401’:判断优先级结果是否为图像优先。
[0197] 在本发明的实施例中,在实际的待测控件对象的应用场景下,可以首先判断待检测控件对象的优先级结果,如果优先级结果为图像优先,即表明待检测控件对象的局部图像能够唯一标识待测控件对象,则触发执行步骤S402’,如果优先级结果不为图像优先,则可以进一步判断优先级结果是否为其他可选的优先级。
[0198] S402’:如果优先级结果为图像优先,则根据待测控件对象的局部图像定位待测控件对象。
[0199] 在本发明的实施例中,如果优先级结果为图像优先,则获取实际的待测控件对象的应用场景中,截取整个应用场景所在设备的屏幕图像B,用自动化测试的脚本录制阶段的待检测控件对象的局部图像A与屏幕图像B进行图像匹配,以定位待测控件对象。
[0200] 可选地,根据待测控件对象的局部图像定位待测控件对象,包括:对待测控件对象的局部图像进行模版匹配和特征点查找,以定位待测控件对象。
[0201] 其中,模板匹配是以屏幕图像B的左上角为起点,设置与局部图像A的面积大小一致的匹配框C,以此将匹配框C在屏幕图像B上向右或向下移动,获取匹配框C中所框出的屏幕图像B的局部图像B’,其中,局部图像B’为图像序列,对比局部图像A与局部图像B’中的每个局部图像的各像素点的相似度,最终获取局部图像B’中像素点的相似度最大的局部图像A’,此像素点的相似度最大的局部图像A’中的控件对象,即为需要定位的待测控件对象。
[0202] 特征点匹配是提取局部图像A和屏幕图像B的特征点,其中,特征点例如灰度,或者位置,对比局部图像A和屏幕图像B中每个特征点的相似度,当有多个特征点相似,且相似的特征点对应的坐标值在误差范围内,则表示在屏幕图像B中有与局部图像A相似的图像,将屏幕图像B中与局部图像A相似的图像所框出的控件作为需要定位的待测控件对象。
[0203] 本实施例中,通过在优先级结果为图像优先时,根据待测控件对象的局部图像定位待测控件对象,使得在待检测控件的特征属性不能够充分唯一标识待检测控件对象时,能够通过局部图像定位待测控件对象,有效保证自动化测试脚本的回放阶段中脚本定位的精确性,提升自动化测试效果。
[0204] 另一实施例中,处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行:
[0205] S501’:判断优先级结果是否为控件和图像并行。
[0206] 在本发明的实施例中,在实际的待测控件对象的应用场景下,可以首先判断待检测控件对象的优先级结果,如果优先级结果为控件和图像并行,即表明待检测控件对象的特征属性和局部图像均能够唯一标识待测控件对象,则触发执行步骤S502’,如果优先级结果不为控件和图像并行,则可以进一步判断优先级结果是否为其他可选的优先级。
[0207] S502’:如果优先级结果为控件和图像并行,则根据待测控件对象的特征属性,或者局部图像定位待测控件对象。
[0208] 在本发明的实施例中,如果优先级结果为控件和图像并行,则可以根据实际的待测控件对象的应用场景的需求,来选择根据待测控件对象的特征属性,或者,局部图像定位待测控件对象。
[0209] 本实施例中,通过在优先级结果为控件和图像并行时,根据实际的待测控件对象的应用场景的需求,来选择根据待测控件对象的特征属性,或者,局部图像定位待测控件对象,有效提升自动化测试方法的适用性,通过结合特征属性的匹配和局部图像的匹配,可提高测试脚本的通用性,扩展自动化实现范围。
[0210] S206’:根据对应的脚本对待测控件对象进行自动化测试。
[0211] 例如,在自动化测试的脚本回放阶段,当定位到待测控件对象后,可以通过运行与待测控件对象对应的第一脚本测试步骤和第二脚本测试步骤,以模拟用户对待检测控件对象的操作,进行自动化测试。
[0212] 本实施例中,通过根据待检测控件的优先级结果确定合适的定位策略,提升自动化测试脚本回放时待检测控件对象定位的准确性和兼容性。通过根据待测控件对象和局部图像生成对应的脚本,以模拟用户对待测控件对象的操作,根据待测控件对象的特征属性和局部图像定位待测控件对象,并根据对应的脚本对待测控件对象进行自动化测试,能够提高自动化测试脚本的稳健性和通用性,扩展自动化测试方法的实现范围。
[0213] 需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0214] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0215] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0216] 本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0217] 此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0218] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0219] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0220] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。