界面测试方法及系统、电子设备、存储介质与流程

专利2022-06-29  62


本发明涉及计算机技术领域,特别涉及一种界面测试方法及系统、电子设备、存储介质。



背景技术:

随着ui(用户界面)测试技术的不断发展,ui测试框架也有了多方向多模式的发展。目前应用最为广泛的是基于前端结构描述的ui测试框架,然而该测试框架不能实现系统、有效的ui测试。如今,随着图像识别技术的越近成熟,基于图像识别的测试技术在突飞猛进的发展。

然而,基于图形图像解析的测试框架在执行测试过程中,需根据测试策略在界面内做图像识别,找到需要测试的控件图标,获取该控件图标的坐标,然后触发该控件。由于每执行一步测试脚本,也即每测试一个控件图标都要调取图形图像解析算法,从测试界面中识别出待测控件,而图形图像解析算法的执行效率又非常慢,致使图形化的测试脚本执行过程非常慢,有很明显的卡顿感,导致这类测试框架的测试脚本执行效率都不高。

另外,因界面显示于不同分辨率的屏幕中,相同控件的屏幕坐标不同,基于图形图像解析的测试框架不能适应屏幕分辨率的变化,当更换测试设备时,需要重新编写测试代码,测试脚本不能进行设备兼容性测试。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中的基于图形图像解析的界面测试,需要多次调取图形图像解析算法,从测试界面中识别出待测控件,致使图形化的测试脚本执行过程非常慢,测试效率低的缺陷,提供一种界面测试方法及系统、电子设备、存储介质。

本发明是通过下述技术方案来解决上述技术问题:

一种界面测试方法,所述界面测试方法包括:

获取待测控件在界面中的位置信息,并将所述位置信息转换为第一屏幕坐标;

生成测试脚本;所述测试脚本包括所述第一屏幕坐标;

执行所述测试脚本,以根据所述第一屏幕坐标确定所述待测控件在所述界面中的位置,并触发所述待测控件,获得测试数据。

较佳地,所述测试脚本还包括:按照测试顺序排序的控件图标;

所述控件图标用于标识所述待测控件,所述控件图标与所述第一屏幕坐标一一对应;

根据所述第一屏幕坐标确定所述待测控件在所述界面中的位置的步骤,具体包括:

根据所述控件图标的排列顺序依次获取所述第一屏幕坐标,并确定所述待测控件在所述界面中的位置。

较佳地,所述执行测试脚本的步骤之前,还包括:

获取当前测试的界面的截图,并基于图像识别算法获取所述截图中的待测控件的第二屏幕坐标;

判断所述待测控件的第二屏幕坐标与对应的第一屏幕坐标是否相同;

并在判断为否时,根据所述第二屏幕坐标修改所述第一屏幕坐标,并执行修改后的测试脚本。

较佳地,执行所述测试脚本的步骤之前,还包括:

回放所述测试脚本;

并在回放成功时,执行回放成功的测试脚本。

一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的界面测试方法。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的界面测试方法的步骤。

一种界面测试系统,所述界面测试系统包括:

第一坐标获取模块,用于获取待测控件在界面中的位置信息,并将所述位置信息转换为第一屏幕坐标;

脚本生成模块,用于生成测试脚本;所述测试脚本包括所述第一屏幕坐标;

测试模块,用于执行所述测试脚本,以根据所述第一屏幕坐标确定所述待测控件在所述界面中的位置,并触发所述待测控件,获得测试数据。

较佳地,所述测试脚本还包括:按照测试顺序排序的控件图标;

所述控件图标用于标识所述待测控件,所述控件图标与所述第一屏幕坐标一一对应;

所述测试模块具体用于根据所述控件图标的排列顺序依次获取所述第一屏幕坐标,并确定所述待测控件在所述界面中的位置。

较佳地,所述界面测试系统还包括:第二坐标获取模块、判断模块和修改模块;

