用于自动化测试的方法、装置、设备及存储介质与流程

未命名 09-08 阅读:63 评论:0


1.本发明的实施方式涉及自动化测试领域,更具体地,本发明的实施方式涉及用于自动化测试的方法、装置、设备及存储介质。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本技术的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。
3.在现有的自动测试技术中,用户界面自动化遍历测试可以模拟用户在用户界面上的操作,以检查应用程序的功能和性能,从而帮助开发人员更快地检测和修复应用程序中的错误,确保应用程序的质量。
4.在现有技术中,已经出现一些用户界面自动化遍历测试方案,其通常利用算法将界面图片划分出若干个图形,然后依靠代码模拟点击操作每个图形,从而实现遍历测试。但由于不同操作系统的元素图形具有各异性,且界面的操作类型也具有多样性,因此,现有的用户界面自动化遍历测试方案难以覆盖所有类型的测试元素与测试操作,导致测试用例的完整性较差,无法实现完整可靠的自动化测试。


技术实现要素:

5.出于不同操作系统的元素图形以及界面操作类型具有各异性的原因,现有技术难以覆盖所有类型的测试元素与测试操作,导致测试用例的完整性较差。
6.为此,非常需要一种改进的自动化测试方案,以增加测试用例的广度,提高了自动化测试的可靠性和完整性。
7.在本上下文中,本发明的实施方式期望提供一种用于自动化测试的方法、装置、设备及存储介质。
8.在本发明实施方式的第一方面中,提供了一种用于自动化测试的方法,包括:获取待测界面;按照预设优先级次序执行一个或多个预设识别策略,以识别待测界面,得到待测界面中的测试元素及与之绑定的测试操作;以及将测试元素及与之绑定的测试操作合成测试用例,以用于自动化测试。
9.在本发明的一个实施例中,该多个预设识别策略包括:元素匹配策略、模型识别策略和算法识别策略;其中多个预设识别策略的预设优先级次序为元素匹配策略优先于模型识别策略,模型识别策略优先于算法识别策略。
10.在本发明的另一实施例中,该识别步骤包括:利用元素匹配策略识别待测界面,得到第一批测试元素及与之绑定的测试操作;响应于待测界面中存在未成功识别的第一区域,则利用模型识别策略识别第一区域,得到第二批测试元素及与之绑定的测试操作;以及响应于第一区域中存在未成功识别的第二区域,则利用算法识别策略识别第二区域,得到
第三批测试元素及与之绑定的测试操作。
11.在本发明的又一个实施例中,该元素匹配策略包括:利用预设元素库中的元素图形和待测界面中的元素图形进行匹配,得到第一批测试元素;其中预设元素库包括多个测试元素的元素图形以及测试元素与测试操作之间的关联关系;以及根据关联关系确定第一批测试元素中,每一测试元素所绑定的测试操作。
12.在本发明的再一个实施例中,该算法识别策略包括:利用最大稳定极值区域mser算法分割第二区域,得到待识别元素图形;利用图像哈希算法确定与待识别元素图形相匹配的测试元素,得到第三批测试元素;以及生成第三批测试元素中,每一测试元素所绑定的测试操作。
13.在本发明的又一个实施例中,该生成步骤包括:确定第三批测试元素中,每一测试元素的元素类型;以及根据元素类型设置每一测试元素所绑定的测试操作。
14.在本发明的另一个实施例中,该元素类型包括文本、图片、文本框和滚动条;测试操作包括点击操作、输入操作、删除操作和滑动操作;该测试操作的设置步骤包括:若测试元素的元素类型为文本或图片,则测试元素所绑定的测试操作为点击操作;若测试元素的元素类型为文本框,则测试元素所绑定的测试操作为输入操作或删除操作;以及若测试元素的元素类型为滚动条,则测试元素所绑定的测试操作为滑动操作。
15.在本发明的再一个实施例中,该模型识别策略包括:将第一区域作为元素识别模型的输入数据,得到元素识别模型输出的第二批测试元素及与之绑定的测试操作。
16.在本发明的又一个实施例中,该元素识别模型包括:生成型预训练变换模型和图像识别模型。
17.在本发明的另一个实施例中,在自动化测试步骤之前,还包括:初始化测试设备,以将测试设备接入测试执行器;以及设置测试执行器的测试参数,其中测试参数用于指导自动化测试步骤。
18.在本发明的再一个实施例中,该测试参数包括以下参数中的一种或多种:测试时长上限、遍历深度上限、测试步数上限和界面图形数上限。
19.在本发明的又一个实施例中,该自动化测试步骤包括:若满足测试终止条件,则停止自动化测试;其中测试终止条件包括以下一种或多种:测试执行器的当前工作时长大于测试时长上限,当前测试元素所处的界面层级大于遍历深度上限,测试执行器的当前执行步骤数大于测试步数上限,以及待测界面内待识别的元素图形数量大于界面图形数上限。
20.在本发明实施方式的第二方面中,提供了一种自动化测试装置,包括:界面采集器,用于获取待测界面;元素识别器,用于按照预设优先级次序执行一个或多个预设识别策略,以识别待测界面,得到待测界面中的测试元素及与之绑定的测试操作;以及测试执行器,用于将测试元素及与之绑定的测试操作合成测试用例,以进行自动化测试。
21.在本发明实施方式的第三方面中,提供了一种电子设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如第一方面的方法。
22.在本发明实施方式的第四方面中,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如第一方面的方法。
23.根据本发明实施方式的用于自动化测试的方法,在获取待测界面后,本发明实施例会按照预设优先级次序去执行一种或多种预设识别策略,从而在界面中的一个测试元素无法利用当前识别策略进行识别时,可以提供另一种识别策略对其进行处理,以保证所述待测界面中的测试元素的识别成功率。并且还会针对每一测试元素绑定与之匹配的测试操作,而不局限于点击操作,使得测试操作所涵盖的范围得以拓展,增加了测试用例的广度,提高了自动化测试的可靠性和完整性。
24.进一步地,本发明的一些实施例所提供的多个预设识别策略中,按照优先级次序依次包括元素匹配策略、模型识别策略和算法识别策略,该三种策略按照可靠程度依次排序使用,优先使用准确度高的元素匹配策略保证识别结果的准确度,最后使用识别容错率高的算法识别策略兜底,减少未识别的元素图形数量,兼容识别成功率和可靠性。
25.进一步地,本发明的一些实施例在执行自动化测试之前,设置了测试执行器的测试参数以对自动化测试过程进行指导,防止自动化测试时长过长、遍历深度过深而导致遍历难以返回、执行步骤数过多而导致负载过大或待识别的元素图形过多而导致遍历死循环风险增加等问题的出现。
附图说明
26.通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
27.图1示意性地示出了适于实现本发明实施方式的示例性计算系统100的框图;
28.图2示意性地示出了根据本发明实施例的自动化测试方法200的流程图;
29.图3示意性地示出了根据本发明一些实施例的测试元素识别方法300的流程图;
30.图4示意性地示出了根据本发明一些实施例的算法识别策略400的流程图;
31.图5示意性地示出了根据本发明另一实施例的自动化测试方法500的流程图;
32.图6示意性地示出了根据本发明实施例的自动化测试装置600的框图;
33.图7示意性示出了根据本发明实施例的电子设备700的框图;
34.在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
35.下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
36.图1示出了适于实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算系统100可以包括:中央处理单元(cpu)101、随机存取存储器(ram)102、只读存储器(rom)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。这些设备中,与系统总线104耦合的有cpu 101、ram 102、rom 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦
合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
37.本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
38.可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
39.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
40.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
41.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(lan)或广域网(wan))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
42.下面将参照本发明实施例的方法的流程图和设备(或系统)的框图描述本发明的实施方式。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
43.也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置
以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
44.也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
45.根据本发明的实施方式,提出了一种用于自动化测试的方法和设备。
46.在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
47.下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。发明概述
48.本发明人发现,用户界面自动化遍历测试和传统的用户界面自动化测试相比,最大优势在于自动化遍历测试不需要根据业务逻辑去编写测试用例,而是针对任意界面自动实现测试用例的执行,具体为遍历用户界面上的测试元素并对其进行测试操作。
49.而自动化遍历测试的实现关键在于对用户界面中测试元素及与之绑定的测试操作的识别。只有在正确识别测试元素及与之绑定的测试操作,才能够对某一测试元素正确地执行测试操作,从而完成有效的测试动作,并且避免测试元素漏测的情况发生。
50.但由于不同软件所搭载的开发平台不同,当软件所搭载的开发平台发生更变后,可能无法正确读取到界面元素和层级关系;另外,由于界面中的测试元素的各异性,可能会导致元素定位不准或测试操作出错等问题产生。这是利用统一一套自动化测试方案来适配不同操作系统时,难以避免的风险。
51.而利用不同优先级的多种识别方案,能够从不同维度对用户界面中测试元素及与之绑定的测试操作的识别形成保障,例如当软件平台适配度较高时,通过最高优先级的识别方案即可完成识别,倘若软件平台适配度较低,即使最高优先级的识别方案识别完整,也有次高优先级的识别方案进行补充识别,弥补测试用例的完整性。
52.在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。应用场景总览
53.自动化遍历测试是一种自动测试技术,它可以模拟用户在用户界面上的操作,以检查应用程序的功能和性能,例如对应用程序显示界面上的链接进行点击操作测试,以测试页面能否成功跳转。
54.进一步地,该应用程序可以为搭载在任意操作系统上的第三方软件或系统软件,本发明所提供的自动化测试方案可以帮助开发人员更快地检测和修复应用程序中的错误,以确保应用程序的质量。
55.实际应用时,该自动化测试方案的测试对象还可以为智能硬件产品,测试内容为其上搭载的第三方应用程序或系统程序。可以理解为,本发明的自动化测试方案可以用于硬件产品出厂前的产品检测环节或者用于软件新版本上线前的测试环节。示例性方法
56.下面参考附图来描述根据本发明示例性实施方式的用于自动化测试的方法。需要
注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
57.本发明的技术方案中,所涉及的用户个人信息的获取、存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
58.首先参考图2,图2示意性地示出了根据本发明实施例的自动化测试方法200的流程图。
59.如图2所示,在步骤s201中,获取待测界面。
60.软件的用户界面是指对软件的人机交互和操作逻辑的整体设计,是操作系统和用户之间进行交互和信息交换的媒介,目的在使得用户能够方便有效地去操作硬件以达成双向交互,完成用户希望借助硬件所完成的工作。
61.在本实施例中,待测界面可以包括以下多种界面参数,例如界面层级和界面图形数等等。
62.其中假定以各界面之间的跳转关系构建界面树,则界面层级反映的是在界面树中界面所在节点的深度。为了便于理解,以搜索引擎界面为例,其具有搜索框的首页可以视作最小界面层级的界面,即位于界面树根节点的界面,而在搜索框内输入某一关键词后,跳出的搜索结果的页面则视作下一界面层级的界面。
63.界面图形数则表示当前界面中可以作为测试元素的图形的数量,仍以上述搜索引擎界面为例,其首页上的搜索框则可以视作当前界面的一个图形。
64.在本实施例中,待测界面可以通过在设备端截图得到,其中设备端可以是搭载有软件的智能硬件或者是模拟运行该软件的计算机。
65.在步骤s202中,按照预设优先级次序执行一个或多个预设识别策略,以识别待测界面,得到测试元素及与之绑定的测试操作。
66.在本实施例中,预先提供了多种预设识别策略,这些预设识别策略分别设有绑定的优先级,步骤s202需要按照优先级由高至低的顺序执行这些预设识别策略。
67.执行时存在以下两种情况:
68.其一是,执行最高优先级的预设识别策略后,待测界面的测试元素已经全部识别成功,此时,仅需执行一个预设识别策略就能够得到待测界面中的测试元素及与之绑定的测试操作。
69.其二是,执行最高优先级的预设识别策略后,待测界面的测试元素未能全部识别成功,则接着执行次高优先级的预设识别策略,若还未能全部识别成功,则再接着执行下一优先级的预设识别策略,直至执行至最低优先级的预设识别策略或者待测界面的测试元素全部识别成功,此时,则是通过执行多个预设识别策略得到待测界面中的测试元素及与之绑定的测试操作。
70.在步骤s203中,将识别得到的测试元素及与之绑定的测试操作合成测试用例。
71.每当识别出一个测试元素及与之绑定的测试操作后,就可以得知进行自动化测试时,测试执行器需要在界面的哪一位置执行何种测试操作,或者说对界面的哪一元素执行何种测试操作,相当于形成一个待执行的测试指令,多个待执行的测试指令的集合即构成一个测试用例,测试执行器基于该测试用例进行自动化测试。
72.与传统的自动化测试方法相比,传统的自动化测试方式是通过人工编写测试用
例,指示测试执行器执行测试,而本发明的自动化测试方法则是通过在测试元素的识别过程中自动生成测试用例。
73.现有技术所提供的自动化遍历测试方案通常仅执行界面的图形划分,然后再对划分出的图形模拟点击操作,从而完成测试。这种方式一则未考虑到测试元素与测试操作之间的关联关系,二则采用同一算法无法保证不同操作系统下的测试元素识别效果。
74.而本发明的自动化测试方案还可以基于以下考虑因素对预设识别策略的优先级进行设置:不同的识别策略的侧重点不同,例如一些识别策略的精准度要求较高,这就导致其识别容错率有所缺失,而另一些识别策略虽然无法完成高精准度的识别工作,但是其识别容错率较高,鲜少发生无法识别的情况,鉴于不同识别策略之间的差异,可以为精准度较高的识别策略设置较高优先级,优先保证测试用例的可靠性,并将识别容错率较高的识别策略设置为较低优先级,作为兜底所使用的识别策略。
75.通过上述方法设置的多个预设识别策略可以形成具有层次的识别网络,逐级识别出待测界面的测试元素及与之绑定的测试操作,使得测试操作所涵盖的范围得以拓展,增加了测试用例的广度,提高了自动化测试的可靠性和完整性。
76.示例性地,本发明提供了三种预设识别策略作为示例,对优先级设置的原理进行说明。
77.在本发明的一些实施例中,多个预设识别策略可以包括:元素匹配策略、模型识别策略和算法识别策略,该些预设识别策略的预设优先级次序为元素匹配策略优先于模型识别策略,模型识别策略优先于算法识别策略。
78.需要说明的是,元素匹配策略是将待测界面中的元素图形与预设元素库中的元素图形进行图形对比,因此元素匹配策略的精准度高,但由于预设元素库的样本数量有限,且需要图形成功匹配方能成功识别,因此元素匹配策略的识别容错率较低,容易出现无法识别的情况。
79.模型识别策略是利用训练好的模型对元素图形进行识别,自动输出识别结果。由于模型存在一个允许的误差范围,会影响识别的精准度,但是其能够增加模型的识别容错率。
80.算法识别策略是通过算法计算元素图形的识别参数,例如图像哈希值,将识别参数匹配的结果作为识别结果,识别容错率高但精准度较低。
81.在本实施例中,优先使用精准度较高的元素匹配策略进行识别,接着使用精准度适中的模型识别策略,最后使用识别容错率较高的算法识别策略进行兜底,在优先保证测试用例可靠性的前提下,通过增加识别容错率来尽可能减少无法识别的测试元素,保证测试用例的覆盖广度。
82.基于以上多个预设识别策略,本发明提供了一种测试元素的识别方法。图3示意性地示出了根据本发明一些实施例的测试元素识别方法300的流程图。
83.如图3所示,在步骤s301中,利用元素匹配策略识别待测界面,得到第一批测试元素及与之绑定的测试操作。
84.示例性地,元素匹配策略的执行过程如下:
85.利用预设元素库中的元素图形和待测界面中的元素图形进行匹配,得到第一批测试元素,其中预设元素库包括多个测试元素的元素图形以及测试元素与测试操作之间的关
联关系,接着,根据关联关系确定第一批测试元素中,每一测试元素所绑定的测试操作。
86.在以上元素匹配策略的执行过程中,每当在预设元素库中找到一个图形匹配的元素图形,即可将测试元素加入第一批测试元素,该过程可采用包括基于灰度匹配的、基于关系匹配的和基于特征匹配的多种图像匹配方法,例如sift算子和canny算子等等。
87.可以理解的是,以上描述的图像匹配方法仅是本发明提供的一些示例,不构成对本发明的唯一限定。
88.在步骤s302中,响应于待测界面中存在未成功识别的第一区域,则利用模型识别策略识别第一区域,得到第二批测试元素及与之绑定的测试操作。
89.在此步骤中,已经被成功识别的第一批测试元素将会跳过该步骤,剩余未能通过元素匹配策略成功识别的元素图形将会被输入至元素识别模型进行自动识别。
90.示例性地,模型识别策略的执行过程如下:将第一区域作为元素识别模型的输入数据,得到元素识别模型输出的第二批测试元素及与之绑定的测试操作。
91.进一步地,在本实施例中,该元素识别模型可以为生成型预训练变换模型,例如chatgpt-4。又或者,该元素识别模型可以为图像识别模型,例如easydl等。再或者,该元素识别模型也可以为其他分类模型。
92.在实际应用中,该元素识别模型可以预先利用专门的样本数据进行训练,从而优化元素识别模型的模型参数,优化该元素识别模型的损失函数,以提升该元素识别模型的识别效果。
93.在步骤s303中,响应于第一区域中存在未成功识别的第二区域,则利用算法识别策略识别第二区域,得到第三批测试元素及与之绑定的测试操作。
94.在此步骤中,元素识别模型无法识别的元素图形则会通过算法识别策略所提供的算法进行处理,先识别出测试元素的元素类型,在确定该元素类型需要绑定哪一种测试操作。
95.由于算法识别策略是以元素类型为粒度来实现测试元素识别和测试操作的绑定的,因此无需精准确定测试元素,仅需确定该测试元素所属的元素大类即可完成识别动作,极大程度地提高了测试元素的识别成功率。
96.为了便于理解,以下实施例将结合图4对算法识别策略进行详细说明。
97.图4示意性地示出了根据本发明一些实施例的算法识别策略400的流程图。
98.如图4所示,在步骤s401中,利用最大稳定极值区域mser算法分割第二区域,得到待识别元素图形。
99.mser算法是在分水岭算法的基础上进一步实现的。
100.分水岭算法是一种图像区域分割法,在分割的过程中,其通过逐步水淹创建分水岭,具体地,其会把跟临近像素间的相似性作为参考依据,从而将在空间位置上相近并且灰度值相近的像素点互相连接起来构成一个封闭的轮廓,从而将图像分割为多个同质区域。
101.而mser算法同样通过提高水位的方法,关注水淹过程中的某段时间内保持相对稳定的盆地,从而在图像中查找出稳定区域,实现图像分割。
102.在步骤s402中,利用图像哈希算法确定与待识别元素图形相匹配的测试元素,得到第三批测试元素。
103.图像哈希算法是将输入的图像映射成一串短小的数字序列,该数字序列通常称为
输入图像的哈希值。在实际应用中,用图像的哈希值来代表图像本身,有效降低了图像存储代价和计算复杂度,能够实现图像数据的高效处理。
104.在本实施例中,可以将相近图形的哈希值归为一类,形成一个哈希集合,或者将测试操作一致的元素图形的哈希值归为一类,形成一个哈希集合。
105.进一步地,根据待识别元素图形的哈希值所属集合可以确定出待识别元素图形的测试元素所属的元素类型。
106.在步骤s403中,生成第三批测试元素中,每一测试元素所绑定的测试操作。
107.示例性地,步骤s403可以先确定第三批测试元素中,每一测试元素的元素类型,接着,根据元素类型设置每一测试元素所绑定的测试操作。其中,测试元素的元素类型的识别方式已经在步骤s402中进行了说明,下面对根据元素类型设置每一测试元素所绑定的测试操作的过程进行介绍。
108.在实际应用中,元素类型包括但不限于:文本、图片、文本框和滚动条;测试操作包括但不限于:点击操作、输入操作、删除操作和滑动操作。
109.为了便于理解,此处以上述列举的元素类型和测试操作对测试操作的设置步骤进行示例性说明:
110.若测试元素的元素类型为文本或图片,则测试元素所绑定的测试操作为点击操作;
111.若测试元素的元素类型为文本框,则测试元素所绑定的测试操作为输入操作或删除操作;
112.若测试元素的元素类型为滚动条,则测试元素所绑定的测试操作为滑动操作。
113.需要说明的是,以上所描述的仅是本发明中部分测试操作的设置步骤的示例,在实际应用中,还可以针对链接这一元素类型的测试元素,设置点击操作这一测试操作,此处不再展开赘述。
114.另外,上述元素类型还可以进行进一步细分,例如将滚动条细分为上下滚动条和左右滚动条,其绑定的测试操作也可以细分为上下滑动操作和左右滑动操作。
115.在以上测试操作的设置步骤中,元素图形的哈希值分类可以基于测试操作完成,例如,将绑定点击操作的测试元素的哈希值归为一类,一旦某一待识别元素图形的哈希值属于该类,则可以将点击操作与该待识别元素图形的测试元素进行绑定。
116.以上介绍了自动化测试过程中,识别测试元素以合成测试用例的具体实施方式。在使用该测试用例进行自动化测试之前,还存在一个自动化测试的准备阶段,在该阶段需要完成测试设备的初始化准备和测试参数的设置。
117.图5示意性地示出了根据本发明另一实施例的自动化测试方法500的流程图。
118.如图5所示,在步骤s501中,初始化测试设备。
119.步骤s501的目的是为了将测试设备接入测试执行器。
120.需要说明的是,此处的测试设备可以为搭载有软件的智能硬件或者是模拟运行该软件的计算机。
121.在步骤s502中,设置测试执行器的测试参数。
122.其中测试参数用于指导自动化测试,具体地,该测试参数可以包括以下参数中的一种或多种:测试时长上限、遍历深度上限、测试步数上限和界面图形数上限。
123.在步骤s503中,合成测试用例。
124.步骤s503可以通过前文任一实施例中的方法合成测试用例,具体实施方式已经在前文实施例中进行了详尽说明,此处不再赘述。
125.在步骤s504中,根据测试用例和测试参数执行自动化测试,直至满足测试终止条件。
126.在本实施例中,一旦满足测试终止条件,则停止自动化测试,其中测试终止条件包括以下一种或多种:测试执行器的当前工作时长大于测试时长上限,当前测试元素所处的界面层级大于遍历深度上限,测试执行器的当前执行步骤数大于测试步数上限,以及待测界面内待识别的元素图形数量大于界面图形数上限。
127.测试时长上限的设置是为了防止自动化测试的执行时长过长,降低测试执行器超负载工作或者工作温度过热等异常情况的发生概率。
128.遍历深度上限的设置是为了防止自动化测试所进入的界面过深而导致测试无法返回至首页等情况发生,尤其是针对存在无限循环交互设计的软件,该测试参数的设置可以提供一个有效的测试结束节点。
129.测试步数上限与测试时长上限相类似地,该测试参数的设置能够防止自动化测试的执行时长过长,降低测试执行器超负载工作或者工作温度过热等异常情况的发生概率。
130.倘若一个界面具有过多的待识别的元素图形,则认为该界面较为复杂,存在死循环的风险,为了避免测试陷入死循环而给测试执行器造成损耗,设置了界面图形数上限这一测试参数。示例性设备
131.在介绍了本发明示例性实施方式的方法之后,接下来,参考图6对本发明示例性实施方式的自动化测试装置进行介绍。
132.图6示意性地示出了根据本发明实施例的自动化测试装置600的框图。
133.如图6所示,该自动化测试装置600包括:
134.界面采集器601,用于获取待测界面;具体地,界面采集器可以执行截图操作以获取测试设备的界面图片作为待测界面。
135.元素识别器602,用于按照预设优先级次序执行一个或多个预设识别策略,以识别待测界面,得到待测界面中的测试元素及与之绑定的测试操作;示例性地,元素识别器中可以存储有预设元素库、元素识别模型和算法代码,分别用于执行元素匹配策略、模型识别策略和算法识别策略。
136.测试执行器603,用于将测试元素及与之绑定的测试操作合成测试用例,以进行自动化测试。
137.与前述功能性实施例相对应地,本发明实施例中还提供了一种如图7所示的电子设备。图7示意性示出了根据本发明实施例的电子设备700的框图。
138.图7所示的电子设备700,包括:处理器710;以及存储器720,存储器720上存储有可执行的程序指令,当所述程序指令由所述处理器710来执行时,使得所述电子设备实现如前文所述的任一项方法。
139.在图7的电子设备700中,仅示出了与本实施例有关的组成元素。因此,对于本领域普通技术人员而言显而易见的是:电子设备700还可以包括与图7中所示的组成元素不同的
常见组成元素。
140.处理器710可以控制电子设备700的操作。例如,处理器710通过执行电子设备700上的存储器720中存储的程序,来控制电子设备700的操作。处理器710可以由电子设备700中提供的中央处理单元(cpu)、应用处理器(ap)、人工智能处理器芯片(ipu)等来实现。然而,本发明不限于此。在本实施方式中,处理器710可以按任何适当的方式实现。例如,处理器710可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。
141.存储器720可以用于存储电子设备700中处理的各种数据、指令的硬件。例如,存储器720可以存储电子设备700中的处理过的数据和待处理的数据。存储器720可存储处理器710已处理或要处理的数据集。此外,存储器720可以存储要由电子设备700驱动的应用、驱动程序等。例如:存储器720可以存储与将由处理器710执行的图像匹配等有关的各种程序。存储器720可以是dram,但是本发明不限于此。存储器720可以包括易失性存储器或非易失性存储器中的至少一种。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存、相变ram(pram)、磁性ram(mram)、电阻ram(rram)、铁电ram(fram)等。易失性存储器可以包括动态ram(dram)、静态ram(sram)、同步dram(sdram)、pram、mram、rram、铁电ram(feram)等。在实施例中,存储器720可以包括硬盘驱动器(hdd)、固态驱动器(ssd)、高密度闪存(cf)、安全数字(sd)卡、微安全数字(micro-sd)卡、迷你安全数字(mini-sd)卡、极限数字(xd)卡、高速缓存(caches)或记忆棒中的至少一项。
142.综上,本说明书实施方式提供的电子设备700的存储器720和处理器710实现的具体功能,可以与本说明书中的前述实施方式相对照解释,并能够达到前述实施方式的技术效果,这里便不再赘述。
143.或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有计算机程序指令(或计算机程序、或计算机指令代码),当所述计算机程序指令(或计算机程序、或计算机指令代码)被电子设备(或电子设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤的部分或全部。
144.应当注意,尽管在上文详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
145.此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
146.申请文件中提及的动词“包括”、“包含”及其词形变化的使用不排除除了申请文件中记载的那些元素或步骤之外的元素或步骤的存在。元素前的冠词“一”或“一个”不排除多个这种元素的存在。
147.虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

技术特征:
1.一种用于自动化测试的方法,其特征在于,包括:获取待测界面;按照预设优先级次序执行一个或多个预设识别策略,以识别所述待测界面,得到所述待测界面中的测试元素及与之绑定的测试操作;以及将所述测试元素及与之绑定的测试操作合成测试用例,以用于自动化测试。2.根据权利要求1所述的方法,其特征在于,所述多个预设识别策略包括:元素匹配策略、模型识别策略和算法识别策略;其中所述多个预设识别策略的预设优先级次序为所述元素匹配策略优先于所述模型识别策略,所述模型识别策略优先于所述算法识别策略。3.根据权利要求2所述的方法,其特征在于,所述识别步骤包括:利用所述元素匹配策略识别所述待测界面,得到第一批测试元素及与之绑定的测试操作;响应于所述待测界面中存在未成功识别的第一区域,则利用所述模型识别策略识别所述第一区域,得到第二批测试元素及与之绑定的测试操作;以及响应于所述第一区域中存在未成功识别的第二区域,则利用所述算法识别策略识别所述第二区域,得到第三批测试元素及与之绑定的测试操作。4.根据权利要求2或3所述的方法,其特征在于,所述元素匹配策略包括:利用预设元素库中的元素图形和所述待测界面中的元素图形进行匹配,得到第一批测试元素;其中所述预设元素库包括多个测试元素的元素图形以及测试元素与测试操作之间的关联关系;以及根据所述关联关系确定所述第一批测试元素中,每一测试元素所绑定的测试操作。5.根据权利要求3所述的方法,其特征在于,所述算法识别策略包括:利用最大稳定极值区域mser算法分割所述第二区域,得到待识别元素图形;利用图像哈希算法确定与所述待识别元素图形相匹配的测试元素,得到第三批测试元素;以及生成所述第三批测试元素中,每一测试元素所绑定的测试操作。6.根据权利要求1所述的方法,其特征在于,在所述自动化测试步骤之前,还包括:初始化测试设备,以将所述测试设备接入测试执行器;以及设置所述测试执行器的测试参数,其中所述测试参数用于指导所述自动化测试步骤。7.根据权利要求6所述的方法,其特征在于,所述测试参数包括以下参数中的一种或多种:测试时长上限、遍历深度上限、测试步数上限和界面图形数上限。8.一种自动化测试装置,其特征在于,包括:界面采集器,用于获取待测界面;元素识别器,用于按照预设优先级次序执行一个或多个预设识别策略,以识别所述待测界面,得到所述待测界面中的测试元素及与之绑定的测试操作;以及测试执行器,用于将所述测试元素及与之绑定的测试操作合成测试用例,以进行自动化测试。9.一种电子设备,其特征在于,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理
器执行如权利要求1-7中任一项所述的方法。10.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-7中任一项所述的方法。

技术总结
本发明的实施方式提供了一种用于自动化测试的方法、装置、设备及存储介质。该方法包括:获取待测界面;按照预设优先级次序执行一个或多个预设识别策略,以识别待测界面,得到待测界面中的测试元素及与之绑定的测试操作;以及将测试元素及与之绑定的测试操作合成测试用例,以用于自动化测试。通过不同优先级的预设识别策略,在界面中的一个测试元素无法利用当前识别策略进行识别时,可以提供另一种识别策略对其进行处理,以保证所述待测界面中的测试元素的识别成功率,本发明的方法使得测试操作所涵盖的范围得以拓展,增加了测试用例的广度,提高了自动化测试的可靠性和完整性。提高了自动化测试的可靠性和完整性。提高了自动化测试的可靠性和完整性。


技术研发人员:刘哲 何江达 伏东 王超越
受保护的技术使用者:网易有道(杭州)智能科技有限公司
技术研发日:2023.04.17
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