CN114625658A - App稳定性测试方法、装置、设备和计算机可读存储介质 - Google Patents
App稳定性测试方法、装置、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN114625658A CN114625658A CN202210283164.4A CN202210283164A CN114625658A CN 114625658 A CN114625658 A CN 114625658A CN 202210283164 A CN202210283164 A CN 202210283164A CN 114625658 A CN114625658 A CN 114625658A
- Authority
- CN
- China
- Prior art keywords
- elements
- page
- operable
- tested
- dom tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种APP稳定性测试方法、装置、设备和计算机可读存储介质,包括:获取待测试页面,根据待测试页面生成DOM树;对DOM树进行解析处理得到待测试页面中所有的页面元素;对所有页面元素进行筛选处理,从所有页面元素中筛选出一个或多个可操作元素;对于每个可操作元素,获取可操作元素的历史测试次数,当历史测试次数大于或等于预设测试次数,对可操作元素进行标记;从所有可操作元素中剔除已标记的可操作元素,得到一个或多个目标操作元素并选择一个目标操作元素执行稳定性测试。本发明通过设置可操作的预设测试次数,能够避免页面元素出现频繁访问操作,从而提升测试覆盖率;无需通过中间服务器向终端发送指令,提高了运行速率和运行速度。
Description
技术领域
本发明属于人工智能技术领域,尤其涉及一种APP稳定性测试方法、APP稳定性测试装置、电子设备和计算机可读存储介质。
背景技术
APP(Application,应用程序)测试中的稳定性测试,是一种常规测试,指向APP发送一系列的随机事件流,由于随机事件流具有随机性,因此在稳定性测试任务中,可能存在一个地方被多次点击,而有的地方却一次也没有被点击。所以会导致想测的地方一次也没有点击,有的地方却反复点击,从而导致覆盖不全面的情况发生。
为了解决覆盖不全面的问题,现有技术通过dfs算法遍历整个DOM树达到全覆盖,但是它是按照深度遍历的顺序去遍历每一个元素节点的,因此,当遍历到一些难以控制的控件,要想操作正常异常困难,实际运行中往往是卡在这里进入到死循环,而后面的节点只有前面的节点都遍历完了才会轮到它,这样导致后面的节点无法遍历。另外,现有技术往往需要通过一个中间的服务器向手机发送指令,从而降低了运行速率。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供了一种APP稳定性测试方法、APP稳定性测试装置、电子设备和计算机可读存储介质,不但能够提升测试覆盖率,而且还能保证运行速度。
第一方面,本发明实施例提供了一种APP稳定性测试方法,包括:获取待测试页面,并根据所述待测试页面生成DOM树,其中,所述DOM树的节点信息对应为所述待测试页面的页面元素;对所述DOM树进行解析处理,得到所述待测试页面中所有的所述页面元素;对所有所述页面元素进行筛选处理,从所有所述页面元素中筛选出一个或多个可操作元素;对于每个所述可操作元素,获取所述可操作元素的历史测试次数,当所述历史测试次数大于或等于预设测试次数时,则对所述可操作元素进行标记;从所有所述可操作元素中剔除已标记的可操作元素,得到一个或多个目标操作元素,并选择一个所述目标操作元素执行稳定性测试。
根据本发明实施例的APP稳定性测试方法,至少具有如下有益效果:获取待测试页面,并根据所述待测试页面生成DOM树,其中,所述DOM树的节点信息对应为所述待测试页面的页面元素;对所述DOM树进行解析处理,得到所述待测试页面中所有的所述页面元素;对所有所述页面元素进行筛选处理,从所有所述页面元素中筛选出一个或多个可操作元素;对于每个所述可操作元素,获取所述可操作元素的历史测试次数,当所述历史测试次数大于或等于预设测试次数时,则对所述可操作元素进行标记;从所有所述可操作元素中剔除已标记的可操作元素,得到一个或多个目标操作元素,并选择一个所述目标操作元素执行稳定性测试。根据本发明实施例的技术方案,首先,通过给页面元素设置可操作的预设测试次数,能够避免页面元素只能访问一次,设置后可以多次访问操作,同时又避免了频繁访问操作,从而能够提升测试覆盖率;其次,本发明实施例无需通过中间服务器向终端发送指令,提高了运行速率,保证了运行速度。
在一些实施例中,所述根据所述待测试页面生成DOM树,包括:获取与所述待测试页面对应的XML布局文件;基于字节流对所述XML布局文件进行解释处理,得到DOM树。
在一些实施例中,所述DOM树包括有多级节点,其中,上一级节点对应若干个下一级节点;所述对所述DOM树进行解析处理,得到所述待测试页面中所有的所述页面元素,包括:获取所述DOM树中所有最下级节点的节点信息;将所有最下级节点的节点信息作为所述待测试页面中所有的所述页面元素。
在一些实施例中,所述对所有所述页面元素进行筛选处理,从所有所述页面元素中筛选出一个或多个可操作元素,包括:从所有所述页面元素中剔除纯样式UI元素,并将剔除后剩余的所述页面元素作为可操作元素。
在一些实施例中,所述选择一个所述目标操作元素执行稳定性测试,包括如下之一:从所有所述目标操作元素中选择历史测试次数最少的目标操作元素执行稳定性测试;从所有所述目标操作元素中随机选择一个所述目标操作元素执行稳定性测试。
在一些实施例中,在所述选择一个所述目标操作元素执行稳定性测试之后,所述方法还包括:对所述目标操作元素的历史测试次数进行加一处理。
在一些实施例中,当所述目标操作元素为列表元素,其中,所述列表元素中包括多个样式结构一致的项目;所述对所述目标操作元素的历史测试次数进行加一处理,包括:在对所述列表元素中的任意一个所述项目执行稳定性测试后,对所述列表元素的历史测试次数进行加一处理。
在一些实施例中,一个所述可操作元素对应一个所述预设测试次数。
第二方面,本发明实施例还提供了一种APP稳定性测试装置,包括:DOM树生成单元,用于获取待测试页面,并根据所述待测试页面生成DOM树,其中,所述DOM树的节点信息对应为所述待测试页面的页面元素;DOM树解析单元,用于对所述DOM树进行解析处理,得到所述待测试页面中所有的所述页面元素;筛选单元,用于对所有所述页面元素进行筛选处理,从所有所述页面元素中筛选出一个或多个可操作元素;标记单元,用于对于每个所述可操作元素,获取所述可操作元素的历史测试次数,当所述历史测试次数大于或等于预设测试次数时,则对所述可操作元素进行标记;剔除单元,用于从所有所述可操作元素中剔除已标记的可操作元素,得到一个或多个目标操作元素;测试单元,用于选择一个所述目标操作元素执行稳定性测试。
根据本发明实施例的APP稳定性测试装置,至少具有如下有益效果:本发明实施例的APP稳定性测试装置对应于上述第一方面的APP稳定性测试方法,其中,APP稳定性测试方法包括如下步骤:获取待测试页面,并根据所述待测试页面生成DOM树,其中,所述DOM树的节点信息对应为所述待测试页面的页面元素;对所述DOM树进行解析处理,得到所述待测试页面中所有的所述页面元素;对所有所述页面元素进行筛选处理,从所有所述页面元素中筛选出一个或多个可操作元素;对于每个所述可操作元素,获取所述可操作元素的历史测试次数,当所述历史测试次数大于或等于预设测试次数时,则对所述可操作元素进行标记;从所有所述可操作元素中剔除已标记的可操作元素,得到一个或多个目标操作元素,并选择一个所述目标操作元素执行稳定性测试。根据本发明实施例的技术方案,首先,通过给页面元素设置可操作的预设测试次数,能够避免页面元素只能访问一次,设置后可以多次访问操作,同时又避免了频繁访问操作,从而能够提升测试覆盖率;其次,本发明实施例无需通过中间服务器向终端发送指令,提高了运行速率,保证了运行速度。
第三方面,本发明实施例还提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的APP稳定性测试方法。
根据本发明实施例的电子设备,至少具有如下有益效果:本发明实施例的电子设备能够执行上述第一方面的APP稳定性测试方法,其中,APP稳定性测试方法包括如下步骤:获取待测试页面,并根据所述待测试页面生成DOM树,其中,所述DOM树的节点信息对应为所述待测试页面的页面元素;对所述DOM树进行解析处理,得到所述待测试页面中所有的所述页面元素;对所有所述页面元素进行筛选处理,从所有所述页面元素中筛选出一个或多个可操作元素;对于每个所述可操作元素,获取所述可操作元素的历史测试次数,当所述历史测试次数大于或等于预设测试次数时,则对所述可操作元素进行标记;从所有所述可操作元素中剔除已标记的可操作元素,得到一个或多个目标操作元素,并选择一个所述目标操作元素执行稳定性测试。根据本发明实施例的技术方案,首先,通过给页面元素设置可操作的预设测试次数,能够避免页面元素只能访问一次,设置后可以多次访问操作,同时又避免了频繁访问操作,从而能够提升测试覆盖率;其次,本发明实施例无需通过中间服务器向终端发送指令,提高了运行速率,保证了运行速度。
第四方面,本发明实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上述第一方面所述的APP稳定性测试方法。
根据本发明实施例的计算机可读存储介质,至少具有如下有益效果:本发明实施例的计算机可读存储介质能够执行上述第一方面的APP稳定性测试方法,其中,APP稳定性测试方法包括如下步骤:获取待测试页面,并根据所述待测试页面生成DOM树,其中,所述DOM树的节点信息对应为所述待测试页面的页面元素;对所述DOM树进行解析处理,得到所述待测试页面中所有的所述页面元素;对所有所述页面元素进行筛选处理,从所有所述页面元素中筛选出一个或多个可操作元素;对于每个所述可操作元素,获取所述可操作元素的历史测试次数,当所述历史测试次数大于或等于预设测试次数时,则对所述可操作元素进行标记;从所有所述可操作元素中剔除已标记的可操作元素,得到一个或多个目标操作元素,并选择一个所述目标操作元素执行稳定性测试。根据本发明实施例的技术方案,首先,通过给页面元素设置可操作的预设测试次数,能够避免页面元素只能访问一次,设置后可以多次访问操作,同时又避免了频繁访问操作,从而能够提升测试覆盖率;其次,本发明实施例无需通过中间服务器向终端发送指令,提高了运行速率,保证了运行速度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是本发明一个实施例提供的APP稳定性测试方法的流程图;
图2是本发明另一个实施例提供的APP稳定性测试方法的流程图;
图3是本发明另一个实施例提供的APP稳定性测试方法的流程图;
图4是本发明另一个实施例提供的APP稳定性测试方法的流程图;
图5是本发明另一个实施例提供的APP稳定性测试方法的流程图;
图6是本发明另一个实施例提供的APP稳定性测试方法的流程图;
图7是本发明另一个实施例提供的APP稳定性测试方法的流程图;
图8是本发明另一个实施例提供的APP稳定性测试方法的流程图;
图9是本发明一个实施例提供的待测试页面的界面图;
图10是图9中所示待测试页面所对应的DOM树的结构示意图;
图11是本发明一个实施例提供的APP稳定性测试装置的结构示意图;
图12是本发明一个实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
首先,对本发明中涉及的若干名词进行解析:
人工智能(artificial intelligence,AI):是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学;人工智能是计算机科学的一个分支,人工智能企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能可以对人的意识、思维的信息过程的模拟。人工智能还是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
自然语言处理(natural language processing,NLP):NLP用计算机来处理、理解以及运用人类语言(如中文、英文等),NLP属于人工智能的一个分支,是计算机科学与语言学的交叉学科,又常被称为计算语言学。自然语言处理包括语法分析、语义分析、篇章理解等。自然语言处理常用于机器翻译、手写体和印刷体字符识别、语音识别及文语转换、信息检索、信息抽取与过滤、文本分类与聚类、舆情分析和观点挖掘等技术领域,它涉及与语言处理相关的数据挖掘、机器学习、知识获取、知识工程、人工智能研究和与语言计算相关的语言学研究等。
信息抽取(Information Extraction,NER):从自然语言文本中抽取指定类型的实体、关系、事件等事实信息,并形成结构化数据输出的文本处理技术。信息抽取是从文本数据中抽取特定信息的一种技术。文本数据是由一些具体的单位构成的,例如句子、段落、篇章,文本信息正是由一些小的具体的单位构成的,例如字、词、词组、句子、段落或是这些具体的单位的组合。抽取文本数据中的名词短语、人名、地名等都是文本信息抽取,当然,文本信息抽取技术所抽取的信息可以是各种类型的信息。
应用程序(Application,APP):手机软件,主要指安装在智能手机上的软件,完善原始系统的不足与个性化。使手机完善其功能,为用户提供更丰富的使用体验的主要手段。手机软件的运行需要有相应的手机系统,主要的手机系统:苹果公司的iOS、谷歌公司的Android(安卓)系统、塞班平台和微软平台。随着智能手机的普及,人们在沟通、社交、娱乐等活动中越来越依赖于手机APP软件。手机软件是通过分析,设计,编码,生成软件,而手机软件是一种特殊的软件。根据手机APP安装来源不同,又可分为手机预装软件和用户自己安装的第三方应用软件。手机预装软件一般指手机出厂自带、或第三方刷机渠道预装到消费者手机当中、且消费者无法自行删除的应用或软件。除了手机预装软件之外,还有用户从手机应用市场自己下载安装的第三方手机APP。
DOM(Document Object Model,文档对象模型)树:是W3C制定的标准接口规范,是一种处理HTML和XML文件的标准API。DOM提供了对整个文档的访问模型,将文档作为一个树形结构,树的每个结点表示了一个HTML标签或标签内的文本项。DOM树结构精确地描述了HTML文档中标签间的相互关联性。将HTML或XML文档转化为DOM树的过程称为解析。HTML文档被解析后,转化为DOM树,因此对HTML文档的处理可以通过对DOM树的操作实现。DOM模型不仅描述了文档的结构,还定义了结点对象的行为,利用对象的方法和属性,可以方便地访问、修改、添加和删除DOM树的结点和内容。DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTML或可扩展标记语言(XML)文档的常用方法。有一点很重要,DOM的设计是以对象管理组织(OMG)的规约为基础的,因此可以用于任何编程语言。最初人们把它认为是一种让JavaScript在浏览器间可移植的方法,不过DOM的应用已经远远超出这个范围。DOM技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等,DOM技术使得页面的交互性大大地增强。DOM实际上是以面向对象方式描述的文档模型。DOM定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。可以把DOM认为是页面上数据和结构的一个树形表示,不过页面当然可能并不是以这种树的方式具体实现。
dfs算法,又称深度优先搜索,是计算机术语。dfs算法是一种在开发爬虫早期使用较多的方法,是搜索算法的一种。dfs算法的目的是要达到被搜索结构的叶结点,即那些不包含任何超链的HTML文件。dfs算法根据已有的邻接矩阵或邻接表用递归方法编写深度优先搜索遍历算法,并输出遍历结果。
遍历(Traversal),是指沿着某条搜索路线,依次对树(或图)中每个节点均做一次访问。访问结点所做的操作依赖于具体的应用问题,具体的访问操作可能是检查节点的值、更新节点的值等。不同的遍历方式,其访问节点的顺序是不一样的。遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。当然遍历的概念也适合于多元素集合的情况,如数组。
目前,APP测试中的稳定性测试是一种常规测试,指向APP发送一系列的随机事件流,由于随机事件流具有随机性,因此在稳定性测试任务中,可能存在一个地方被多次点击,而有的地方却一次也没有被点击。所以会导致想测的地方一次也没有点击,有的地方却反复点击,从而导致覆盖不全面的情况发生。为了解决覆盖不全面的问题,现有技术通过dfs算法遍历整个DOM树达到全覆盖,但是它是按照深度遍历的顺序去遍历每一个元素节点的,因此,当遍历到一些难以控制的控件,要想操作正常异常困难,实际运行中往往是卡在这里进入到死循环,而后面的节点只有前面的节点都遍历完了才会轮到它,这样导致后面的节点无法遍历。另外,现有技术往往需要通过一个中间的服务器向手机发送指令,从而降低了运行速率。
基于此,本发明实施例提供了一种APP稳定性测试方法、APP稳定性测试装置、电子设备和计算机可读存储介质,获取待测试页面,并根据待测试页面生成DOM树,其中,DOM树的节点信息对应为待测试页面的页面元素;对DOM树进行解析处理,得到待测试页面中所有的页面元素;对所有页面元素进行筛选处理,从所有页面元素中筛选出一个或多个可操作元素;对于每个可操作元素,获取可操作元素的历史测试次数,当历史测试次数大于或等于预设测试次数时,则对可操作元素进行标记;从所有可操作元素中剔除已标记的可操作元素,得到一个或多个目标操作元素,并选择一个目标操作元素执行稳定性测试。根据本发明实施例的技术方案,首先,通过给页面元素设置可操作的预设测试次数,能够避免页面元素只能访问一次,设置后可以多次访问操作,同时又避免了频繁访问操作,从而能够提升测试覆盖率;其次,本发明实施例无需通过中间服务器向终端发送指令,提高了运行速率,保证了运行速度。
本发明实施例提供的APP稳定性测试方法、装置、电子设备及存储介质,具体通过如下实施例进行说明,首先描述本发明实施例中的APP稳定性测试方法。
本发明实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本发明实施例提供的APP稳定性测试方法,涉及人工智能及数字医疗技术领域。本发明实施例提供的APP稳定性测试方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现APP稳定性测试方法的应用等,但并不局限于以上形式。
本发明可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
如图1所示,图1是本发明一个实施例提供的APP稳定性测试方法的流程图;本发明实施例的APP稳定性测试方法可以包括但不限于包括步骤S110、步骤S120、步骤S130、步骤S140和步骤S150。
步骤S110、获取待测试页面,并根据待测试页面生成DOM树,其中,DOM树的节点信息对应为待测试页面的页面元素;
步骤S120、对DOM树进行解析处理,得到待测试页面中所有的页面元素;
步骤S130、对所有页面元素进行筛选处理,从所有页面元素中筛选出一个或多个可操作元素;
步骤S140、对于每个可操作元素,获取可操作元素的历史测试次数,当历史测试次数大于或等于预设测试次数时,则对可操作元素进行标记;
步骤S150、从所有可操作元素中剔除已标记的可操作元素,得到一个或多个目标操作元素,并选择一个目标操作元素执行稳定性测试。
具体地,当进行APP稳定性测试时,首先会获取待测试页面,分析待测试页面并根据待测试页面生成对应的DOM树,其中,DOM树的节点信息对应为待测试页面的页面元素;接着,由于DOM树的节点信息包含了待测试页面的页面元素,因此本发明实施例会对DOM树进行解析处理,得到待测试页面中所有的页面元素;然后,由于待测试页面中所有的页面元素包括有可操作元素以及不可操作元素,因此,本发明实施例还需要对所有页面元素进行筛选处理,从所有页面元素中筛选出一个或多个可操作元素;接着,为了避免可操作元素出现频繁访问的情况,本发明实施例还会对于每个可操作元素,获取可操作元素的历史测试次数,当历史测试次数大于或等于预设测试次数时,则对可操作元素进行标记;最后,本发明实施例会从所有可操作元素中剔除已标记的可操作元素,得到一个或多个目标操作元素,并选择一个目标操作元素执行稳定性测试。
根据本发明实施例的技术方案,首先,通过给页面元素设置可操作的预设测试次数,能够避免页面元素只能访问一次,设置后可以多次访问操作,同时又避免了频繁访问操作,从而能够提升测试覆盖率;其次,本发明实施例无需通过中间服务器向终端发送指令,提高了运行速率,保证了运行速度。
需要说明的是,所有可操作元素的预设测试次数可以为一致,也可以是每个可操作元素对应一个预设测试次数。
另外,如图2所示,图2是本发明另一个实施例提供的APP稳定性测试方法的流程图;关于上述步骤S110中的根据待测试页面生成DOM树,可以包括但不限于包括步骤S210和步骤S220。
步骤S210、获取与待测试页面对应的XML布局文件;
步骤S220、基于字节流对XML布局文件进行解释处理,得到DOM树。
具体地,XML DOM文档可以视为一棵节点树,可通过这棵树访问所有节点,可以修改或删除它们的内容,也可以创建新的元素。节点树展示了节点的集合,以及它们之间的联系。
节点树中的节点彼此之间都有等级关系。其中,可以用父、子和同级节点用于描述这种关系。父节点拥有子节点,位于相同层级上的子节点称为同级节点。具体地,在节点树中,顶端的节点成为根节点,根节点之外的每个节点都有一个父节点,节点可以有任何数量的子节点,叶子是没有子节点的节点,同级节点是拥有相同父节点的节点。
需要说明的是,因为XML数据是按照树的形式进行构造的,所以可以在不了解树的确切结构且不了解其中包含的数据类型的情况下,对其进行遍历。
另外,如图3所示,图3是本发明另一个实施例提供的APP稳定性测试方法的流程图;DOM树包括有多级节点,其中,上一级节点对应若干个下一级节点;关于上述步骤S120,可以包括但不限于包括步骤S310和步骤S320。
步骤S310、获取DOM树中所有最下级节点的节点信息;
步骤S320、将所有最下级节点的节点信息作为待测试页面中所有的页面元素。
具体地,DOM树中的最下级节点即是DOM树中的叶子节点,DOM树中的叶子节点没有子节点,叶子节点中的节点信息即为待测试页面中所有的页面元素;因此,本发明实施例会获取DOM树中所有最下级节点的节点信息,并将所有最下级节点的节点信息作为待测试页面中所有的页面元素。
另外,如图4所示,图4是本发明另一个实施例提供的APP稳定性测试方法的流程图;关于上述步骤S130,可以包括但不限于包括步骤S400。
步骤S400、从所有页面元素中剔除纯样式UI元素,并将剔除后剩余的页面元素作为可操作元素。
具体地,由于本发明实施例的APP稳定性测试方法需要对页面元素进行操作,因此,所测试的页面元素应该是可操作的,对此,本发明实施例会从所有页面元素中剔除不可操作元素,如纯样式UI元素,并将剔除后剩余的页面元素作为可操作元素。
另外,如图5和图6所示,图5是本发明另一个实施例提供的APP稳定性测试方法的流程图,图6是本发明另一个实施例提供的APP稳定性测试方法的流程图;关于上述步骤S150中的选择一个目标操作元素执行稳定性测试,可以包括但不限于包括步骤S500或者步骤S600。
步骤S500、从所有目标操作元素中选择历史测试次数最少的目标操作元素执行稳定性测试。
具体地,为了提升测试覆盖率,使得历史测试次数较少的目标操作元素能够被更多地测试,因此,本发明实施例会从所有目标操作元素中选择历史测试次数最少的目标操作元素执行稳定性测试。
步骤S600、从所有目标操作元素中随机选择一个目标操作元素执行稳定性测试。
具体地,本发明实施例还可以通过随机挑选的方式,从所有目标操作元素中随机选择一个目标操作元素执行稳定性测试。
另外,如图7所示,图7是本发明另一个实施例提供的APP稳定性测试方法的流程图;在上述步骤S150之后,本发明实施例还可以包括但不限于包括步骤S700。
步骤S700、对目标操作元素的历史测试次数进行加一处理。
具体地,当测试完目标操作元素之后,为了方便后续测试,本发明实施例还会对目标操作元素的历史测试次数进行加一处理。
另外,如图8所示,图8是本发明另一个实施例提供的APP稳定性测试方法的流程图;当目标操作元素为列表元素,其中,列表元素中包括多个样式结构一致的项目;关于上述步骤S700,可以包括但不限于包括步骤S800。
步骤S800、在对列表元素中的任意一个项目执行稳定性测试后,对列表元素的历史测试次数进行加一处理。
具体地,对一些列表元素,其样式结构基本是一样的,对于这类列表元素,本发明实施例可以将其看成一个整体,操作了其中一个项目,整体被操作的次数就会加一处理。当整体操作次数大于阈值,则整个列表元素标记为不可操作。
基于上述图1至图8的实施例,提出本发明实施例的整体方案,具体如下:
如图9和图10所示,图9是本发明一个实施例提供的待测试页面的界面图;图10是图9中所示待测试页面所对应的DOM树的结构示意图。
首先,先对树中的页面元素进行一轮筛选,根据页面元素的一些属性,剔除不能操作的页面元素,如一些纯样式的UI页面元素、无法操作的页面元素。
然后,设置每一个页面元素总共可操作的次数,当某个页面元素操作的次数达到这个阈值的时候,标记这个页面元素不能再访问。
接着,再剔除标记为不能再访问的页面元素,所剩下的页面元素可以参照图10中的阴影部分的节点所对应的元素。
接着,最后在剩下的页面元素里随机选择一个页面元素去操作,操作完后,将这个页面元素访问次数加一。
具体地,本发明实施例给页面元素设置可操作次数的作用在于,避免这个页面元素只能访问一次,设置后可以多次操作,但又避免了频繁操作。
本发明实施例通过一种标记元素的方式,让稳定性测试中尽量访问那些未被访问的节点,从而来提升覆盖率。同时,通过设置阈值的方式,来阻断一些死循环,如列表数据很多的时候,一直在不同的项目之间跳转,导致很长时间在做一些无效测试。
请参阅图11,本发明实施例还提供一种APP稳定性测试装置,可以实现上述APP稳定性测试方法,该APP稳定性测试装置900包括:
DOM树生成单元910,用于获取待测试页面,并根据待测试页面生成DOM树,其中,DOM树的节点信息对应为待测试页面的页面元素;
DOM树解析单元920,用于对DOM树进行解析处理,得到待测试页面中所有的页面元素;
筛选单元930,用于对所有页面元素进行筛选处理,从所有页面元素中筛选出一个或多个可操作元素;
标记单元940,用于对于每个可操作元素,获取可操作元素的历史测试次数,当历史测试次数大于或等于预设测试次数时,则对可操作元素进行标记;
剔除单元950,用于从所有可操作元素中剔除已标记的可操作元素,得到一个或多个目标操作元素;
测试单元960,用于选择一个目标操作元素执行稳定性测试。
该APP稳定性测试装置的具体实施方式与上述APP稳定性测试方法的具体实施例基本相同,在此不再赘述。
本发明实施例还提供了一种电子设备,电子设备包括:存储器、处理器、存储在存储器上并可在处理器上运行的程序以及用于实现处理器和存储器之间的连接通信的数据总线,程序被处理器执行时实现上述APP稳定性测试方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
请参阅图12,图12示意了另一实施例的电子设备的硬件结构,电子设备包括:
处理器1010,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本发明实施例所提供的技术方案;
存储器1020,可以采用只读存储器(ReadOnlyMemory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行本发明实施例的APP稳定性测试方法;
输入/输出接口1030,用于实现信息输入及输出;
通信接口1040,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;和
总线1050,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息;
其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
本发明实施例还提供了一种存储介质,存储介质为计算机可读存储介质,用于计算机可读存储,存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述APP稳定性测试方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明实施例描述的实施例是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图1-8中示出的技术方案并不构成对本发明实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本发明的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本发明中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本发明实施例的优选实施例,并非因此局限本发明实施例的权利范围。本领域技术人员不脱离本发明实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本发明实施例的权利范围之内。
Claims (11)
1.一种APP稳定性测试方法,其特征在于,包括:
获取待测试页面,并根据所述待测试页面生成DOM树,其中,所述DOM树的节点信息对应为所述待测试页面的页面元素;
对所述DOM树进行解析处理,得到所述待测试页面中所有的所述页面元素;
对所有所述页面元素进行筛选处理,从所有所述页面元素中筛选出一个或多个可操作元素;
对于每个所述可操作元素,获取所述可操作元素的历史测试次数,当所述历史测试次数大于或等于预设测试次数时,则对所述可操作元素进行标记;
从所有所述可操作元素中剔除已标记的可操作元素,得到一个或多个目标操作元素,并选择一个所述目标操作元素执行稳定性测试。
2.根据权利要求1所述的APP稳定性测试方法,其特征在于,所述根据所述待测试页面生成DOM树,包括:
获取与所述待测试页面对应的XML布局文件;
基于字节流对所述XML布局文件进行解释处理,得到DOM树。
3.根据权利要求1所述的APP稳定性测试方法,其特征在于,所述DOM树包括有多级节点,其中,上一级节点对应若干个下一级节点;所述对所述DOM树进行解析处理,得到所述待测试页面中所有的所述页面元素,包括:
获取所述DOM树中所有最下级节点的节点信息;
将所有最下级节点的节点信息作为所述待测试页面中所有的所述页面元素。
4.根据权利要求1所述的APP稳定性测试方法,其特征在于,所述对所有所述页面元素进行筛选处理,从所有所述页面元素中筛选出一个或多个可操作元素,包括:
从所有所述页面元素中剔除纯样式UI元素,并将剔除后剩余的所述页面元素作为可操作元素。
5.根据权利要求1所述的APP稳定性测试方法,其特征在于,所述选择一个所述目标操作元素执行稳定性测试,包括如下之一:
从所有所述目标操作元素中选择历史测试次数最少的目标操作元素执行稳定性测试;
从所有所述目标操作元素中随机选择一个所述目标操作元素执行稳定性测试。
6.根据权利要求1所述的APP稳定性测试方法,其特征在于,在所述选择一个所述目标操作元素执行稳定性测试之后,所述方法还包括:
对所述目标操作元素的历史测试次数进行加一处理。
7.根据权利要求6所述的APP稳定性测试方法,其特征在于,当所述目标操作元素为列表元素,其中,所述列表元素中包括多个样式结构一致的项目;所述对所述目标操作元素的历史测试次数进行加一处理,包括:
在对所述列表元素中的任意一个所述项目执行稳定性测试后,对所述列表元素的历史测试次数进行加一处理。
8.根据权利要求1所述的APP稳定性测试方法,其特征在于,一个所述可操作元素对应一个所述预设测试次数。
9.一种APP稳定性测试装置,其特征在于,包括:
DOM树生成单元,用于获取待测试页面,并根据所述待测试页面生成DOM树,其中,所述DOM树的节点信息对应为所述待测试页面的页面元素;
DOM树解析单元,用于对所述DOM树进行解析处理,得到所述待测试页面中所有的所述页面元素;
筛选单元,用于对所有所述页面元素进行筛选处理,从所有所述页面元素中筛选出一个或多个可操作元素;
标记单元,用于对于每个所述可操作元素,获取所述可操作元素的历史测试次数,当所述历史测试次数大于或等于预设测试次数时,则对所述可操作元素进行标记;
剔除单元,用于从所有所述可操作元素中剔除已标记的可操作元素,得到一个或多个目标操作元素;
测试单元,用于选择一个所述目标操作元素执行稳定性测试。
10.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至8中任意一项所述的APP稳定性测试方法。
11.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1至8中任意一项所述的APP稳定性测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210283164.4A CN114625658A (zh) | 2022-03-22 | 2022-03-22 | App稳定性测试方法、装置、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210283164.4A CN114625658A (zh) | 2022-03-22 | 2022-03-22 | App稳定性测试方法、装置、设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114625658A true CN114625658A (zh) | 2022-06-14 |
Family
ID=81904083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210283164.4A Pending CN114625658A (zh) | 2022-03-22 | 2022-03-22 | App稳定性测试方法、装置、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114625658A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349178A (zh) * | 2023-10-30 | 2024-01-05 | 新华三科技服务有限公司 | 用户页面测试方法及装置 |
-
2022
- 2022-03-22 CN CN202210283164.4A patent/CN114625658A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349178A (zh) * | 2023-10-30 | 2024-01-05 | 新华三科技服务有限公司 | 用户页面测试方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6653334B2 (ja) | 情報抽出方法及び装置 | |
CN109033282B (zh) | 一种基于抽取模板的网页正文抽取方法及装置 | |
CN112749284A (zh) | 知识图谱构建方法、装置、设备及存储介质 | |
CN111339250A (zh) | 新类别标签的挖掘方法及电子设备、计算机可读介质 | |
CN114238571A (zh) | 模型的训练方法、知识分类方法、装置、设备、介质 | |
WO2023155303A1 (zh) | 网页数据的提取方法和装置、计算机设备、存储介质 | |
CN114240552A (zh) | 基于深度聚类算法的产品推荐方法、装置、设备及介质 | |
CN111597788A (zh) | 基于实体对齐的属性融合方法、装置、设备及存储介质 | |
CN115640394A (zh) | 文本分类方法、文本分类装置、计算机设备及存储介质 | |
CN114398138A (zh) | 界面生成方法、装置、计算机设备和存储介质 | |
CN114625658A (zh) | App稳定性测试方法、装置、设备和计算机可读存储介质 | |
CN111061975B (zh) | 一种页面中无关内容的处理方法、装置 | |
CN112926341A (zh) | 文本数据处理方法、装置 | |
CN110457603B (zh) | 用户关系抽取方法、装置、电子设备及可读存储介质 | |
CN116701604A (zh) | 问答语料库的构建方法和装置、问答方法、设备及介质 | |
CN114580533A (zh) | 特征提取模型的训练方法、装置、设备、介质及程序产品 | |
CN115145980A (zh) | 对话回复生成方法和装置、电子设备及存储介质 | |
CN114996458A (zh) | 文本处理方法和装置、设备、介质 | |
CN115270746A (zh) | 问题样本生成方法和装置、电子设备及存储介质 | |
CN115292180A (zh) | 代码分析方法、代码分析装置、电子设备及存储介质 | |
CN114816422A (zh) | 转换plsql代码的方法、装置、电子设备及存储介质 | |
CN114117242A (zh) | 数据查询方法和装置、计算机设备、存储介质 | |
CN113806667A (zh) | 一种支持网页分类的方法和系统 | |
CN115034318B (zh) | 标题判别模型的生成方法和装置、设备、介质 | |
CN116702781A (zh) | 文本数据增强方法和装置、电子设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |