掌桥专利:专业的专利平台
掌桥专利
首页

页面测试方法及装置、存储介质及电子设备

文献发布时间:2023-06-19 13:49:36


页面测试方法及装置、存储介质及电子设备

技术领域

本申请涉及软件测试技术领域,尤其涉及一种页面测试方法及装置、存储介质及电子设备。

背景技术

在对待测试应用程序的各个页面进行测试的过程中,需要判断页面是否被启动,在确定出页面被启动后,才对页面测试。

现有技术中,通过定时器轮询判断页面是否被启动,然而大量的轮询操作会消耗比较多的CPU资源,影响系统的运行效率,导致测试效率较低。

发明内容

本申请提供了一种页面测试方法及装置、存储介质及电子设备,目的在于解决现在的页面测试方案需要消耗比较多的CPU资源,影响系统的运行效率,导致测试效率较低的问题。

为了实现上述目的,本申请提供了以下技术方案:

一种页面测试方法,包括:

在接收到预设函数反馈的页面标识时,确定出待测试应用程序中的目标页面被启动;其中,所述目标页面为所述待测应用程序中与所述页面标识对应的页面;所述目标页面在启动的过程中,调用所述预设函数;

对所述目标页面进行页面测试,得到所述目标页面的测试结果。

上述的方法,可选的,所述对所述目标页面进行页面测试,得到所述目标页面的测试结果,包括:

获取所述目标页面包括的各个页面元素;

获取预设的与所述目标页面包括每个页面元素对应的操作事件;

对与所述目标页面包括每个页面元素对应的操作事件进行封装处理,得到封装结果;

基于所述页面标识,从预设的单元测试管理器中,查找与所述目标页面对应的单元测试用例;

基于所查找到的单元测试用例和所述封装结果,对所述目标页面进行页面测试,得到所述目标页面的测试结果。

上述的方法,可选的,所述获取所述目标页面包括的各个页面元素,包括:

基于所述页面标识,获取所述目标页面的页面地址;

基于所述目标页面的页面地址,通过预设的路径表达式获取所述目标页面包括的各个页面元素。

上述的方法,可选的,所述对所述目标页面进行页面测试,得到所述目标页面的测试结果之后,还包括:

判断所述待测应用程序包括的所有页面是否均完成页面测试;

若所述待测试应用程序包括的所有页面均完成页面测试,则基于所述待测试应用程序包括的每个页面的测试结果,得到所述待测试应用程序的测试结果。

上述的方法,可选的,所述基于所述待测试应用程序包括的每个页面的测试结果,得到所述待测试应用程序的测试结果之后,还包括:

基于所述待测试应用程序的测试结果,生成所述待测应用程序的测试报告文档。

一种页面测试装置,包括:

确定单元,用于在接收到预设函数反馈的页面标识时,确定出待测试应用程序中的目标页面被启动;其中,所述目标页面为所述待测应用程序中与所述页面标识对应的页面;所述目标页面在启动的过程中,调用所述预设函数;

测试单元,用于对所述目标页面进行页面测试,得到所述目标页面的测试结果。

上述的装置,可选的,所述测试单元具体用于:

获取所述目标页面包括的各个页面元素;

获取预设的与所述目标页面包括每个页面元素对应的操作事件;

对与所述目标页面包括每个页面元素对应的操作事件进行封装处理,得到封装结果;

基于所述页面标识,从预设的单元测试管理器中,查找与所述目标页面对应的单元测试用例;

基于所查找到的单元测试用例和所述封装结果,对所述目标页面进行页面测试,得到所述目标页面的测试结果。

上述的装置,可选的,所述测试单元用于获取所述目标页面包括的各个页面元素,包括所述测试单元具体用于:

基于所述页面标识,获取所述目标页面的页面地址;

基于所述目标页面的页面地址,通过预设的路径表达式,获取所述目标页面包括的各个页面元素。

一种存储介质,所述存储介质存储有指令集,其中,所述指令集被处理器执行时实现如上述的页面测试方法。

一种电子设备,包括:

存储器,用于存储至少一组指令集;

处理器,用于执行所述存储器中存储的指令集,通过执行所述指令集实现如上述的页面测试方法。

与现有技术相比,本申请包括以下优点:

本申请提供了一种页面测试方法及装置、存储介质及电子设备,包括:在接收到预设函数反馈的页面标识时,确定出待测试应用程序中的目标页面被启动;其中,目标页面为所述待测应用程序中与页面标识对应的页面;目标页面在启动的过程中,调用预设函数;对目标页面进行页面测试,得到目标页面的测试结果。可见,本申请方案,预设函数,待测试应用程序中每个页面在启动的过程中,均会调用该预设函数,从而在接收到预设函数反馈的页面标识时,即可确定出待测试应用程序中与该页面标识对应的页面被启动,进而对当前启动的页面进行页面测试,由于无需定时器轮询判断页面是否被启动,从而减少对CPU资源的消耗,从而提高系统的运行效率,进而提高测试效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请提供的一种页面测试方法的方法流程图;

图2为本申请提供的一种页面测试方法的又一方法流程图;

图3为本申请提供的一种页面测试方法的再一方法流程图;

图4为本申请提供的一种页面测试方法的另一方法流程图;

图5为本申请提供的一种页面测试系统的结构示意图;

图6为本申请提供的一种采购控制装置的结构示意图;

图7为本申请提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。

需要注意,本申请公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本申请公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

本申请实施例提供了一种页面测试方法,该方法应用于终端设备,终端设备包括但不限于手持设备、便携式设备、平板型设备,本实施例中,预先在终端设备上安装edxposed框架,具体的,预先在终端设备中安装用于定制操作系统的开源工具,可选的,开源工具可以是面具Magisk v21+,然后从Magisk仓库中安装Riru v23+,在Magisk管理器中下载和安装EdXposed,完成对EdXposed的安装。

本实施例中,所述页面测试方法的流程图如图1所示,具体包括:

S101、在接收到预设函数反馈的页面标识时,确定出待测试应用程序中的目标页面被启动。

本实施例中,预设函数,预设函数可以是恢复onResume()函数,通过onResume()函数,实现对待测应用程序中页面切换的监听,也就是监听是否打开了新的页面。

需要说明的是,待测试应用程序中任意页面启动时,均会调用预设函数,预设函数在被调用后,会返回当前启动的页面的页面标识。

本实施例中,判断是否接收到预设函数反馈的页面,若接收到预设页面反馈的页面标识,则确定出待测试应用程序中的目标页面被启动,其中,目标页面为待测试应用程序中与页面标识对应的页面。

S102、对目标页面进行页面测试,得到目标页面的测试结果。

本实施例中,在确定出目标页面被启动后,对目标页面进行页面测试,从而得到目标页面的测试结果。

参阅图2,对目标页面进行页面测试,得到目标页面的测试结果的过程,具体包括以下步骤:

S201、获取目标页面包括的各个页面元素。

本实施例中,获取目标页面包括的各个页面元素,其中,页面元素包括但不限于按钮Button、图像视图ImageView、线性布局LinearLayout和视图组ViewGroup。

本实施例中,页面元素继承View(视图类)。

参阅图3,获取目标页面包括的各个页面元素的过程,具体包括以下步骤:

S301、基于页面标识,获取目标页面的页面地址。

S302、基于目标页面的页面地址,通过预设的路径表达式,获取目标页面包括的各个页面元素。

本实施例中,基于目标页面的页面地址,通过调用预设的路径表达式xpath,获取路径表达式反馈的目标页面包括的各个页面元素。

S202、获取预设的与目标页面包括每个页面元素对应的操作事件。

本实施例中,预设操作事件,也就是预先编写操作代码,用于模拟人工操作,操作事件包括但不限于点击事件、滑动事件和长按事件。

