发明内容
本公开实施例至少提供一种页面测试方法、装置、计算机设备和存储介质。
第一方面,本公开实施例提供了一种页面测试方法,所述方法包括:
接收针对展示页面的测试请求,调用测试用例,截取所述展示页面的第一页面图像;
调用目标神经网络模型对所述第一页面图像进行识别,得到所述第一页面图像中的页面控件信息;所述页面控件信息包括所述展示页面中各页面控件的位置信息;
基于所述各页面控件的位置信息,确定所述测试用例指示的目标操作页面控件的目标位置信息,并按照所述目标位置信息对所述目标操作页面控件进行测试触发操作。
一种可选的实施方式中,所述目标神经网络模型包括第一网络分支和第二网络分支,所述调用目标神经网络模型对所述第一页面图像进行识别,得到所述第一页面图像中的页面控件信息,包括:
调用所述目标神经网络模型的所述第一网络分支或所述第二网络分支对所述第一页面图像进行识别,得到第一页面图像中的页面控制信息;
所述按照所述目标位置信息对所述目标操作页面控件进行测试触发操作之后,还包括:
截取进行测试触发操作后得到的测试结果页面的第二页面图像;
调用所述目标神经网络模型中的第一网络分支对所述第二页面图像进行识别,以及调用所述目标神经网络模型中的第二网络分支,对所述测试用例中指示的所述测试结果页面对应的第一标准页面图像进行识别;
基于所述第一网络分支的第一识别结果和所述第二网络分支的第二识别结果,确定所述测试结果页面对应的页面触发测试结果。
一种可选的实施方式中,还包括:
调用所述目标神经网络模型中的第一网络分支对所述第一页面图像进行识别,以及调用所述目标神经网络模型中的第二网络分支,对所述测试用例指示的所述展示页面对应的第二标准页面图像进行识别;
基于所述第一网络分支的第三识别结果和所述第二网络分支的第四识别结果,确定所述展示页面对应的页面展示测试结果。
一种可选的实施方式中,根据以下步骤训练所述目标神经网络模型:
获取样本图像集,以及,所述样本图像集中各个样本图像的标注信息;所述标注信息用于标注各个页面控件的信息;
重复执行以下训练过程,直到得到满足训练截止条件的目标神经网络模型:
将携带有标注信息的所述样本图像集输入到待训练的目标神经网络模型,基于得到的控件识别归类结果和所述标注信息,确定所述目标神经网络的损失信息;基于确定的损失信息,对所述目标神经网络模型的网络参数进行调整。
一种可选的实施方式中,所述页面控件信息还包括各个页面控件的类型信息;
所述基于所述各页面控件的位置信息,确定所述测试用例指示的目标操作页面控件的目标位置信息,包括:
基于所述各个页面控件的类型信息和所述位置信息,确定所述各个页面控件中,与所述测试用例中指示的目标操作页面控件的类型信息相匹配的目标页面控件,并将该目标页面控件的位置信息作为所述目标位置信息。
一种可选的实施方式中,任一所述页面控件的位置信息包括指示所述页面控件在页面中的位置范围的信息;
所述按照所述目标位置信息对所述目标操作页面控件进行测试触发操作,包括:
从所述目标位置信息指示的目标位置范围中选择任一位置作为目标操作位置,按照所述目标操作位置对所述目标操作页面控件进行测试触发操作。
第二方面,本公开实施例还提供了一种页面测试装置,包括:
截图模块,用于接收针对展示页面的测试请求,调用测试用例,截取所述展示页面的第一页面图像;
识别模块,用于调用目标神经网络模型对所述第一页面图像进行识别,得到所述第一页面图像中的页面控件信息;所述页面控件信息包括所述展示页面中各页面控件的位置信息;
测试模块,用于基于所述各页面控件的位置信息,确定所述测试用例指示的目标操作页面控件的目标位置信息,并按照所述目标位置信息对所述目标操作页面控件进行测试触发操作。
一种可选的实施方式中,所述目标神经网络模型包括第一网络分支和第二网络分支,所述识别模块,用于调用所述目标神经网络模型的所述第一网络分支或所述第二网络分支对所述第一页面图像进行识别,得到第一页面图像中的页面控制信息;
所述测试模块,还用于按照所述目标位置信息对所述目标操作页面控件进行测试触发操作之后,截取进行测试触发操作后得到的测试结果页面的第二页面图像;
调用所述目标神经网络模型中的第一网络分支对所述第二页面图像进行识别,以及调用所述目标神经网络模型中的第二网络分支,对所述测试用例中指示的所述测试结果页面对应的第一标准页面图像进行识别;
基于所述第一网络分支的第一识别结果和所述第二网络分支的第二识别结果,确定所述测试结果页面对应的页面触发测试结果。
一种可选的实施方式中,所述测试模块,还用于调用所述目标神经网络模型中的第一网络分支对所述第一页面图像进行识别,以及调用所述目标神经网络模型中的第二网络分支,对所述测试用例指示的所述展示页面对应的第二标准页面图像进行识别;
基于所述第一网络分支的第三识别结果和所述第二网络分支的第四识别结果,确定所述展示页面对应的页面展示测试结果。
一种可选的实施方式中,所述装置还包括训练模块,用于根据以下步骤训练所述目标神经网络模型:
获取样本图像集,以及,所述样本图像集中各个样本图像的标注信息;所述标注信息用于标注各个页面控件的信息;
重复执行以下训练过程,直到得到满足训练截止条件的目标神经网络模型:
将携带有标注信息的所述样本图像集输入到待训练的目标神经网络模型,基于得到的控件识别归类结果和所述标注信息,确定所述目标神经网络的损失信息;基于确定的损失信息,对所述目标神经网络模型的网络参数进行调整。
一种可选的实施方式中,所述页面控件信息还包括各个页面控件的类型信息;
所述测试模块,用于基于所述各个页面控件的类型信息和所述位置信息,确定所述各个页面控件中,与所述测试用例中指示的目标操作页面控件的类型信息相匹配的目标页面控件,并将该目标页面控件的位置信息作为所述目标位置信息。
一种可选的实施方式中,任一所述页面控件的位置信息包括指示所述页面控件在页面中的位置范围的信息;
所述测试模块,用于从所述目标位置信息指示的目标位置范围中选择任一位置作为目标操作位置,按照所述目标操作位置对所述目标操作页面控件进行测试触发操作。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第二方面,或第二方面中任一种可能的页面测试方法的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第二方面,或第二方面中任一种可能的页面测试方法的步骤。
关于上述页面测试装置、计算机设备和存储介质的效果描述参见上述页面测试方法的说明,这里不再赘述。
本公开实施例提供的页面测试方法、装置、计算机设备和存储介质,其中,页面测试方法包括接收针对展示页面的测试请求,调用测试用例,截取展示页面的第一页面图像;调用目标神经网络模型对第一页面图像进行识别,得到第一页面图像中的页面控件信息;页面控件信息包括展示页面中各页面控件的位置信息;基于各页面控件的位置信息,确定测试用例指示的目标操作页面控件的目标位置信息,并按照目标位置信息对目标操作页面控件进行测试触发操作。
也即,本公开实施例通过截取展示页面的第一页面图像,调用目标神经网络模型对第一页面图像进行识别,能够准确地识别出展示页面中的各页面控件,也即能够准确地识别出实际测试场景下,展示页面中展示的各页面控件,进而得到各页面控件在第一页面图像中的精准的位置信息,之后,按照较为精准的测试用例指示的目标操作页面控件的目标位置信息对目标操作页面控件进行测试触发操作,能够高效实现页面测试。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
经研究发现,传统的用户界面(User Interface,UI)自动化测试的常规方式是通过自动化测试框架识别页面控件,而这种自动化识别框架的结果输出往往依赖于代码层级中针对控件的代码命名,一旦这些控件名称混淆,就很难进行有效的控件定位。另外,同一控件在不同应用程序或者同一应用程序的不同版本需要分别封装和维护,提高了自动化测试过程中控件封装和维护成本。
基于上述研究,本公开提供了一种页面测试方法,无需对页面控件进行代码命名、也无需对不同版本的页面控件进行封装和维护,只需要利用目标神经网络模型实现对第一页面图像的识别处理,能够准确地识别出展示页面中的各页面控件,也即能够准确地识别出实际测试场景下,当前展示页面中展示的各页面控件,进而得到各页面控件在第一页面图像中的精准的位置信息,之后,按照较为精准的测试用例指示的目标操作页面控件的目标位置信息对目标操作页面控件进行测试触发操作,能够高效完成页面测试,且与上述传统测试方式相比,本公开实施例能够降低自动化测试过程中同一控件在不同应用程序或者同一应用程序的不同版本的封装和维护成本。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
下面将对本公开实施例中涉及到的特殊名词做详细介绍:
1、yolov算法,是一种目标检测网络,是一种基于深度学习的回归方法。其中,包括yolov1、yolov2、yolov3、yolov4、yolov5等。在本公开实施例中具体应用了yolov4的目标检测算法。
2、对象存储(Toutiao Object Storage)TOS,TOS基础架构组提供的对象存储服务,提供较为可靠、可用、可扩展的大量数据存储和治理服务。
为便于对本实施例进行理解,首先对本公开实施例提供的一种页面测试方法的应用场景进行详细介绍。本公开实施例提供的页面测试方法可以应用于用户界面(UserInterface,UI)的自动化测试,具体可以涉及人机交互,操作逻辑以及界面内容等方面的测试。例如,针对目标应用程序的支付页面,该支付页面中可以存在多种支付方式,比如平台支付或调用其他支付软件支付等等,支付方式通过页面控件的形式展示在支付页面中,点击页面控件即可跳转到与该页面控件关联的支付结果页面,如点击其他支付软件的支付控件,跳转到该其他支付软件的平台页面。如图1所示,其为用户界面的展示示意图。其中,图a展示的是目标应用程序的支付页面,图b展示的是点击支付页面中的页面控件后,跳转到的支付结果页面。
为了自动化测试目标应用程序的性能(比如,通过点击控件的操作,UI是否对应展示预期页面),开发人员可以编写针对目标应用程序的测试用例并封装,以及封装相应的“控件操作”,比如,单击操作、双击操作、滑动操作等。其中,测试用例可以包含针对目标应用程序的UI的自动化测试的测试逻辑、执行步骤、预期执行结果等;在执行测试用例的过程中,可以通过调用封装好的“控件操作”在UI中自动完成页面控件的操作,以进行目标应用程序的UI自动化测试。
基于上述对本公开实施例所公开的页面测试方法的应用场景的详细介绍,本公开实施例还提供了一种页面测试方法,该页面测试方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备。在一些可能的实现方式中,该页面测试方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图2所示,其为本公开实施例提供的一种页面测试方法的流程图,所述方法包括步骤S201~S203,其中:
S201:接收针对展示页面的测试请求,调用测试用例,截取展示页面的第一页面图像。
具体的,在针对目标应用程序的UI自动化测试的目标业务场景下,展示页面可以为UI中的当前展示的页面,或其他待展示的页面等。接收针对展示页面的测试请求,可以调用测试用例,对该测试用例指示的展示页面进行截图,最终截取得到该展示页面的第一页面图像。
测试用例中可以包括对目标应用程序中UI展示的目标页面的截图操作,该目标页面可以为预先设置的目标应用程序中展示的UI,具体可以根据实际测试目的设定,本公开实施例不进行具体限定。例如,目标页面可以为目标应用程序中的某一支付页面。而在执行目标业务场景对应的测试用例的过程中,测试用例指示的展示页面即为测试用例中预先设置的目标页面。
示例性的,在执行目标业务场景对应的测试用例的过程中,若检测到展示页面为目标页面,则调用截图工具对展示页面进行截图,得到包含展示页面内容的第一页面图像。第一页面图像可以为图1中的图a所展示的页面图像。
S202:调用目标神经网络模型对第一页面图像进行识别,得到第一页面图像中的页面控件信息;页面控件信息包括展示页面中各页面控件的位置信息。
可以利用人工智能计算机视觉技术,对第一页面图像进行识别处理,得到页面控件信息。
这里,目标神经网络模型可以是已经训练完成的神经网络模型。目标神经网络模型例如可以是yolov4的网络结构,包括主干网络,中间网络和头网络。其中,目标神经网络中的主干网络,可以选择darknet53的网络结构。另外,由于本公开实施例中针对页面控件的检测,可能需要非固定特征张量的输出(也即非固定尺寸的输出),因此,基于darknet53的网络结构中全连接层的特点(即产生固定尺寸的输出),对darknet53的网络结构进行改进,去掉原本的全连接层,得到新的darknet53的网络结构。目标神经网络模型中的中间网络,可以选择SPP和PAN的网络结构,以融合不同特征张量(也即不同尺寸)的特征信息。目标神经网模型中的头网络,可以选择yolo head网络结构,用于对识别到的页面控件进行解析处理,得到页面控件信息。
具体实施时,将第一页面图像输入到主干网络中进行特征提取,输出第一页面图像对应的特征张量;之后,利用中间网络对第一页面图像对应的不同特征张量进行融合处理,得到目标特征;之后,利用头网络对目标特征进行解析,根据解析结果确定页面控件信息。
页面控件信息可以包括展示页面中各页面控件的位置信息、各个控件的名称,各页面控件的类型、目标神经网络模型输出信息的置信度等。其中,页面控件的类型可以表征页面控件的功能,比如,费用支付控件、提示控件、信息确认控件等。
在一些实施例中,目标神经网络可以包括第一网络分支和第二网络分支,其中,第一网络分支和第二网络分支分别属于目标神经网络模型中的不同网络分支,但是第一网络分支和第二网络分支的网络结构相同,也即上述说明的网络结构,均包含上述的主干网络、中间网络和头网络(具体结构可以参见下述的图3所示),因此,第一网络分支和第二网络分支的处理能力相同,在具体实施过程中,可以调用目标神经网络模型的第一网络分支对第一页面图像进行识别,得到第一页面图像中的页面控制信息;或者,也可以目标神经网络模型的第二网络分支对第一页面图像进行识别,得到第一页面图像中的页面控制信息。
S203:基于各页面控件的位置信息,确定测试用例指示的目标操作页面控件的目标位置信息,并按照目标位置信息对目标操作页面控件进行测试触发操作。
测试用例中指示有多个待操作页面控件,根据当前UI,可以确定测试用例指示的目标操作页面控件。
具体实施时,可以解析json格式的页面控件信息,确定各个页面控件的字段信息,根据测试用例指示的目标操作页面控件,确定页面控件信息中目标操作页面控件的字段信息。根据目标操作页面控件的字段信息,在UI对目标操作页面控件进行定位,确定目标操作页面控件的目标位置信息。之后,按照目标位置信息,可以调用封装好的“控件操作”对目标操作页面控件进行测试触发操作。
这里,页面控件的字段信息中包括该页面控件的名称、类型、在UI的位置范围等。
上述S201~S203,通过截取展示页面的第一页面图像,调用目标神经网络模型对第一页面图像进行识别,能够准确地识别出展示页面中的各页面控件,也即能够准确地识别出实际测试场景下,展示页面中展示的各页面控件,进而得到各页面控件在第一页面图像中的精准的位置信息,之后,按照较为精准的测试用例指示的目标操作页面控件的目标位置信息对目标操作页面控件进行测试触发操作,能够高效实现页面测试。
另外,本公开实施可以无差别应用于多端(比如Android、IOS等系统)中的UI控件定位的自动化测试,并且依赖目标神经网络模型编写的测试用例,也可以在多端自动化测试中复用,在降低自动化测试中测试用例编写成本的同时,提高了自动化测试的效率。
UI自动化测试的主要目的为在对目标操作页面控件进行测试触发操作后,UI中是否展示预期的测试结果页面。因此,还需要进一步对测试触发操作后的测试结果页面进行校验处理。
针对测试结果页面的校验处理,传统UI自动化测试矿建通常利用代码层级断言的方式进行校验,利用代码插桩获取测试结果页面的内容,例如,判断实际测试过程中的展示代码是否为预设代码等。而代码层级指示的代码对应的测试结果页面也可能由于外在因素影响未能展示在UI内,因此,利用代码层级断言校验测试结果页面的方式得到的页面校验结果准确度低。
本公开实施例提供了一种测试结果页面的校验方式,在一些实施例中,可以截取进行测试触发操作后得到的测试结果页面的第二页面图像;调用目标神经网络模型中的第一网络分支对第二页面图像进行识别,以及调用目标神经网络模型中的第二网络分支,对测试用例中指示的测试结果页面对应的第一标准页面图像进行识别;基于第一网络分支的第一识别结果和第二网络分支的第二识别结果,确定测试结果页面对应的页面触发测试结果。
这里,测试结果页面可以为对目标操作页面控件进行测试触发操作后UI中展示的页面,可以参见图1中的图b所示,即为跳转后的页面。之后,可以通过调用截图工具对测试结果页面进行截图操作,得到第二页面图像。
第一标准页面图像可以为预先设置的测试结果页面对应的预期页面图像。该第一标准页面图像与测试结果页面具有关联关系,例如,页面标识与图像标识统一等,在判断出UI当前展示测试结果页面的情况下,根据关联关系,从数据库中调取与测试结果页面对应的第一标准页面图像,用于校验测试结果页面的展示内容。
目标神经网络模型中的第一网络分支和目标神经网络模型中的第二网络分支,分别属于目标神经网络模型中的不同网络分支,但是第一网络分支和第二网络分支的网络结构相同,均包含上述的主干网络、中间网络和头网络,因此,第一网络分支和第二网络分支的处理能力相同,通过输入不同的图像,能够得到输出的不同的对比信息,即第一识别结果和第二识别结果。具体可以参见图3所示,其为目标神经网络模型的网络结构示意图。
在一种可能的实施方式中,第一识别结果可以包含第二页面图像的图像特征,第二识别结果可以包含第一标准页面图像的图像特征,可以利用特征距离计算算法(如图3中的数据处理模块中的算法),判断第一识别结果与第二识别结果之间的相似性,若第一识别结果与第二识别结果之间的相似程度大于或等于预设相似度阈值,则确定页面触发测试结果(也即校验结果)为测试通过。
在另一种可能的实施方式中,第一识别结果可以包含第二页面图像的页面控件信息,第二识别结果可以包含第一标准页面图像的页面控件信息。头网络中可以采用损失函数CIoU Loss,由于CIoU Loss能够反映页面控件的特征框选距离,因此,通过数据处理模块能够进一步得到第一识别结果和第二识别结果中页面控件的特征框之间的重叠情况,进而判定第一识别结果与第二识别结果的相似性,从而确定测试触发操作对应的页面触发测试结果。其中,页面控件预测框的重叠面积越大,识别结果的相似程度越高。具体地,若第一识别结果与第二识别结果之间的相似程度大于或等于预设相似度阈值,则确定页面触发测试结果为测试通过。
在第一识别结果包含多个页面控件、第二识别结果包含多个页面控件的情况下,可以确定第一识别结果和第二识别结果中多个页面控件预测框的重叠均值。若重叠均值大于或等于预设重叠阈值,则确定页面触发测试结果为测试通过。
上述在确定了页面触发测试结果后,可以利用封装好的校验接口将页面触发测试结果传输至用户。
由于可能存在不同页面展示相同的页面控件,因此,在确定了目标操作页面控件的情况下,不能保证目标操作页面控件是展示在测试用例指示的目标页面中。为了准确地判断出目标操作页面控件是否展示在测试用例指示的目标页面中,在确定目标操作页面控件的目标控件位置的同时,还可以对目标操作页面控件所在的第一页面图像进行校验处理。
在一些实施例中,可以调用目标神经网络模型中的第一网络分支对第一页面图像进行识别,以及调用目标神经网络模型中的第二网络分支,对测试用例指示的所述展示页面对应的第二标准页面图像进行识别;基于第一网络分支的第三识别结果和第二网络分支的第四识别结果,确定展示页面对应的页面展示测试结果。
第二标准页面图像可以为预先设置的第一页面图像对应的预期页面图像。该第二标准页面图像与第一页面图像具有关联关系,例如,图像标识对应关系等。在判断UI展示的第一页面图像的情况下,根据第一页面图像的标识,确定与该标识对应的图像标识,进而确定与该图像标识对应的第二标准页面图像。
这里,展示页面的校验过程可以参见上述实施例中针对测试结果页面的校验过程,重复部分不再赘述。
上述在确定了页面展示测试结果之后,可以利用封装好的校验接口将页面展示测试结果传输至用户。
针对上述目标神经网络模型的训练过程,在一些实施例中,获取样本图像集,以及,样本图像集中各个样本图像的标注信息;标注信息用于标注各个页面控件的信息;重复执行以下训练过程,直到得到满足训练截止条件的目标神经网络模型:将携带有标注信息的样本图像集输入到待训练的目标神经网络模型,基于得到的控件识别归类结果和标注信息,确定目标神经网络的损失信息;基于确定的损失信息,对目标神经网络模型的网络参数进行调整。
这里,样本数据集中包括多个样本图像。样本图像可以是目标业务场景下目标应用程序中的历史UI截图,或者,可以是针对目标业务场景下目标应用程序,历史用户操作过程中录制视频内的图像。
在获取到样本数据集后,针对样本数据集中的每个样本图像,用户可以对每个样本图像进行标注操作,具体地,可以是标准样本图像中页面控件的名称、类型、所在位置范围(如标注检测框,检测框内框选页面控件)。之后,将各个样本图像的标注信息以及该样本图像存储,等待目标神经网络模型的训练。在响应训练请求时,利用携带标注信息的样本数据集训练待训练的目标神经网络模型。
具体训练实施过程,可以对各个样本图像中的相同特征进行归类处理,得到同种类型页面控件的归类结果,归类结果中可以包括页面控件的名称、类型、位置范围,这里的页面控件可以包括同种页面上相同页面控件、以及不同页面上相同页面控件。之后,结合标注信息,使得控件识别归类结果中同一页面控件(即名称相同、类型相同、位置范围相近)尽可能位于标注信息指示的位置范围内,确定损失信息。之后,利用确定的损失信息对待训练的目标神经网络的网络参数进行调整,最终调整后的目标神经网络,也即训练好的目标神经网络,能够较为准确地输出页面控件的位置信息。
参见上述所述的页面控件信息,在页面控件信息包括各个页面控件的类型信息的情况下,在基于各页面控件的位置信息,确定测试用例指示的目标操作页面控件的目标位置信息时,具体用于基于各个页面控件的类型信息和位置信息,确定各个页面控件中,与测试用例中指示的目标操作页面控件的类型信息相匹配的目标页面控件,并将该目标页面控件的位置信息作为目标位置信息。
测试用例中包含目标操作页面控件的类型信息,在页面控件信息中包含各个页面控件的类型信息和位置信息的情况下,可以从各个页面控件的类型信息选择与目标操作页面控件的类型信息相匹配的目标页面控件,将该目标页面控件的位置信息作为目标位置信息,之后,按照目标位置信息对目标操作页面控件进行测试触发操作。
这里,任一页面控件的位置信息可以包括指示页面控件在页面中的位置范围的信息。具体地,在按照目标位置信息对目标操作页面控件进行测试触发操作时,具体用于从目标位置信息指示的目标位置范围中选择任一位置作为目标操作位置,按照目标操作位置对目标操作页面控件进行测试触发操作。
示例性的,在确定了目标位置范围的情况下,根据目标位置范围内的各个位置,确定目标位置范围对应的准确的中心位置,也即目标操作页面控件的中心在UI中的位置,之后,可以按照中心位置对目标操作页面控件进行测试触发操作。
上述执行UI自动化测试任务,可以是利用分别部署有测试执行模块的设备和部署有人工智能(Artificial Intelligence,AI)模块的设备共同完成的。具体可以参见图4所示,其为一种页面测试系统的示意图。
测试执行模块,用于在执行目标业务场景对应的测试用例的过程中,对测试用例指示的展示页面进行截图,得到第一页面图像,并将第一页面图像上传到AI模块。
AI模块,用于调用目标神经网络模型对第一页面图像进行识别,得到第一页面图像中的页面控件信息,并将页面控件信息反馈给测试执行模块;页面控件信息包括展示页面中各页面控件的位置信息。
这里,AI模块在获取到目标神经网络模型输出的页面控件信息后,还可以将页面控件信息封装成json格式返回给测试执行模块。在一些实施例中,AI模块还可以对外提供了UI控件定位接口。可以利用UI控件定位接口将封装后的页面控件信息传输至测试执行模块。
测试执行模块,还用于接收AI模块反馈的第一页面图像对应的页面控件信息,基于各页面控件的位置信息,确定测试用例指示的目标操作页面控件的目标位置信息,按照目标位置信息对目标操作页面控件进行测试触发操作。
具体实施时,测试执行模块可以解析json格式的页面控件信息,确定各个页面控件的字段信息,根据测试用例指示的目标操作页面控件,确定页面控件信息中目标操作页面控件的字段信息。根据目标操作页面控件的字段信息,在UI对目标操作页面控件进行定位,确定目标操作页面控件的目标位置信息。之后,按照目标位置信息,可以调用封装好的“控件操作”对目标操作页面控件进行测试触发操作。
本公开实施例提供了一种测试结果页面的校验方式,在一些实施例中,测试执行模块还用于,将按照目标位置信息对目标操作页面控件进行测试触发操作后的测试结果页面进行截图,得到第二页面图像;之后,将第二页面图像和测试用例中指示的测试结果页面对应的第一标准页面图像发送给AI模块。
之后,AI模块还用于,将第二页面图像输入到目标神经网络模型中的第一网络分支,以及将第一标准页面图像输入到目标神经网络模型中的第二网络分支,基于第一网络分支的第一识别结果和第二网络分支的第二识别结果,确定测试结果页面对应的页面触发测试结果。
在另一些实施例中,无需测试执行模块传输第二页面图像的同时,同步上传第一标准页面图像。可以预先将第一标准页面图像上传到AI模块中进行存储(例如,存储到AI模块中的数据存储单元);之后,AI模块在检测到测试执行模块上传了第二页面图像的情况下,从数据存储单元中获取与第二页面图像对应的第一标准页面图像;之后,分别将第二页面图像输入到第一网络分支,将第一标准页面图像输入到第二网络分支。
上述在确定了页面触发测试结果后,AI模块可以利用封装好的校验接口将页面触发测试结果传输至用户,例如,传输至测试执行模块中的结果展示单元进行展示。
对目标操作页面控件所在的第一页面图像进行校验处理。在一些实施例中,测试执行模块还用于,在得到第一页面图像后,将第一页面图像、和测试用例中指示的展示页面对应的第二标准页面图像发送给AI模块;AI模块还用于,将第一页面图像输入到目标神经网络的第一网络分支,以及,将第二标准页面图像输入到目标神经网络的第二网络分支,基于第一网络分支的第三识别结果和第二网络分支的第四识别结果,确定展示页面对应的页面展示测试结果。
在另一些实施例中,无需测试执行模块传输第一页面图像的同时,同步上传第二标准页面图像。可以预先将第二标准页面图像上传到AI模块中进行存储(例如,存储到AI模块中的数据存储单元);之后,AI模块在检测到测试执行模块上传了第一页面图像的情况下,从数据存储单元中获取与第一页面图像对应的第二标准页面图像;之后,分别将第一页面图像输入到第一网络分支,将第二标准页面图像输入到第二网络分支。
上述在确定了页面展示测试结果后,AI模块可以利用封装好的校验接口将页面展示测试结果传输至用户。
AI模块还用于训练目标神经网络模型,这里,训练过程可以参见上述实施例中神队目标神经网络模型的训练过程,重复部分在此不再赘述。
在用户对每个样本图像进行标注操作后,可以将各个样本图像的标注信息以及该样本图像上传至数据存储单元,等待目标神经网络模型的训练。在响应训练请求时,可以通过TOS数据集管理接口,将携带标注信息的样本数据集上传至网络训练单元。
示例性的,数据存储单元可以为基于TOS基础架构组的对象存储单元。由于TOS较好的数据管理和治理能力,因此,在目标神经网络模型训练完成后,可用直接将原目标神经网络模型更新为当前训练完成的目标神经网络模型。
在一些实施例中,测试执行模块还可以包括测试执行单元、故障上报单元、报告输出单元、结果展示单元等。其中,测试执行单元可以用于执行测试用例;故障上报单元可以用于在校验未通过的情况下,将未通过的原因上报至用户,例如,可以在结果展示单元进行展示;报告输出单元也用于将测试结果上报至用户,例如,可以在结果展示单元进行展示。测试结果可以包括执行测试用例的执行结果,例如UI展示的测试结果页面,或者,也可以包括页面触发测试结果和页面展示测试结果等。
在一些实施例中,不仅支付方式对应的页面控件可以进行定位识别、校验处理,根据实际应用场景,本公开实施例提供的一种页面测试系统,可以进行任意页面中控件的定位识别、校验等自动化测试。参加图5所示,其为测试用例执行过程示意图。
以目标应用程序为例,业务方流程:包括进入目标应用程序(目标应用程序首页)→……→进入支付页面。示例性的,目标应用程序首页→点击进入直播间→进入购买页面→进入支付页面(页面展示示意图可以参见图1中的图a所示)。具体地,可以针对业务方流程中的各个页面,进行自动化测试。
支付页面流程:包括支付页面→支付结果页面。其中,支付页面包括多种支付方式,例如,平台支付或调用其他支付软件支付等等;支付结果页面包括支付费用,商品信息等。
上述执行UI自动化测试任务,可以是利用部署有测试功能的设备执行完成的,因此,基于同一发明构思,本公开实施例中还提供了与页面测试方法对应的页面测试装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图6所示,为本公开实施例提供的一种交互测试装置的示意图,所述装置包括:截图模块601、识别模块602和测试模块603;其中,
截图模块601,用于接收针对展示页面的测试请求,调用测试用例,截取所述展示页面的第一页面图像;
识别模块602,用于调用目标神经网络模型对所述第一页面图像进行识别,得到所述第一页面图像中的页面控件信息;所述页面控件信息包括所述展示页面中各页面控件的位置信息;
测试模块603,用于基于所述各页面控件的位置信息,确定所述测试用例指示的目标操作页面控件的目标位置信息,并按照所述目标位置信息对所述目标操作页面控件进行测试触发操作。
一种可选的实施方式中,所述目标神经网络模型包括第一网络分支和第二网络分支,所述识别模块602,用于调用所述目标神经网络模型的所述第一网络分支或所述第二网络分支对所述第一页面图像进行识别,得到第一页面图像中的页面控制信息;
所述测试模块603,还用于按照所述目标位置信息对所述目标操作页面控件进行测试触发操作之后,截取进行测试触发操作后得到的测试结果页面的第二页面图像;
调用所述目标神经网络模型中的第一网络分支对所述第二页面图像进行识别,以及调用所述目标神经网络模型中的第二网络分支,对所述测试用例中指示的所述测试结果页面对应的第一标准页面图像进行识别;
基于所述第一网络分支的第一识别结果和所述第二网络分支的第二识别结果,确定所述测试结果页面对应的页面触发测试结果。
一种可选的实施方式中,所述测试模块603,还用于调用所述目标神经网络模型中的第一网络分支对所述第一页面图像进行识别,以及调用所述目标神经网络模型中的第二网络分支,对所述测试用例指示的所述展示页面对应的第二标准页面图像进行识别;
基于所述第一网络分支的第三识别结果和所述第二网络分支的第四识别结果,确定所述展示页面对应的页面展示测试结果。
一种可选的实施方式中,所述装置还包括训练模块604,用于根据以下步骤训练所述目标神经网络模型:
获取样本图像集,以及,所述样本图像集中各个样本图像的标注信息;所述标注信息用于标注各个页面控件的信息;
重复执行以下训练过程,直到得到满足训练截止条件的目标神经网络模型:
将携带有标注信息的所述样本图像集输入到待训练的目标神经网络模型,基于得到的控件识别归类结果和所述标注信息,确定所述目标神经网络的损失信息;基于确定的损失信息,对所述目标神经网络模型的网络参数进行调整。
一种可选的实施方式中,所述页面控件信息还包括各个页面控件的类型信息;
所述测试模块603,用于基于所述各个页面控件的类型信息和所述位置信息,确定所述各个页面控件中,与所述测试用例中指示的目标操作页面控件的类型信息相匹配的目标页面控件,并将该目标页面控件的位置信息作为所述目标位置信息。
一种可选的实施方式中,任一所述页面控件的位置信息包括指示所述页面控件在页面中的位置范围的信息;
所述测试模块603,用于从所述目标位置信息指示的目标位置范围中选择任一位置作为目标操作位置,按照所述目标操作位置对所述目标操作页面控件进行测试触发操作。
关于方法中的各步骤之间的处理流程、以及各步骤之间的交互流程的描述可以参照上述系统实施例中的相关说明,这里不再详述。
基于同一技术构思,本申请实施例还提供了一种计算机设备。参照图7所示,为本申请实施例提供的计算机设备的结构示意图,包括:
处理器71、存储器72和总线73。其中,存储器72存储有处理器71可执行的机器可读指令,处理器71用于执行存储器72中存储的机器可读指令,所述机器可读指令被处理器71执行时,处理器71执行下述步骤:S201:接收针对展示页面的测试请求,调用测试用例,截取展示页面的第一页面图像;S202:调用目标神经网络模型对第一页面图像进行识别,得到第一页面图像中的页面控件信息;页面控件信息包括展示页面中各页面控件的位置信息;S203:基于各页面控件的位置信息,确定测试用例指示的目标操作页面控件的目标位置信息,并按照目标位置信息对目标操作页面控件进行测试触发操作。
上述存储器72包括内存721和外部存储器722;这里的内存721也称内存储器,用于暂时存放处理器71中的运算数据,以及与硬盘等外部存储器722交换的数据,处理器71通过内存721与外部存储器722进行数据交换,当计算机设备运行时,处理器71与存储器72之间通过总线73通信,使得处理器71在执行上述方法实施例中所提及的执行指令。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的页面测试方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现上述的页面测试方法的步骤。其中,计算机程序产品可以是任何能实现上述页面测试方法的产品,该计算机程序产品中对现有技术做出贡献的部分或全部方案可以以软件产品(例如软件开发包(Software Development Kit,SDK))的形式体现,该软件产品可以被存储在一个存储介质中,通过包含的计算机指令使得相关设备或处理器执行上述页面测试方法的部分或全部步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。