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

应用功能遍历测试方法、装置和存储介质

文献发布时间:2023-06-19 16:04:54



技术领域

本申请涉及应用测试技术领域,特别是涉及一种应用功能遍历测试方法、装置和存储介质。

背景技术

应用程序在制作好后,为了保证其在各种使用场景下均能保持稳定地运行,需要对应用程序进行功能遍历测试。应用程序功能遍历,是指对应用中的每个功能均做一次访问,以验证每个功能是否可用。例如,可以将应用中的每个功能看作一颗树,在进行功能遍历时,沿着树的路径,依次对树中的每个结点做一次访问,根据访问结果来确定功能验证是否成功。

目前已有的应用功能遍历测试方法通常是基于手机提供的测试工具instrument进行实现,需要首先对被测应用进行预处理,生成一个针对被测应用的测试应用,再使用同一签名将测试应用和被测应用进行签名,然后将被测应用和测试应用都安装到手机上,接着使用instrument的启动方式启动测试。

目前的应用功能遍历测试方法存在以下缺点:无法支持跨平台、全面地测试,测试力度很弱,测试效率低,用户主动干预度低,易用性差,并且无法发现应用界面性的缺陷。

前面的叙述在于提供一般的背景信息,并不一定构成现有技术。

发明内容

本申请的目的在于提供一种应用功能遍历测试方法、装置和存储介质,能够支持跨平台、全面性地对应用功能进行遍历测试,并且测试效率高。

为达到上述目的,本申请的技术方案是这样实现的:

第一方面,本申请实施例提供了一种应用功能遍历测试方法,包括:

在自动化测试框架上对需要测试的操作行为进行封装;

将当前应用界面构建为XML文件结构;

获取构建后的应用界面中的待遍历元素,根据待遍历元素得到目标控件;

根据操作行为和匹配规则,对目标控件依次进行遍历测试操作。

可选地,将需要测试的操作行为细化为每一步操作;

确定每一步操作的前置操作;

根据操作和操作的前置操作,确定与前置操作相对应的前置操作状态类型;

根据前置操作状态类型对操作行为进行封装。

可选地,将需要测试的操作行为细化为每一步操作,具体包括:

将需要测试的操作行为分解成若干基础单元;其中,基础单元包括一次对应用界面的操作和与操作相对应的操作状态,操作行为包括若干基础单元的组合。

可选地,确定每一步操作的前置操作,具体包括:

设置操作的前置操作状态,根据前置操作状态确定操作的前置操作。

可选地,确定与前置操作相对应的前置操作状态类型,具体包括:

根据前置操作与操作之间的逻辑关系,确定前置操作状态类型;其中,前置操作状态类型包括前置界面与前置配置,在操作行为中的其中一个操作执行之后,才能执行其中一个操作的后一个操作时,其中一个操作视为后一个操作的前置配置,当操作行为中的其中两个或两个以上操作的前置操作为同一个时,前置操作视为两个或两个以上操作的前置界面。

可选地,根据前置操作状态类型对操作行为进行封装,具体包括:

获取前置界面与前置配置之间的共性,根据共性对操作行为进行封装。

可选地,获取构建后的应用界面中的待遍历元素,根据待遍历元素得到目标控件,具体包括:

获取构建后的应用界面中的待遍历控件,对待遍历控件进行过滤,对过滤后的控件按照优先级进行排列得到目标控件。

第二方面,本申请实施例提供了一种应用功能遍历测试装置,包括:

封装模块,用于在自动化测试框架上对需要测试的操作行为进行封装;

构建模块,用于将当前应用界面构建为XML文件结构;

控件获取模块,用于获取构建后的应用界面中的待遍历元素,根据待遍历元素得到目标控件;

遍历模块,用于根据操作行为和匹配规则,对目标控件依次进行遍历测试操作。

第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令用于使计算机执行所述的方法。

本申请实施例提供的技术方案带来的有益效果是:

本申请实施例提供的应用功能遍历测试方法、装置和存储介质,通过在自动化测试框架上对需要测试的操作行为进行封装;将当前应用界面构建为XML文件结构;获取构建后的应用界面中的待遍历元素,根据待遍历元素得到目标控件;根据操作行为和匹配规则,对目标控件依次进行遍历测试操作,从而能够支持跨平台、全面性地对应用功能进行遍历测试,并且测试效率高。

附图说明

图1为本申请实施例提供的应用功能遍历测试方法的流程示意图;

图2为封装的流程示意图;

图3为本申请实施例提供的应用功能遍历测试装置的框图。

具体实施方式

以下结合说明书附图及具体实施例对本申请技术方案做进一步的详细阐述。除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。

图1是本申请实施例提供的应用功能遍历测试方法的流程示意图。所述应用功能遍历测试方法能够支持跨平台、全面性地对应用功能进行遍历测试,并且测试效率高,请参考图1,本实施例的应用功能遍历测试方法,可以包括以下步骤:

步骤S101,在自动化测试框架上对需要测试的操作行为进行封装。

其中,自动化测试框架采用的底层引擎可以包括Appium、Adb、Macaca、或Selenium等,以提供底层的技术支持,可以实现跨平台(例如Android、IOS等平台)功能遍历测试。安卓系统可以分为核心层、框架层和应用层等,这里的自动化测试框架是指框架层。

可选地,在步骤S101中,在自动化测试框架上对需要测试的操作行为进行封装,具体可以包括如图2的如下步骤:

步骤S201,将需要测试的操作行为细化为每一步操作;

步骤S203,确定每一步操作的前置操作;

步骤S205,根据操作和操作的前置操作,确定与前置操作相对应的前置操作状态类型;

步骤S207,根据前置操作状态类型对操作行为进行封装。

其中,在步骤S201中,将需要测试的操作行为细化为每一步操作,具体可以包括:将需要测试的操作行为分解成若干基础单元;其中,基础单元包括一次对应用界面的操作和与操作相对应的操作状态,操作行为包括若干基础单元的组合。对应用界面的操作可以包括点击(click)、滑动(scroll)、左滑动(scroll left)、上滑动(scroll up)、下滑动(scroll down)等操作。操作状态可以包括点击到一具体位置、滑动到一具体位置等状态。

其中,在步骤S203中,确定每一步操作的前置操作,具体可以包括:设置操作的前置操作状态,根据前置操作状态确定操作的前置操作。

其中,在步骤S205中,确定与前置操作相对应的前置操作状态类型,具体可以包括:根据前置操作与操作之间的逻辑关系,确定前置操作状态类型;其中,前置操作状态类型包括前置界面与前置配置,在操作行为中的其中一个操作执行之后,才能执行其中一个操作的后一个操作时,其中一个操作视为后一个操作的前置配置;当操作行为中的其中两个或两个以上操作的前置操作为同一个时,前置操作视为两个或两个以上操作的前置界面。逻辑关系可以为互为前后操作关系等。前置操作状态类型可以包括点击操作、滑动操作等类型。

其中,在步骤S207中,根据前置操作状态类型对操作行为进行封装,具体可以包括:获取前置界面与前置配置之间的共性,根据共性对操作行为进行封装。共性例如可以为共同具有的特点。

步骤S103,将当前应用界面dump(构建)为XML文件结构。

其中,XML文件结构为UI(User Interface,用户界面)层的(可扩展标记语言,Extensible Markup Language)XML文件结构。应用界面即为应用程序界面,例如可以包括视频应用程序界面,购物应用程序界面等。

步骤S105,获取构建后的应用界面中的待遍历元素,根据待遍历元素得到目标控件。

待遍历元素可以包括控件,控件可以包括TextView(文本控件)、EditText(可编辑文本控件)、Button(按钮)、imageButton(图片按钮)、ToggIeButton(开关按钮)、ImageView(图片控件)、CheckBox(复选框控件)或RadioButton(单选框控件)等。获取待遍历元素时,可以直接使用accessibiltyserver获取构建后的应用界面接口并对应用界面进行解析,以得到待遍历元素中的各个控件。

可选地,在步骤S105中,获取构建后的应用界面中的待遍历元素,根据待遍历元素得到目标控件,具体可以包括:获取构建后的应用界面中的待遍历控件,对待遍历控件进行过滤,对过滤后的控件按照优先级进行排列得到目标控件。

其中,对待遍历控件进行过滤,具体可以包括:将小控件和不可见控件过滤掉,小控件可以为测试中用不到的控件,不可见控件可以为配置的不可见控件,例如开发人员配置的不可见控件。优先级可以根据需要而进行设定高低顺序。