本实施例中,从预设的各个操作事件中,获取与目标页面包括的每个页面元素对应的操作事件,从而得到多个操作事件。

S203、对与目标页面包括每个页面元素对应的操作事件进行封装处理,得到封装结果。

本实施例中,对与目标页面包括的每个页面元素对应的操作事件进行封装处理,得到封装结果,可选的,可以是对与目标页面包括的每个页面对应的所有操作事件进行统一封装处理。

S204、基于页面标识,从预设的单元测试管理器中,查找与目标页面对应的单元测试用例。

本实施例中,预设单元测试管理器,单元测试管理中预先存储多个单元测试用例,并存储单元测试用例与待测试应用程序包括的每个页面的对应关系,对应关系包括单元测试用例的用例标识和页面标识

本实施例中,基于目标页面的页面标识,通过预先存储的对应关系,确定与页面标识对应的用例标识,并将与页面标识对应的用例标识确定为目标用例标识,从而在预设的单元测试管理器中,查找与目标用例标识对应的单元测试用例,将目标用例标识对应的单元测试用例作为目标页面对应的单元测试用例。

S205、基于所查找到的单元测试用例和封装结果,对目标页面进行页面,得到目标页面的测试结果。

本实施例中,基于所查找到的单元测试用例和封装结果,对目标页面进行页面测试,得到目标页面的测试结果,具体的,单元测试用例中的测试脚本依次调用封装结果,对目标页面中的各个页面元素进行操作,从而实现对目标页面的页面测试。

本申请实施例提供的页面测试方法中,预设函数,待测试应用程序中每个页面在启动的过程中,均会调用该预设函数,从而在接收到预设函数反馈的页面标识时,即可确定出待测试应用程序中与该页面标识对应的页面被启动,实现准确判断页面是否被启动,进而对当前启动的页面进行页面测试,由于无需定时器轮询判断页面是否被启动,从而减少对CPU资源的消耗,从而提高系统的运行效率,进而提高测试效率。并且,通过路径表达式,可以准确查找当前启动页面的页面元素。

参阅图4,本申请实施例提供的页面测试方法,步骤S102之后,还可以包括以下步骤:

S401、判断待测应用程序包括的所有页面是否均完成页面测试,若是,执行S402,若否,执行S401。

本实施例中,判断待测试应用程序包括的所有页面是否均完成页面测试,也就是判断是否均存在待测试应用程序包括的每个页面的测试结果,若待测试应用程序中的任务一个页面未完成页面测试,则返回执行步骤S401。

S402、基于待测试应用程序包括的每个页面的测试结果,得到待测试应用程序的测试结果。

本实施例中,基于待测试应用程序包括的每个页面的测试结果,得到待测试应用程序的测试结果,也就是说,待测试应用程序包括的每个页面的测试结果均作为待测试应用程序的测试结果。

本申请实施例提供的页面测试方法,步骤S402之后,还可以包括以下步骤:

基于待测试应用程序的测试结果,生成待测应用程序的测试报告文档。

本实施例中,在获取到待测试应用程序的测试结果后,还可以基于待测试应用程序的测试结果,生成测试报告文档,具体的生成过程请参数现有技术,此处不再赘述。

本实施例中,在生成测试报告文档后,还可以对测试包括文档进行可视化展示。

本申请实施例提供的页面测试方法,通过对待测试应用程序的测试结果,生成测试报告文档,简单明了的说明待测试应用程序的测试结果。

参阅图5,对上述本申请实施例提及的页面测试方法进行举例说明如下:

在自动测试过程中,最重要的问题是能精准的获取界面元素并且操作元素和校验操作结果。

本实施例中,在终端设备中安装edxposed框架edxposed框架主要分为预处理模块、单元测试模块,测试数据结果模块。

预处理模块主要完成以下工作:

(1)、通过Hook Application的dispatchActivityResumed和Fragment的onResume方法等来监听页面的切换