所述第二坐标获取模块用于获取当前测试的界面的截图,并基于图像识别算法获取所述截图中的待测控件的第二屏幕坐标;

所述判断模块用于判断所述待测控件的第二屏幕坐标与对应的第一屏幕坐标是否相同,并在判断为否时,调用所述修改模块;

所述修改模块用于根据所述第二屏幕坐标修改所述第一屏幕坐标,并调用所述测试模块。

较佳地,所述界面测试系统还包括:脚本回放模块;

所述脚本回放模块用于回放所述测试脚本,并在回放成功时,调用所述测试模块。

本发明的积极进步效果在于:本发明在界面测试过程中,测试脚本执行和图像识别流程分开进行,每次执行测试脚本,无需通过多次调用图形图像解析算法,才能从测试界面中识别出待测控件,从而提高了测试脚本的执行效率,进而提高了测试效率。

附图说明

图1为本发明实施例1的界面测试方法的流程图。

图2为本发明实施例2的界面测试方法的流程图。

图3为本发明实施例3的电子设备的结构示意图。

图4为本发明实施例5的界面测试系统的模块示意图。

图5为本发明实施例6的界面测试方法的模块示意图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

如图1所示,本实施例的界面测试方法包括:

步骤110、获取待测控件在界面中的位置信息,并将该位置信息转换为第一屏幕坐标。

其中,位置信息也即控件在界面中的相对位置信息,位置信息的获取可采用如下方式:截取整个屏幕中界面的图像,并基于图像识别算法获取界面图像中的控件图标及其位置信息;或手动截取界面中的控件图标,并在截取控件图标的过程中使用截图工具获取控件的位置信息。位置信息包括待测控件的边界点坐标或中点坐标,位置信息的转换,例如将边界点坐标作为第一屏幕坐标集或将中点坐标作为第一屏幕坐标。

控件图标用于标识待测控件,第一屏幕坐标用于在测试控件时确定控件在界面中的位置。

步骤120、生成测试脚本。

其中,测试脚本包括:测试策略、控件图标及其第一屏幕坐标。测试策略包括控件触发的方式,如通过鼠标操作或键盘操作触发控件。若测试策略中还设定了控件被触发的顺序(测试顺序),则可按照测试策略中设定的控件触发顺序,对控件图标进行排序,具体的,步骤120包括:

步骤120-1、按照测试顺序将控件图标进行排序,将控件图标与第一屏幕坐标一一对应存储于脚本工程目录的图片文件夹中。

步骤120-2、根据排序后的控件图标及其第一屏幕坐标撰写测试脚本。

需要说明的是,当需要对某一控件进行多次测试,则在撰写测试脚本的过程中,会按照测试的次数存储多张控件图标及其第一屏幕坐标。

步骤130、执行测试脚本,以根据第一屏幕坐标确定待测控件在界面中的位置,并触发该待测控件,获得测试数据。

若对控件图标进行了排序,步骤130中则按照控件图标的排列顺序,依次获取第一屏幕坐标,并根据当前获取的第一屏幕坐标确定待测控件在界面中的位置,并触发该控件,获得测试数据。

本实施例中,在界面测试过程中,测试脚本执行和图像识别流程分开进行,每次执行测试脚本,无需通过多次调用图形图像解析算法,才能从测试界面中识别出待测控件,从而提高了测试脚本的执行效率。

本实施例中,步骤130之前还包括:回放测试脚本。并在回放成功时,执行回放成功的测试脚本,以确保测试过程中脚本能正常运行。

实施例2

实施例2与实施例1基本相同,如图2所示,不同之处在于,本实施中,步骤130之前,还包括:

步骤121、获取当前测试的界面的截图,并基于图像识别算法获取截图中的待测控件的第二屏幕坐标。

其中,第二屏幕坐标也即当前测试的界面中待测控件的坐标,其获取方式与第一屏幕坐标的获取方式类似,此处不再赘述。

