应用测试方法、装置、计算机设备及存储介质与流程
未命名
08-15
阅读:69
评论:0
1.本公开涉及测试领域,具体涉及应用测试方法、装置、计算机设备及存储介质。
背景技术:
2.对应用的测试一般是通过模拟控件的操作事件,确定界面是否能够正常切换等等。一般是使用相关的指令进行操作,在短时间内进行大量点击。但是由于上述的点击是随机在界面上进行点击,会存在大量的无效点击,例如,点击游戏背景,空白区域等。因此,这种方式会导致应用测试效率较低。
技术实现要素:
3.有鉴于此,本公开提供了一种应用测试方法、装置、计算机设备及存储介质,以解决应用测试效率较低的问题。
4.第一方面,本公开提供了一种应用测试方法,所述方法包括:
5.获取待测试应用的第一操作界面;
6.识别所述第一操作界面中的控件,得到第一控件的位置以及第一控件总数;
7.基于所述第一控件总数确定所述第一控件的可触发次数;
8.基于所述第一控件的位置以及可触发次数,对所述待测试应用进行测试确定测试结果。
9.第二方面,本公开提供了一种应用测试装置,所述装置包括:
10.界面获取模块,用于获取待测试应用的第一操作界面;
11.控件识别模块,用于识别所述第一操作界面中的控件,得到第一控件的位置以及第一控件总数;
12.触发次数确定模块,用于基于所述第一控件总数确定所述第一控件的可触发次数;
13.应用测试模块,用于基于所述第一控件的位置以及可触发次数,对所述待测试应用进行测试确定测试结果。
14.第三方面,本公开提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的应用测试方法。
15.第四方面,本公开提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的应用测试方法。
16.本公开提供的应用测试方法,通过识别第一操作界面中的控件,以避免产生无效触控,同时还基于第一控件总数确定第一控件的可触发次数,利用可触发次数对第一控件的触发次数进行约束,一方面能够保证识别到的所有第一控件均能够被触发,另一方面避免了同一控件的大量重复触发,提高了应用测试的效率。
附图说明
17.为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1是根据本公开实施例的应用测试方法的流程示意图;
19.图2是根据本公开实施例的另一应用测试方法的流程示意图;
20.图3是根据本公开实施例的操作界面的子区域的示意图;
21.图4是根据本公开实施例的又一应用测试方法的流程示意图;
22.图5是根据本公开实施例的应用测试方法的一个应用示例的流程示意图;
23.图6是根据本公开实施例的应用测试装置的结构框图;
24.图7是本公开实施例的计算机设备的硬件结构示意图。
具体实施方式
25.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
26.在相关技术中,应用测试时先利用控件识别模型识别出界面中的控件,再对控件进行触发从而对应用进行测试。其中,控件识别模型的输入为图像,输出为图像中的控件信息,该控件信息包括控件的位置以及控件总数。控件识别模型是基于神经网络模型构建的,利用带有控件信息的样本图像进行训练,固定模型参数,确定出控件识别模型。
27.在结合控件识别模型进行应用测试的过程中,可能会因为控件识别模型的精度问题,导致识别不到当前界面中的控件,进而造成测试中断,或者控件识别不全进而造成整个测试只会在识别到的几个控件之间反复触发,无法进入其他界面。进一步地,在界面被遮挡后无法返回至待测试应用的界面继续进行测试,这是由于在测试过程中可能会触发待测试应用的一些弹窗显示,而这些弹窗相对于整个界面而言,尺寸较小,从而就可能导致无法识别到弹窗中的控件,进而无法返回。
28.基于此,本公开实施例提供的一种应用测试方法,通过识别控件得到第一控件的位置以及第一控件总数,并基于第一控件总数确定第一控件的可触发次数进而对待测试应用进行测试。在该测试过程中,通过可触发次数进行约束,以提高应用测试效率。
29.根据本公开实施例,提供了一种应用测试方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
30.在本实施例中提供了一种应用测试方法,可用于计算机设备,如电脑、服务器等等,图1是根据本公开实施例的应用测试方法的流程图,如图1所示,该流程包括如下步骤:
31.步骤s101,获取待测试应用的第一操作界面。
32.待测试应用的第一操作界面为待测试应用中提供有用户交互功能的界面,第一操
作界面的获取方式包括但不限于截图等。例如,在启动待测试应用后执行截图操作以获取第一操作界面。或者,控件每触发一次,执行截图操作以获取第一操作界面。在此对第一操作界面的获取方式并不做任何限定,具体根据实际需求进行设置即可。
33.步骤s102,识别第一操作界面中的控件,得到第一控件的位置以及第一控件总数。
34.第一操作界面中控件可以是通过控件识别模型识别得到的,也可以是通过图像处理得到的。若采用控件识别模型的方式,将第一操作界面输入到控件识别模型中,输出第一控件的位置以及第一控件总数。控件识别模型是事先训练好部署在计算机设备中的,该控件识别模型是通过带有控件标签的样本界面训练得到的。需要说明的是,计算机设备中部署的控件识别模型也是可以根据实际需求进行更新的,例如,新增控件类型,可以采用增量方式训练得到新的控件识别模型,再将新的控件识别模型部署到计算机设备中等等。若采用图像处理的方式,由于控件的形式是有别于其他显示内容的,通过进行图像特征的提取,从而区分出控件与非控件。
35.当然,对于控件的识别方式包括但不限于上文所述的控件识别模型以及图像处理,还可以采用其他方式得到,在此对其并不做任何限定。
36.采用第一控件表示第一操作界面中的控件是为了与下文中的控件进行区分,以更清楚地表示出其所代表的含义。第一控件的位置可以采用坐标形式表示,可以采用中心点、长度以及宽度的形式表示等等。第一控件总数为识别出的所有第一控件的数量。
37.步骤s103,基于第一控件总数确定第一控件的可触发次数。
38.第一控件的可触发次数是利用第一控件总数初始化得到的,对于识别到的各个第一控件而言,其可触发次数等于第一控件总数。例如,第一操作界面中识别出的第一控件总数为5,那么,每个第一控件总数的可触发次数为5。
39.步骤s104,基于第一控件的位置以及可触发次数,对待测试应用进行测试确定测试结果。
40.在得到第一控件的位置之后,依据第一控件的位置执行控件触发操作,此时,相应第一控件的可触发次数减1。例如,第一操作界面中识别得到5个控件,分别为控件1~控件5,因此,控件1~控件5的可触发次数均为5。此时,选择控件2执行控件触发操作,那么,控件2的可触发次数更新为4,而控件1、控件3~控件5的可触发次数仍为5。
41.在执行控件触发操作之后,可能进入到待测试控件的其他界面,也可以还停留在当前界面。若当前触发的控件为“返回”,将会进入到上一步的操作界面中。若当前触发的控件为“特效”,将会在当前界面展示特效并停留在当前界面。
42.若进入到待测试控件的其他界面,则会依据上述方式识别其他界面的控件,对其他界面进行测试。若停留在当前界面,则利用各个控件更新后的可触发次数继续对当前界面进行测试。
43.在上述描述过程中是通过负向计数的方式,对控件的触发次数进行约束。当然,也可以采用正向计数的方式,例如,将第一控件总数确定出第一控件的可触发次数作为上限,控件的触发次数从0开始计数,每触发一次,计数值加1,在每次触发之前确定当前触发次数与上限的大小关系,若小于或等于上限则可以继续执行触发操作,若超出上限则表示当前控件无法继续执行触发操作。
44.在一些可选的实施方式中,若所有第一控件的触发次数均达到最大可触发次数,
则可以表示对第一操作界面的测试完成或当前在第一操作界面重复无效触发。因此,为了保证测试的正常处理,需要进入到待测试应用的其他界面继续进行测试。基于此,在这种情况下,可以通过执行命令行指令进入到待测试应用的其他界面等等。当然,也可以采用其他方式实现,在此对其并不做任何限定。
45.需要说明的是,应用测试过程的停止条件为当前测试时间达到最大测试时间,或所有控件均已执行触发操作,等等。具体停止条件是根据实际需求进行设置的,在此对其并不做任何限定。
46.本实施例提供的应用测试方法,通过识别第一操作界面中的控件,以避免产生无效触控,同时还基于第一控件总数确定第一控件的可触发次数,利用可触发次数对第一控件的触发次数进行约束,一方面能够保证识别到的所有第一控件均能够被触发,另一方面避免了同一控件的大量重复触发,提高了应用测试的效率。
47.在本实施例中提供了一种应用测试方法,可用于计算机设备,如电脑、服务器等等,图2是根据本公开实施例的应用测试方法的流程图,如图2所示,该流程包括如下步骤:
48.步骤s201,获取待测试应用的第一操作界面。详细请参见图1所示实施例的步骤s101,在此不再赘述。
49.步骤s202,识别第一操作界面中的控件,得到第一控件的位置以及第一控件总数。详细请参见图1所示实施例的步骤s102,在此不再赘述。
50.步骤s203,基于第一控件总数确定第一控件的可触发次数。详细请参见图1所示实施例的步骤s103,在此不再赘述。
51.步骤s204,基于第一控件的位置以及可触发次数,对待测试应用进行测试确定测试结果。
52.具体地,上述步骤s204包括:
53.步骤s2041,基于第一控件的可触发次数,确定待触发第一控件。
54.待触发第一控件的确定是结合第一控件的可触发次数随机选择的,若所有第一控件的可触发次数相同,则可以随机选择一个作为待触发第一控件。若第一控件的可触发次数不同,则可以选择可触发次数最少的第一控件作为待触发第一控件,也可以选择可触发次数最多的第一控件作为待触发第一控件,等等。具体选择策略是根据实际需求设置的,在此对其并不做任何限定。
55.步骤s2042,基于待触发第一控件的位置执行控件触发操作,更新待触发第一控件的可触发次数并确定待测试应用的应用进程或应用子进程是否发生变化。
56.在确定待触发第一控件之后,基于待触发第一控件的位置进行控件触发,相当于模拟用户与待触发第一控件的交互。在待触发第一控件执行控件触发操作之后,更新待触发第一控件的可触发次数,以保证后续的测试过程中所使用的是最新的可触发次数。
57.待测试应用的应用进程对应有应用进程标识,通过执行系统命令行指令,即可获取到当前正在运行的应用进程标识。在当前正在运行的应用进程标识查询是否存在待测试应用的应用进程标识,若存在则表示待测试应用的应用进程未发生变化,若不存在则表示待测试应用当前并未在运行,可以认为此时待测试应用进程闪退,相应地,待测试应用的应用进程发生了变化。
58.应用子进程对应有应用子进程标识,也是可以通过执行系统命令行指令获得的。
通过对比当前正在运行的应用子进程与执行控件触发操作之前的应用子进程,确定待测试应用的应用子进程是否发生变化。若发生变化,表示此时待测试应用可能出现了弹窗等遮挡了待测试应用的操作界面。若非发生变化,则表示测试过程正常。
59.步骤s2043,若待测试应用的应用进程或应用子进程发生变化,执行命令行指令以进入待测试应用的操作界面进行测试。
60.如上文所述,不论是待测试应用的应用进程还是应用子进程发生变化,均表示此时可能存在测试问题,这些测试问题可能导致无法继续进行测试。基于此,通过执行命令行指令以进入到待测试应用的操作界面进行测试。此处描述的待测试应用的操作界面可以是第一操作界面,也可以是主操作界面或其他指定的操作界面,等等。
61.命令行指令的作用用于使得待测试应用进入到操作界面,针对不同类型操作系统的计算机设备,命令行指令不同。例如,对于操作系统1,命令行指令为a1;对于操作系统2,命令行指令为a1。命令行指令的形式是与操作系统相关的,在此对其并不做任何限定。
62.在上文中已经分析了若应用进程或应用子进程发生变化表示此时阻碍了测试的过程,因此,此时就需要采用相应的处理方式以保证正常处理。基于此,为了下文描述方便,对通过执行命令行指令进入到待测试应用的操作界面的方式称之为阻碍处理。
63.在一些可选的实施方式中,上述的执行命令行指令以进入待测试应用的操作界面进行测试,包括:
64.步骤a1,若执行命令行指令后未能进入第一操作界面且待测试应用的应用进程未发生变化,重复执行命令行指令。
65.步骤a2,若重复执行命令行指令预设次数后仍未能进入第一操作界面,重启待测试应用以进入待测试应用的主操作界面进行测试。
66.待测试应用的应用进程未发生变化,表示此时仍处于待测试应用中。通过执行命令行指令以尝试返回第一操作界面。若能够成功返回第一操作界面,则继续基于第一控件的当前可操作次数继续进行测试。若无法返回第一操作界面,则重复执行命令行指令。如此重复预设次数,若仍未能进入到第一操作界面,则通过重启待测试应用的方式,进入到待测试应用的主操作界面进行测试。
67.通过重复执行预设次数的目的是通过多次尝试以保证能够返回第一操作界面继续进行测试,保证测试的连续性。若经过多次重复执行命令行指令之后仍无法返回第一操作界面,则需要通过重启的方式保证测试的继续进行。
68.在待测试应用的应用进程未发生变化,即待测试应用未闪退的情况下,重复执行命令行指令未能进入到第一操作界面后,对待测试应用进行重启,从主操作界面开始再次进行测试,避免了应用测试的中断所导致的测试失败,或测试不全面的问题,提高了测试结果的准确性。
69.在一些可选的实施方式中,上述的执行命令行指令以进入待测试应用的操作界面进行测试,还包括:若执行命令行指令后未能进入第一操作界面且待测试应用的应用进程发生变化,重启待测试应用以进入待测试应用的主操作界面进行测试。
70.如上文所述,待测试应用的应用进程发生变化表示此时待测试应用进程闪退,此时就需要重启待测试应用而非重复执行命令行指令了。由于在待测试应用进程闪退的情况下,重复执行命令行指令的结果是仍无法返回第一操作界面。这种情况通过重启待测试应
用的方式,使得待测试应用进入到主操作界面进行测试。
71.在待测试应用闪退的情况下,及时重启待测试应用,避免测试过程的无法进行,提高了测试效率。
72.步骤s2044,若待测试应用的应用进程以及应用子进程均未发生变化,获取待测试应用的第二操作界面。
73.在应用进程以及应用子进程均未发生变化的情况下,表示测试正常进行,获取待测试应用的第二操作界面。此时,第二操作界面与第一操作界面相比,可能发生场景切换,也可能并未发生场景切换。在未发生场景切换的情况下,继续利用第一控件的当前可触发次数继续进行测试。在发生场景切换的情况下,利用第二操作界面中第二控件的可触发次数进行测试。
74.获取第二操作界面的方式与获取第一操作界面的方式类似,具体参见上文所述,在此不再赘述。
75.步骤s2045,识别第二操作界面中的控件,得到第二控件的位置以及第二控件总数。
76.经过该步骤的处理,得到第二控件的位置以及第二控件总数。其中,第二控件为识别到的第二操作界面中的控件,第二控件总数为识别到的第二控件的数量。对第二操作界面中控件的识别方式,与图1所示实施例的步骤s102类似,在此不再赘述。
77.步骤s2046,基于第一控件的位置与第一控件总数,以及第二控件的位置与第二控件总数,分别确定第一操作界面的第一场景特征以及第二操作界面的第二场景特征。
78.由于在操作界面中,控件在执行触发操作之后,并未发生场景切换,而是让停留在当前场景。此处所述的场景包括操作界面中控件的布局,通过场景特征而非图像的相似度进行场景切换的确定,能够更好地适用于交互类的待测试应用中。由于待测试应用中可能存在渲染当前界面的控件,这些控件在执行触发操作之后,并非发生场景切换而仅仅是对当前界面进行渲染。
79.基于此,通过结合控件的位置以及控件总数确定场景特征的。具体地,基于第一控件的位置与第一控件总数得到的是第一操作界面的第一场景特征,基于第二控件的位置与第二控件总数得到的是第二操作界面的第二场景特征。
80.以第一场景特征的确定为例,通过对各个第一控件的位置以及第一控件总数进行融合后编码得到。例如,第一操作界面中包括有5个第一控件,5个第一控件的位置与第一控件总数组成6维向量,并对6维向量进行编码后得到第一场景特征。
81.在一些可选的实施方式中,基于第一控件的位置与第一控件总数,确定第一操作界面的第一场景特征,包括:
82.步骤b1,获取第一操作界面中的子区域信息,子区域是通过对第一操作界面进行划分得到的,子区域信息包括子区域的标识以及子区域的位置。
83.步骤b2,基于第一控件的位置以及子区域的位置,确定第一控件对应的子区域。
84.步骤b3,基于第一控件对应的子区域的标识以及第一控件总数,确定第一场景特征。
85.由于在不同的界面缩放尺寸下,导致第一控件在第一操作界面中的位置不同。因此,为了进一步保证所确定出的场景特征的准确性,结合第一操作界面划分出的子区域进
行场景特征的确定。
86.对第一操作界面的子区域的划分方式,可以是均分,也可以是不均分等等。若是均分得到的,均分的数量是根据实际需求设置,例如,100或200。
87.图3示出了第一操作界面的均分示意图,对第一操作界面进行100等分的划分,得到100个子区域。其中,子区域中的数字1、2、3以及4,表示的是后续执行触发操作的优先级,1的优先级最高,4的优先级最低。由于一些返回或退出控件,一般设置在界面的四个角落或者周边,因此通过优先级的设置以保证能够尽快地触发到返回控件或界面跳转控件,从而进入新的操作界面继续进行测试。
88.对于不同缩放尺寸的界面进行小区域划分之后,各个小区域在界面中的相对位置是固定,不受缩放尺寸的影响的。因此,在确定场景特征时,结合子区域信息能够避免缩放尺寸所导致的场景特征不对应的问题。
89.对于划分得到的子区域,每个均具有唯一的标识以及位置。在上述步骤s202的处理之后,得到第一控件的位置。利用第一控件的位置计算第一控件的中心点,基于中心点映射到子区域中。由于子区域与第一控件的大小不同,可能存在一个子区域对应一个或多个第一控件,也可能存在一个子区域对应零个第一控件。
90.在将子区域与第一控件进行映射时,记录各个子区域对应的第一控件的数量。为了存储方便,采用键值对的形式进行存储,其中,关键字为子区域表示,值为子区域对应的第一控件的数量。在得到键值对之后,基于得到的键值对确定第一场景特征。例如,对键值对序列化之后计算哈希值,将计算得到的哈希值作为第一场景特征。
91.需要说明的是,第二场景特征的确定方式与第一场景特征的确定方式类似,在此不再赘述。
92.利用第一操作界面的子区域信息以及第一控件的位置,实现第一控件与子区域的对应,将控件识别结果对应到真实的第一操作界面的子区域中,避免在对第一操作界面的场景识别时,第一控件边缘大小变化导致场景特征对应不上的问题,即,通过场景特征的对比,保证了所确定出的场景切换的准确性。
93.步骤s2047,若第一场景特征与第二场景特征一致,获取第一控件的当前可触发次数。
94.比较第一场景特征与第二场景特征,确定两者是否相同。若相同则表示两个场景特征一致,并非发生场景切换。若不同则表示发生场景切换,需要利用第二操作界面中第二控件的位置以及第二控件总数继续对待测试应用进行测试。
95.若第一场景特征与第二场景特征一致,此时无场景切换,继续对第一操作界面进行测试。即,基于第一控件的当前可触发次数继续进行测试。
96.在一些可选的实施方式中,上述步骤s204还包括:
97.步骤c1,若第一场景特征与第二场景特征不一致,基于第二控件总数确定第二控件的可触发次数。
98.步骤c2,基于第二控件的位置以及第二控件的可触发次数,对待测试应用进行测试确定测试结果。
99.在第一场景特征与第二场景特征不一致的情况下,表示发生场景切换。此时需要基于第二控件的位置以及可触发次数对待测试应用进行测试确定测试结果。此处的处理过
程与上文所述的基于第一控件的位置以及第一控件的可触发次数对待测试应用进行测试类似,在此不再赘述。
100.经过第一控件的触发操作之后,若场景特征不一致,则表示发生了场景切换,此时需要利用第二控件的位置以及可触发次数继续对待测试应用进行测试,提高了测试的准确性。
101.步骤s2048,基于第一控件的位置以及当前可触发次数,对待测试应用进行测试确定测试结果。
102.利用第一控件的当前可触发次数从中选择出待触控第一控件,再结合待触控第一控件的位置执行控件触发操作,对待测试应用进行测试以得到测试结果。该过程与上文所述的步骤s204类似,在此不再赘述。
103.在一些可选的实施方式中,上述步骤s2048包括:若所有第一控件的当前可触发次数为零,在子区域中确定第一待触发子区域,并执行第一待触发子区域的触发操作,以进入第三操作界面进行测试。
104.若第一操作界面的所有第一控件的当前可触发次数均为零,无法进行待测试第一控件的确定,表示后续无法进入待测试应用的其他操作界面进行测试。因此,此时需要触发盲点处理,在第一操作界面的子区域中确定出第一待触发子区域,并执行第一待触发子区域的触发操作。所述的盲点操作是指在第一操作界面划分得到的子区域内,确定出第一待触发子区域并执行触发操作。
105.具体地,如图3所示,子区域的划分过程请参见上文所述。依据各个子区域的优先级进行第一待触发子区域的确定,例如,第一次触发优先级为1的子区域,即第一操作界面的四角区域;第二次触发优先级为2的子区域,即四角区域外的8个区域;第三次触发优先级为3的子区域,即四条边剩余的区域;第四次触发优先级为4的子区域,即剩余的所有区域。具体在执行触发操作时,第一次点击所有标记1的子区域,第二次点击所有标记2的子区域,依次类推。若在触发过程中,有子区域通过执行触发操作进入到第三操作界面,则对第三操作界面进行控件识别,后续处理过程与图1所示实施例的步骤s102以及步骤s103类似,在此不再赘述。
106.在所有第一控件的当前可触发次数均为零的情况下,表示当前第一操作界面处于反复触发的状态,此时,采用子区域的触发来替换第一控件的触发,保证当前能够切换至第三操作界面继续进行测试。
107.本实施例提供的应用测试方法,待测试应用的应用进程用于确定应用进程是否闪退,应用子进程用于确定待测试应用是否有应用弹窗,若两者之一发生变化,则需要通过命令行指令使其进入到待测试应用的操作界面,以继续进行测试,保证了应用测试的正常进行。在应用进程以及应用子进程均未变化的情况下,表示触发第一控件后应用正常,此时获取到第二操作界面,并对其控件进行识别,从而确定是否发生场景切换,若未发生场景切换则继续利用第一控件的当前可触发次数进行测试,保证了同一界面测试的连续性,避免了控件的重复无效触发,提高了测试效率。
108.在本实施例中提供了一种应用测试方法,可用于计算机设备,如电脑、服务器等等,图4是根据本公开实施例的应用测试方法的流程图,如图4所示,该流程包括如下步骤:
109.步骤s401,获取待测试应用的第一操作界面。
110.具体地,上述步骤s401包括:
111.步骤s4011,获取待测试应用的界面。
112.在开始测试时,启动待测试应用通过执行前置素材,以进入到待测试应用的主界面开始进行测试。前置素材是通过内部工具录制获取,执行前置素材用于让待测试应用处于主操作界面。例如,打开游戏,关闭游戏弹窗,输入账号密码进行登录,选择服务器,这些操作都属于前置素材。在开始测试之后,仅获取待测试应用的界面,而忽略显示屏幕上的其他内容。
113.步骤s4012,若界面满足测试需求,确定界面为第一操作界面。
114.测试需求是根据实际测试场景设置的,例如,采用移动设备作为计算机设备,若移动设备当前处于支付界面等状态时,表示此时界面无法满足测试需求。对于是否处于支付界面的判断,可以通过对界面进行图像分析或图像分类,以确定待测试应用的界面当前所处的界面是否为支付界面。图像分类是基于图像分类模型实现的,采用包含支付界面以及非支付界面的图像作为样本,训练得到图像分类模型。若获取的界面满足测试需求,则将该界面确定为第一操作界面。
115.在一些可选的实施方式中,上述步骤s401还包括:若界面不满足测试需求,执行命令行指令以进入待测试应用的操作界面进行测试。如上文所述,执行命令行指令以进入待测试应用的操作界面,这一过程称之为阻碍处理。具体处理过程请参见上文所述,在此不再赘述。
116.步骤s402,识别第一操作界面中的控件,得到第一控件的位置以及第一控件总数。详细请参见图2所示实施例的步骤s202,在此不再赘述。
117.步骤s403,若第一控件总数为零,获取第一操作界面中的子区域信息。
118.其中,所述子区域是通过对第一操作界面划分得到的,所述子区域信息包括子区域标识以及子区域位置。
119.步骤s404,在子区域中确定第二待触发子区域,并执行第二待触发子区域的触发操作,以进入第四操作界面进行测试。
120.若在第一操作界面中识别不到第一控件,即第一控件总数为零。此时触发盲点处理,具体地,获取第一操作界面中的子区域信息,通过在子区域中确定出第二待触发子区域并执行第二待触发子区域的触发操作,以进入到第四操作界面进行测试。关于盲点处理的具体过程请参见上文所述,在此不再赘述。
121.在一些可选的实施方式中,执行第二待触发子区域的触发操作,以进入第四操作界面进行测试包括:若对第二待触发子区域执行预设次数的触发操作仍未能识别出第四操作界面中的控件,执行命令行指令以进入待测试应用的操作界面进行测试。
122.在第二待触发子区域执行预设次数的触发操作后,仍然无法识别到控件,此时需要执行阻碍处理,以进入到待测试应用的操作界面进行测试。关于阻碍处理的具体过程请参见上文所述,在此不再赘述。
123.在对第二待触发子区域重复执行预设次数的触发后,仍未识别到控件,此时通过执行命令行指令进入到待测试应用的其他操作界面进行测试,从而保证待测试应用能够正常进行测试。
124.步骤s405,若第一控件总数大于零,基于第一控件总数确定第一控件的可触发次
数。详细请参见图1所示实施例的s103,在此不再赘述。
125.步骤s406,基于第一控件的位置以及可触发次数,对待测试应用进行测试确定测试结果。详细请参见图2所示实施例的s204,在此不再赘述。
126.本实施例提供的应用测试方法,若无法识别到第一操作界面中的控件,通过对第一操作界面中的子区域进行触发的方式,保证待测试应用的正常测试过程,提高了测试效率。
127.作为本公开实施例的一个具体应用实施例,若当前需要对游戏应用进行测试。如图5所示,在启动待测试的游戏应用之后,记录待测试应用的应用进程id以及应用子进程id,进入待测试应用的界面后获取感兴趣区域(roi),以获取到待测试应用的操作界面而避免截取到其他与操作界面无关的内容。获取到待测试应用的操作界面之后判断截图是否成功,若操作界面不满足测试需求,通过执行阻碍处理进入待测试应用的操作界面,继续对其进行截图判断;若操作界面满足测试需求,确定该操作界面为第一操作界面。对第一操作界面中的控件进行识别,若能够识别到控件,根据控件分布得到场景特征,并获取到控件的当前可触发。若识别不到控件触发盲点处理,再次识别控件。在触发盲点处理之后,若经过4次的重复处理仍未识别到控件,则执行阻碍处理以进入待测试应用的操作界面,再次进行控件识别。若能够识别到控件,确定是否出现阻碍,即所有控件的当前可操作次数是否为零,若均为零则触发盲点处理,若不为零则依据当前可触发此时选择控件进行触发。在触发所选择的控件之后,判断应用进程或应用子进程是否发生变化,若发生变化则执行阻碍处理,若非发生变化则判断待测试应用是否被遮挡。若被遮挡则将应用窗口置顶后判断是否达到指定的测试时间,若未被遮挡则直接判断是否达到指定测试时间。若达到指定测试时间则结束测试,若未达到指定测试时间在获取当前操作界面,以进行控件识别。
128.需要说明的是,本公开实施例提供的应用测试方法由于并无操作系统的类型限制,因此可以应用于不同的操作系统中,在全平台中对应用进行测试。具体地,该方法涉及到控件的识别以及识别的后处理,由于后处理的存在,使得该方法能够在即使无法识别到操作界面中全部的控件,也能够对待测试应用进行准确的测试,以及在不同类型的操作系统下,通过后处理使得该方法能够兼容不同的平台,提高了测试效率以及测试的准确性。
129.在本实施例中还提供了一种应用测试装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
130.本实施例提供一种应用测试装置,如图6所示,包括:
131.界面获取模块601,用于获取待测试应用的第一操作界面。
132.控件识别模块602,用于识别所述第一操作界面中的控件,得到第一控件的位置以及第一控件总数。
133.触发次数确定模块603,用于基于所述第一控件总数确定所述第一控件的可触发次数。
134.应用测试模块604,用于基于所述第一控件的位置以及可触发次数,对所述待测试应用进行测试确定测试结果。
135.在一些可选的实施方式中,应用测试模块604包括:
136.控件确定单元,用于基于所述第一控件的可触发次数,确定待触发第一控件。
137.可触发次数更新单元,用于基于所述待触发第一控件的位置执行控件触发操作,更新所述待触发第一控件的可触发次数并确定所述待测试应用的应用进程或应用子进程是否发生变化。
138.命令执行单元,用于若所述待测试应用的应用进程或应用子进程发生变化,执行命令行指令以进入所述待测试应用的操作界面进行测试。
139.在一些可选的实施方式中,命令执行单元包括:
140.重复执行子单元,用于若执行所述命令行指令后未能进入所述第一操作界面且所述待测试应用的应用进程未发生变化,重复执行所述命令行指令。
141.第一重启子单元,用于若重复执行所述命令行指令预设次数后仍未能进入所述第一操作界面,重启所述待测试应用以进入所述待测试应用的主操作界面进行测试。
142.在一些可选的实施方式中,命令执行单元还包括:
143.第二重启子单元,用于若执行所述命令行指令后未能进入所述第一操作界面且所述待测试应用的应用进程发生变化,重启所述待测试应用以进入所述待测试应用的主操作界面进行测试。
144.在一些可选的实施方式中,应用测试模块604包括:
145.操作界面获取单元,用于若所述待测试应用的应用进程以及应用子进程均未发生变化,获取所述待测试应用的第二操作界面。
146.控件识别单元,用于识别所述第二操作界面中的控件,得到第二控件的位置以及第二控件总数。
147.场景特征确定单元,用于基于所述第一控件的位置与所述第一控件总数,以及所述第二控件的位置与所述第二控件总数,分别确定所述第一操作界面的第一场景特征以及所述第二操作界面的第二场景特征。
148.可触发次数获取单元,用于若所述第一场景特征与所述第二场景特征一致,获取所述第一控件的当前可触发次数。
149.第一测试单元,用于基于所述第一控件的位置以及所述当前可触发次数,对所述待测试应用进行测试确定测试结果。
150.在一些可选的实施方式中,场景特征确定单元包括:
151.子区域获取子单元,用于获取所述第一操作界面中的子区域信息,子区域是通过对第一操作界面进行划分得到的,所述子区域信息包括子区域的标识以及子区域的位置。
152.子区域确定子单元,用于基于所述第一控件的位置以及所述子区域的位置,确定所述第一控件对应的子区域。
153.场景特征确定子单元,用于基于所述第一控件对应的子区域的标识以及所述第一控件总数,确定所述第一场景特征。
154.在一些可选的实施方式中,应用测试模块604包括:
155.触发子区域确定单元,用于若所有所述第一控件的当前可触发次数为零,在所述子区域中确定第一待触发子区域,并执行所述第一待触发子区域的触发操作,以进入第三操作界面进行测试。
156.在一些可选的实施方式中,应用测试模块604包括:
157.可触发次数确定单元,用于若所述第一场景特征与所述第二场景特征不一致,基于所述第二控件总数确定所述第二控件的可触发次数;
158.第二测试单元,用于基于所述第二控件的位置以及所述第二控件的可触发次数,对所述待测试应用进行测试确定测试结果。
159.在一些可选的实施方式中,所述装置还包括:
160.子区域获取模块,用于若所述第一控件总数为零,获取所述第一操作界面中的子区域信息,所述子区域是通过对第一操作界面划分得到的,所述子区域信息包括子区域标识以及子区域位置;
161.子区域触发模块,用于在所述子区域中确定第二待触发子区域,并执行所述第二待触发子区域的触发操作,以进入第四操作界面进行测试。
162.在一些可选的实施方式中,子区域触发模块包括:
163.第三测试单元,用于若对所述第二待触发子区域执行预设次数的触发操作仍未能识别出所述第四操作界面中的控件,执行命令行指令以进入所述待测试应用的操作界面进行测试。
164.在一些可选的实施方式中,界面获取模块601包括:
165.界面获取单元,用于获取所述待测试应用的界面;
166.界面确定单元,用于若所述界面满足测试需求,确定所述界面为所述第一操作界面。
167.在一些可选的实施方式中,界面获取模块601还包括:
168.第四测试单元,用于若所述界面不满足测试需求,执行命令行指令以进入所述待测试应用的操作界面进行测试。
169.本实施例中的应用测试装置是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
170.上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
171.本公开实施例还提供一种计算机设备,具有上述图6所示的应用测试装置。
172.请参阅图7,图7是本公开可选实施例提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器10为例。
173.处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组
合。
174.其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
175.存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
176.存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
177.该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
178.本公开实施例还提供了一种计算机可读存储介质,上述根据本公开实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
179.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于设备及系统实施例,所以描述的比较简单,相关之处参见设备及系统实施例的部分说明即可。
180.可以理解的是,在本公开的具体实施方式中,涉及到采集图像等相关的数据,当本公开以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
181.虽然结合附图描述了本公开的实施例,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
技术特征:
1.一种应用测试方法,其特征在于,所述方法包括:获取待测试应用的第一操作界面;识别所述第一操作界面中的控件,得到第一控件的位置以及第一控件总数;基于所述第一控件总数确定所述第一控件的可触发次数;基于所述第一控件的位置以及可触发次数,对所述待测试应用进行测试确定测试结果。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一控件的位置以及所述可触发次数,对所述待测试应用进行测试确定测试结果,包括:基于所述第一控件的可触发次数,确定待触发第一控件;基于所述待触发第一控件的位置执行控件触发操作,更新所述待触发第一控件的可触发次数并确定所述待测试应用的应用进程或应用子进程是否发生变化;若所述待测试应用的应用进程或应用子进程发生变化,执行命令行指令以进入所述待测试应用的操作界面进行测试。3.根据权利要求2所述的方法,其特征在于,所述执行命令行指令以进入所述待测试应用的操作界面进行测试,包括:若执行所述命令行指令后未能进入所述第一操作界面且所述待测试应用的应用进程未发生变化,重复执行所述命令行指令;若重复执行所述命令行指令预设次数后仍未能进入所述第一操作界面,重启所述待测试应用以进入所述待测试应用的主操作界面进行测试。4.根据权利要求2所述的方法,其特征在于,所述执行命令行指令以进入所述第一操作界面进行测试,还包括:若执行所述命令行指令后未能进入所述第一操作界面且所述待测试应用的应用进程发生变化,重启所述待测试应用以进入所述待测试应用的主操作界面进行测试。5.根据权利要求2所述的方法,其特征在于,所述基于所述第一控件的位置以及所述可触发次数,对所述待测试应用进行测试确定测试结果,还包括:若所述待测试应用的应用进程以及应用子进程均未发生变化,获取所述待测试应用的第二操作界面;识别所述第二操作界面中的控件,得到第二控件的位置以及第二控件总数;基于所述第一控件的位置与所述第一控件总数,以及所述第二控件的位置与所述第二控件总数,分别确定所述第一操作界面的第一场景特征以及所述第二操作界面的第二场景特征;若所述第一场景特征与所述第二场景特征一致,获取所述第一控件的当前可触发次数;基于所述第一控件的位置以及所述当前可触发次数,对所述待测试应用进行测试确定测试结果。6.根据权利要求5所述的方法,其特征在于,基于所述第一控件的位置与所述第一控件总数,确定所述第一操作界面的第一场景特征,包括:获取所述第一操作界面中的子区域信息,子区域是通过对第一操作界面进行划分得到的,所述子区域信息包括子区域的标识以及子区域的位置;
基于所述第一控件的位置以及所述子区域的位置,确定所述第一控件对应的子区域;基于所述第一控件对应的子区域的标识以及所述第一控件总数,确定所述第一场景特征。7.根据权利要求6所述的方法,其特征在于,所述基于所述第一控件的位置以及所述当前可触发次数,对所述待测试应用进行测试确定测试结果,包括:若所有所述第一控件的当前可触发次数为零,在所述子区域中确定第一待触发子区域,并执行所述第一待触发子区域的触发操作,以进入第三操作界面进行测试。8.根据权利要求5所述的方法,其特征在于,所述基于所述第一控件的位置以及所述可触发次数,对所述待测试应用进行测试确定测试结果,还包括:若所述第一场景特征与所述第二场景特征不一致,基于所述第二控件总数确定所述第二控件的可触发次数;基于所述第二控件的位置以及所述第二控件的可触发次数,对所述待测试应用进行测试确定测试结果。9.根据权利要求1至8中任一项所述的方法,其特征在于,所述方法还包括:若所述第一控件总数为零,获取所述第一操作界面中的子区域信息,所述子区域是通过对第一操作界面划分得到的,所述子区域信息包括子区域标识以及子区域位置;在所述子区域中确定第二待触发子区域,并执行所述第二待触发子区域的触发操作,以进入第四操作界面进行测试。10.根据权利要求9所述的方法,其特征在于,所述执行所述第二待触发子区域的触发操作,以进入第四操作界面进行测试,包括:若对所述第二待触发子区域执行预设次数的触发操作仍未能识别出所述第四操作界面中的控件,执行命令行指令以进入所述待测试应用的操作界面进行测试。11.根据权利要求1所述的方法,其特征在于,所述获取待测试应用的第一操作界面,包括:获取所述待测试应用的界面;若所述界面满足测试需求,确定所述界面为所述第一操作界面。12.根据权利要求11所述的方法,其特征在于,所述获取待测试应用的第一操作界面,还包括:若所述界面不满足测试需求,执行命令行指令以进入所述待测试应用的操作界面进行测试。13.一种应用测试装置,其特征在于,所述装置包括:界面获取模块,用于获取待测试应用的第一操作界面;控件识别模块,用于识别所述第一操作界面中的控件,得到第一控件的位置以及第一控件总数;触发次数确定模块,用于基于所述第一控件总数确定所述第一控件的可触发次数;应用测试模块,用于基于所述第一控件的位置以及可触发次数,对所述待测试应用进行测试确定测试结果。14.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有
计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至12中任一项所述的应用测试方法。15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至12中任一项所述的应用测试方法。
技术总结
本公开涉及测试技术领域,公开了应用测试方法、装置、计算机设备及存储介质,该方法包括获取待测试应用的第一操作界面;识别所述第一操作界面中的控件,得到第一控件的位置以及第一控件总数;基于所述第一控件总数确定所述第一控件的可触发次数;基于所述第一控件的位置以及可触发次数,对所述待测试应用进行测试确定测试结果。通过识别第一操作界面中的控件,以避免产生无效触控,同时还基于第一控件总数确定第一控件的可触发次数,利用可触发次数对第一控件的触发次数进行约束,一方面能够保证识别到的所有第一控件均能够被触发,另一方面避免了同一控件的大量重复触发,提高了应用测试的效率。试的效率。试的效率。
技术研发人员:石其鑫 史岩峰
受保护的技术使用者:北京字跳网络技术有限公司
技术研发日:2023.05.10
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