步骤S107,根据操作行为和匹配规则,对目标控件依次进行遍历测试操作,可选地,还包括:判断是否遍历结束,若未遍历结束,则继续进行步骤S107,若遍历结束,则结束。

其中,若所有的应用界面均遍历结束,则表示遍历结束,若还有应用界面未遍历,则表示未遍历结束。遍历测试操作过程中,按照目标控件的优先级排序依次从高优先级到低优先级,对目标控件遍历测试完成。匹配规则可以为测试用例,测试用例可以是一组条件或变量,用来确定应用是否正确工作。

步骤S107之后,还可以包括:输出测试结果。

其中,输出测试结果,具体可以包括:输出测试的截图信息、或所有遍历过的目标控件的测试数据等。

遍历测试操作可以包括:点击(click)、滑动(scroll)、左滑动(scroll left)、上滑动(scroll up)、或下滑动(scroll down)等任意文本或非上述文本的输入操作。

综上所述,本申请实施例提供的应用功能遍历测试方法,通过在自动化测试框架上对需要测试的操作行为进行封装;将当前应用界面构建为XML文件结构;获取构建后的应用界面中的待遍历元素,根据待遍历元素得到目标控件;根据操作行为和匹配规则,对目标控件依次进行遍历测试操作,从而能够支持跨平台、全面性地对应用功能进行遍历测试,并且测试效率高。

以下为本申请的装置实施例,在装置实施例中未详尽描述的细节,可以参考上述对应的方法实施例。

图3是本申请实施例提供的应用功能遍历测试装置的框图。请参阅图3,所述应用功能遍历测试装置包括:封装模块301、构建模块303、控件获取模块305以及遍历模块307。

具体地,封装模块301,用于在自动化测试框架上对需要测试的操作行为进行封装;

构建模块303,用于将当前应用界面构建为XML文件结构;

控件获取模块305,用于获取构建后的应用界面中的待遍历元素,根据待遍历元素得到目标控件;

遍历模块307,用于根据操作行为和匹配规则,对目标控件依次进行遍历测试操作。

可选地,封装模块301包括:操作行为细化单元3010、前置操作确定单元3011、前置操作状态类型确定单元3012和操作行为封装单元3013,操作行为细化单元3010用于将需要测试的操作行为细化为每一步操作;前置操作确定单元3011用于确定每一步操作的前置操作;前置操作状态类型确定单元3012用于根据操作和操作的前置操作,确定与前置操作相对应的前置操作状态类型;操作行为封装单元3013用于根据前置操作状态类型对操作行为进行封装。

可选地,控件获取模块305还用于获取构建后的应用界面中的待遍历控件,对待遍历控件进行过滤,对过滤后的控件按照优先级进行排列得到目标控件。

可选地,操作行为细化单元3010还用于将需要测试的操作行为分解成若干基础单元;其中,把一次对应用界面的操作和与操作相对应的操作状态确定为基础单元,操作行为包括若干基础单元的组合。

前置操作确定单元3011还用于设置操作的前置操作状态,根据前置操作状态确定操作的前置操作。

前置操作状态类型确定单元3012还用于根据前置操作与操作之间的逻辑关系,确定前置操作状态类型;其中,前置操作状态类型包括前置界面与前置配置,在操作行为中的其中一个操作执行之后,才能执行其中一个操作的后一个操作时,其中一个操作视为后一个操作的前置配置,当操作行为中的其中两个或两个以上操作的前置操作为同一个时,前置操作视为两个或两个以上操作的前置界面。

操作行为封装单元3013还用于获取前置界面与前置配置之间的共性,根据共性对操作行为进行封装。

本申请还公开了一种应用功能遍历测试设备,其包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述应用功能遍历测试方法。

本申请还公开了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令用于使计算机执行上述应用功能遍历测试方法。

综上所述,本申请实施例提供的应用功能遍历测试装置、设备和存储介质,通过在自动化测试框架上对需要测试的操作行为进行封装;将当前应用界面构建为XML文件结构;获取构建后的应用界面中的待遍历元素,根据待遍历元素得到目标控件;根据操作行为和匹配规则,对目标控件依次进行遍历测试操作,从而能够支持跨平台、全面性地对应用功能进行遍历测试,并且测试效率高。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。

应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语"如果"可以被解释成为"在……时"或"当……时"或"响应于确定"。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。

应该理解的是,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

技术分类

06120114690644