步骤122、判断待测控件的第二屏幕坐标与对应的第一屏幕坐标是否相同。

步骤122中,若判断为是,说明测试脚本中记载的待测控件在界面中的位置与该待测控件的实际位置相同,也即该测试脚本适用当前测试设备显示的界面,则执行步骤130;若判断为否,说明试脚本中记载的待测控件在界面中的位置与该待测控件的实际位置不相同,也即该测试脚本不适用当前测试设备显示的界面,则执行步骤123。

步骤123、根据第二屏幕坐标修改测试脚本中的第一屏幕坐标。然后再次重新回放测试脚本,执行步骤130,此时执行的是修改后的测试脚本。这样循环检测直至待测控件全部测试完成为止。

其中,步骤123中对第一屏幕坐标的修改可通过使用所有待测控件的第二屏幕坐标替换第一屏幕坐标实现;也可通过计算一个待测控件的控件图标的第一屏幕坐标与第二屏幕坐标的差值比例,并根据该差值比例统一修改第一屏幕坐标实现。

本实施例中,步骤123之后,还对测试脚本进行标识,例如使用t表示测试脚本已修改,使用f表示测试脚本未修改。每次脚本执行前,需识别测试脚本是否回放成功、标识是否为t,只有当测试脚本已回放成功,且该测试脚本的标识为t时,直接执行当前的测试脚本;若测试脚本未回放成功和/或测试脚本的标识为f,则执行步骤121,对脚本的适用性进行判断并修改测试脚本中记载的控件坐标。

本实施例中,在执行测试脚本前,根据屏幕坐标对测试脚本的适用情况进行判断,在测试脚本不适用时,对测试脚本进行修改,以使其适用当前的的测试设备,无需重新编写测试代码,从而显著提高了测试脚本的兼容性。

实施例3

图3为本发明实施例提供的一种电子设备的结构示意图,示出了适于用来实现本发明实施方式的示例性电子设备90的框图。图3显示的电子设备90仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图3所示,电子设备90可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备90的组件可以包括但不限于:上述至少一个处理器91、上述至少一个存储器92、连接不同系统组件(包括存储器92和处理器91)的总线93。

总线93包括数据总线、地址总线和控制总线。

存储器92可以包括易失性存储器,例如随机存取存储器(ram)921和/或高速缓存存储器922,还可以进一步包括只读存储器(rom)923。

存储器92还可以包括具有一组(至少一个)程序模块924的程序工具925(或实用工具),这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

处理器91通过运行存储在存储器92中的计算机程序,从而执行各种功能应用以及数据处理,例如上述任一实施例所提供的界面测试方法。