(2)、在页面切换时遍历单元测试管理器中的单元测试用例,执行对应的单元测试。

(3)、对自动化操作过程中对元素进行操作的事件进行封装,如点击事件,滑动事件,长按事件等。

(4)、通过路径表达式xpath查找界面元素进行封装。

单元测试模块主要完成以下工作:

(1)、根据业务场景编写测试单元

测试数据结果模块:

(1)、收集单元测试的结果,并给出测试报告文档。

需要说明的是,虽然采用特定次序描绘了各指令,但是这不应当理解为要求这些指令以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。

应当理解,本申请公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请公开的范围在此方面不受限制。

与图1所述的方法相对应,本申请实施例还提供了一种页面测试装置,用于对图1中方法的具体实现,其结构示意图如图6所示,具体包括:

确定单元601,用于在接收到预设函数反馈的页面标识时,确定出待测试应用程序中的目标页面被启动;其中,所述目标页面为所述待测应用程序中与所述页面标识对应的页面;所述目标页面在启动的过程中,调用所述预设函数;

测试单元602,用于对所述目标页面进行页面测试,得到所述目标页面的测试结果。

本申请实施例提供的页面测试装置,预设函数,待测试应用程序中每个页面在启动的过程中,均会调用该预设函数,从而在接收到预设函数反馈的页面标识时,即可确定出待测试应用程序中与该页面标识对应的页面被启动,实现准确判断页面是否被启动,进而对当前启动的页面进行页面测试,由于无需定时器轮询判断页面是否被启动,从而减少对CPU资源的消耗,从而提高系统的运行效率,进而提高测试效率。并且,通过路径表达式,可以准确查找当前启动页面的页面元素。

在本申请的一个实施例中,基于前述方案,测试单元602具体用于:

获取所述目标页面包括的各个页面元素;

获取预设的与所述目标页面包括每个页面元素对应的操作事件;

对与所述目标页面包括每个页面元素对应的操作事件进行封装处理,得到封装结果;

基于所述页面标识,从预设的单元测试管理器中,查找与所述目标页面对应的单元测试用例;

基于所查找到的单元测试用例和所述封装结果,对所述目标页面进行页面测试,得到所述目标页面的测试结果。

在本申请的一个实施例中,基于前述方案,测试单元602用于获取所述目标页面包括的各个页面元素,包括所述测试单元602具体用于:

基于所述页面标识,获取所述目标页面的页面地址;

基于所述目标页面的页面地址,通过预设的路径表达式,获取所述目标页面包括的各个页面元素。

在本申请的一个实施例中,基于前述方案,还可以配置为:

判断单元,用于判断所述待测应用程序包括的所有页面是否均完成页面测试;

获取单元,用于若所述待测试应用程序包括的所有页面均完成页面测试,则基于所述待测试应用程序包括的每个页面的测试结果,得到所述待测试应用程序的测试结果。

在本申请的一个实施例中,基于前述方案,还可以配置为:

生成单元,用于基于所述待测试应用程序的测试结果,生成所述待测应用程序的测试报告文档。

本申请实施例还提供了一种存储介质,所述存储介质存储有指令集,其中,在所述指令集运行时执行如上文任一实施例公开的页面测试方法。

本申请实施例还提供了一种电子设备,其结构示意图如图7所示,具体包括存储器701,用于存储至少一组指令集;处理器702,用于执行所述存储器中存储的指令集,通过执行所述指令集实现以下操作:

在接收到预设函数反馈的页面标识时,确定出待测试应用程序中的目标页面被启动;其中,所述目标页面为所述待测应用程序中与所述页面标识对应的页面;所述目标页面在启动的过程中,调用所述预设函数;

对所述目标页面进行页面测试,得到所述目标页面的测试结果。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本申请公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。

以上描述仅为本申请公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

相关技术
  • 页面测试方法、页面测试装置、电子设备及可读存储介质
  • 一种用户页面的测试方法、装置、电子设备及存储介质
技术分类

06120113822664