电子设备90也可以与一个或多个外部设备94(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口95进行。并且,模型生成的电子设备90还可以通过网络适配器96与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器96通过总线93与模型生成的电子设备90的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的电子设备90使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

实施例4

本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所提供的界面测试方法的步骤。

其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。

在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现上述任一实施例所提供的界面测试方法的步骤。

其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。

实施例5

如图4所示,本实施例的界面测试系统包括:第一坐标获取模块1、脚本生成模块2和测试模块3。

第一坐标获取模块1用于获取待测控件在界面中的位置信息,并将该位置信息转换为第一屏幕坐标。其中,位置信息的获取可采用如下方式:截取当前整个屏幕中界面的图像,并基于图像识别算法获取界面图像中的控件图标及其位置信息;或手动截取界面中的控件图标,并在截取控件图标的过程中使用截图工具获取该控件图标的位置信息。位置信息包括待测控件的边界点坐标或中点坐标,位置信息的转换,例如将边界点坐标作为第一屏幕坐标集或将中点坐标作为第一屏幕坐标。

控件图标用于标识待测控件,第一屏幕坐标用于在测试控件时确定控件在界面中的位置。

脚本生成模块2用于生成测试脚本。其中,测试脚本包括:测试策略、控件图标及其第一屏幕坐标。测试策略包括控件触发的方式,如通过鼠标操作或键盘操作触发控件。若测试策略中还设定了控件被触发的顺序(测试顺序),则可按照测试策略中设定的控件触发顺序,对控件图标进行排序,然后将控件图标与第一屏幕坐标一一对应存储于脚本工程目录的图片文件夹中,并根据排序后的控件图标及其第一屏幕坐标撰写测试脚本。

需要说明的是,当需要对某一控件进行多次测试,则在撰写测试脚本的过程中,会按照测试的次数存储多张控件图标及其第一屏幕坐标。

测试模块3用于执行测试脚本,以根据第一屏幕坐标确定待测控件在界面中的位置,并触发待测控件,获得测试数据。

本实施例中,若测试策略中设定了控件被触发的顺序(测试顺序),则测试模块具体用于在执行测试脚本时,根据控件图标的排列顺序依次获取第一屏幕坐标,并根据当前获取的第一屏幕坐标确定待测控件在界面中的位置,并触发该控件,获得测试数据。

本实施例中,在界面测试过程中,测试脚本执行和图像识别流程分开进行,每次执行测试脚本,无需通过多次调用图形图像解析算法,才能从测试界面中识别出待测控件,从而提高了测试脚本的执行效率。

本实施例中,界面测试系统还包括:脚本回放模块4。在调用测试模块前,先调用脚本回放模块4以回放测试脚本,并在回放成功时,调用测试模块3,以确保测试过程中脚本能正常运行。

实施例6

实施例6与实施例5基本相同,如图5所示,不同之处在于,本实施例的界面测试系统还包括:第二坐标获取模块5、判断模块6和修改模块7。

本实施例中,在执行测试脚本前,先调用第二坐标获取模块5,以获取当前测试的界面的截图,并基于图像识别算法获取截图中的待测控件的第二屏幕坐标。其中,第二屏幕坐标也即当前测试的界面中待测控件的坐标,其获取方式与第一屏幕坐标的获取方式类似,此处不再赘述。

判断模块6用于判断第一屏幕坐标与第二屏幕坐标是否相同。若判断为是,说明测试脚本中记载的待测控件在界面中的位置与该待测控件的实际位置相同,也即该测试脚本适用当前测试设备显示的界面,则调用测试模块3直接执行测试脚本;若判断为否,说明试脚本中记载的待测控件在界面中的位置与该待测控件的实际位置不相同,也即该测试脚本不适用当前测试设备显示的界面,则调用修改模块7。

修改模块7用于根据第二屏幕坐标修改第一屏幕坐标,然后依次调用脚本回放模块4、测试模块3。这样循环检测直至待测控件全部测试完成为止。其中,修改模块7对第一屏幕坐标的修改可通过使用所有待测控件的第二屏幕坐标替换第一屏幕坐标实现;也可通过计算一个待测控件的控件图标的第一屏幕坐标与第二屏幕坐标的差值比例,并根据该差值比例统一修改第一屏幕坐标实现。

本实施例中,对测试脚本进行修改之后,还对测试脚本进行标识,例如使用t表示测试脚本已修改,使用f表示测试脚本未修改。每次脚本执行前,需识别测试脚本是否回放成功、标识是否为t,只有当测试脚本已回放成功,且该测试脚本的标识为t时,调用测试模块;若测试脚本未回放成功和/或测试脚本的标识为f,则调用第二坐标获取模块,对脚本的适用性进行判断并修改测试脚本中记载的控件坐标。

本实施例中,在执行测试脚本前,根据屏幕坐标对测试脚本的适用情况进行判断,在测试脚本不适用时,对测试脚本进行修改,以使其适用当前的的测试设备,无需重新编写测试代码,从而显著提高了测试脚本的兼容性。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。


技术特征:

1.一种界面测试方法,其特征在于,所述界面测试方法包括:

获取待测控件在界面中的位置信息,并将所述位置信息转换为第一屏幕坐标;

生成测试脚本;所述测试脚本包括所述第一屏幕坐标;

执行所述测试脚本,以根据所述第一屏幕坐标确定所述待测控件在所述界面中的位置,并触发所述待测控件,获得测试数据。

2.如权利要求1所述的界面测试方法,其特征在于,所述测试脚本还包括:按照测试顺序排序的控件图标;

所述控件图标用于标识所述待测控件,所述控件图标与所述第一屏幕坐标一一对应;

根据所述第一屏幕坐标确定所述待测控件在所述界面中的位置的步骤,具体包括:

根据所述控件图标的排列顺序依次获取所述第一屏幕坐标,并确定所述待测控件在所述界面中的位置。

3.如权利要求2所述的界面测试方法,其特征在于,所述执行测试脚本的步骤之前,还包括:

获取当前测试的界面的截图,并基于图像识别算法获取所述截图中的待测控件的第二屏幕坐标;

判断所述待测控件的第二屏幕坐标与对应的第一屏幕坐标是否相同;

并在判断为否时,根据所述第二屏幕坐标修改所述第一屏幕坐标,并执行修改后的测试脚本。

4.如权利要求1所述的界面测试方法,其特征在于,执行所述测试脚本的步骤之前,还包括:

回放所述测试脚本;

并在回放成功时,执行回放成功的测试脚本。

5.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述的界面测试方法。

6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述的界面测试方法的步骤。

7.一种界面测试系统,其特征在于,所述界面测试系统包括:

第一坐标获取模块,用于获取待测控件在界面中的位置信息,并将所述位置信息转换为第一屏幕坐标;

脚本生成模块,用于生成测试脚本;所述测试脚本包括所述第一屏幕坐标;

测试模块,用于执行所述测试脚本,以根据所述第一屏幕坐标确定所述待测控件在所述界面中的位置,并触发所述待测控件,获得测试数据。

8.如权利要求7所述的界面测试系统,其特征在于,所述测试脚本还包括:按照测试顺序排序的控件图标;

所述控件图标用于标识所述待测控件,所述控件图标与所述第一屏幕坐标一一对应;

所述测试模块具体用于根据所述控件图标的排列顺序依次获取所述第一屏幕坐标,并确定所述待测控件在所述界面中的位置。

9.如权利要求8所述的界面测试系统,其特征在于,所述界面测试系统还包括:第二坐标获取模块、判断模块和修改模块;

所述第二坐标获取模块用于获取当前测试的界面的截图,并基于图像识别算法获取所述截图中的待测控件的第二屏幕坐标;

所述判断模块用于判断所述待测控件的第二屏幕坐标与对应的第一屏幕坐标是否相同,并在判断为否时,调用所述修改模块;

所述修改模块用于根据所述第二屏幕坐标修改所述第一屏幕坐标,并调用所述测试模块。

10.如权利要求7所述的界面测试系统,其特征在于,所述界面测试系统还包括:脚本回放模块;

所述脚本回放模块用于回放所述测试脚本,并在回放成功时,调用所述测试模块。

技术总结
本发明公开了一种界面测试方法及系统、电子设备、存储介质。所述界面测试方法包括:获取待测控件在界面中的位置信息,并将所述位置信息转换为第一屏幕坐标;生成测试脚本;所述测试脚本包括所述第一屏幕坐标;执行所述测试脚本,以根据所述第一屏幕坐标确定所述待测控件在所述界面中的位置,并触发所述待测控件,获得测试数据。本发明在界面测试过程中,测试脚本执行和图像识别流程分开进行,每次执行测试脚本,无需通过多次调用图形图像解析算法,才能从测试界面中识别出待测控件,从而提高了测试脚本的执行效率,进而提高了测试效率。

技术研发人员:陈磊;王浩;刘军;周敬岩;贾瑞卿;牛锋华;李建爽
受保护的技术使用者:北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司
技术研发日:2018.11.30
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-26722.html

最新回复(0)