CN114968687A - 遍历测试方法、装置、电子设备、程序产品以及存储介质 - Google Patents
遍历测试方法、装置、电子设备、程序产品以及存储介质 Download PDFInfo
- Publication number
- CN114968687A CN114968687A CN202210650379.5A CN202210650379A CN114968687A CN 114968687 A CN114968687 A CN 114968687A CN 202210650379 A CN202210650379 A CN 202210650379A CN 114968687 A CN114968687 A CN 114968687A
- Authority
- CN
- China
- Prior art keywords
- page
- control element
- traversal
- state
- page control
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 276
- 238000003860 storage Methods 0.000 title claims abstract description 33
- 238000000034 method Methods 0.000 claims abstract description 108
- 230000008569 process Effects 0.000 claims abstract description 88
- 230000010365 information processing Effects 0.000 claims description 34
- 238000013507 mapping Methods 0.000 claims description 31
- 230000001960 triggered effect Effects 0.000 claims description 24
- 230000002452 interceptive effect Effects 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 9
- 238000010998 test method Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 8
- 125000004122 cyclic group Chemical group 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 18
- 230000000694 effects Effects 0.000 description 16
- 230000009471 action Effects 0.000 description 11
- 238000011161 development Methods 0.000 description 8
- 230000002159 abnormal effect Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- IJGRMHOSHXDMSA-UHFFFAOYSA-N Atomic nitrogen Chemical compound N#N IJGRMHOSHXDMSA-UHFFFAOYSA-N 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 241000282693 Cercopithecidae Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052757 nitrogen Inorganic materials 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000012430 stability testing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种遍历测试方法,包括:触发遍历测试进程,响应于遍历测试进程,获取遍历测试进程对应的第一页面;提取第一页面中的所有可操作的第一页面控件元素;对第一页面控件元素的状态进行检测,当确定所述第一页面控件元素的状态为无可选操作状态时,从所述第一页面调整至第二页面;提取所述第二页面中的所有可操作的第二页面控件元素;对所述第二页面控件元素的状态进行检测,当确定所述第二页面控件元素的状态为无可选操作状态时,迭代对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历,得到遍历测试结果。本发明还提供了遍历测试装置、电子设备、程序产品以及存储介质。本发明能够提升遍历测试的效率和覆盖度。
Description
技术领域
本发明涉及遍历测试技术,尤其涉及遍历测试方法、装置、电子设备、程序产品以及存储介质。
背景技术
目前常用的测试方式包括人工测试和自动化遍历测试。人工测试是采用人工的方式对被测应用的每一个界面进行遍历测试,极大的消耗人力,并且效率低下,容易漏测容易出错。自动化遍历测试主要有两种,第一种是自动遍历的方式,常用的是android提供的monkey工具,这种遍历方法是随机遍历点击,无需人工干预,但是这种可控性差,遍历有效性和覆盖度都无法保证。第二种采用预置的点击策略进行,首先获取当前窗口中所有的组件,然后编写自动化脚本进行遍历点击,由于页面的复杂性,无论哪一种遍历测试的方式,很容易在遍历过程中陷入局部循环当中,当重新回到某个全部动作都已访问的节点,不会对已访问的动作再次访问,会丢失路径中未访问过的动作,过早的结束遍历测试,无法保证遍历测试的覆盖率,同时由于大量重复点击,导致测试效率低下,严重影响了测试效率与测试的准确性。
发明内容
有鉴于此,本发明实施例提供一种遍历测试方法、装置、电子设备、程序产品以及存储介质,能够自动适配不同的遍历测试环境,同时提升遍历测试的测试效率以及覆盖率,减少人工测试的成本,提升测试的准确性。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种遍历测试方法,包括:
触发遍历测试进程,响应于所述遍历测试进程,获取遍历测试进程对应的第一页面;
提取所述第一页面中的所有可操作的第一页面控件元素;
对所述第一页面控件元素的状态进行检测,当确定所述第一页面控件元素的状态为无可选操作状态时,从所述第一页面调整至第二页面,其中,所述第一页面和所述第二页面为待测试程序中的两个独立页面;
提取所述第二页面中的所有可操作的第二页面控件元素;
对所述第二页面控件元素的状态进行检测,当确定所述第二页面控件元素的状态为无可选操作状态时,迭代对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历。
本发明实施例还提供了一种遍历测试装置,所述装置包括:
信息传输模块,用于触发遍历测试进程,响应于所述遍历测试进程,获取遍历测试进程对应的第一页面;
信息处理模块,用于提取所述第一页面中的所有可操作的第一页面控件元素;
所述信息处理模块,用于对所述第一页面控件元素的状态进行检测,当确定所述第一页面控件元素的状态为无可选操作状态时,从所述第一页面调整至第二页面,其中,所述第一页面和所述第二页面为待测试程序中的两个独立页面;
所述信息处理模块,用于提取所述第二页面中的所有可操作的第二页面控件元素;
所述信息处理模块,用于对所述第二页面控件元素的状态进行检测,当确定所述第二页面控件元素的状态为无可选操作状态时,迭代对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历。
上述方案中,
所述信息处理模块,用于对所述第一页面控件元素的状态进行检测;
所述信息处理模块,用于当确定所述第一页面控件元素的状态为存在可选操作状态时,根据所述第一页面控件元素,执行与所述第一页面控件元素相匹配的操作,其中,所述与所述第一页面控件元素相匹配的操作包括至少以下之一:
点击、长按、滑动、输入、双击。
上述方案中,
所述信息处理模块,用于当确定所述第二页面控件元素的状态为无可选操作状态时,获取所述第二页面控件元素中所有的已经触发过的事件;
所述信息处理模块,用于在所述所有的已经触发过的事件中随机选择一个已经触发过的事件,并且确定与所选择的一个已经触发过的事件对应的页面控件元素;
所述信息处理模块,用于执行与所述页面控件元素相匹配的操作,并记录与所选择的一个已经触发过的事件对应的页面状态信息和操作对象信息;
所述信息处理模块,用于当所述页面状态信息和操作对象信息形成事件环路时,对所述事件环路进行动态裁剪;
所述信息处理模块,用于根据动态裁剪的结果,对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历。
上述方案中,
所述信息处理模块,用于当随机选择一个已经触发过的事件时,为所述遍历测试进程配置全局标记控件元素;
所述信息处理模块,用于通过所述全局标记控件调整访问需求变量,其中,所述访问需求变量用于表征任一页面中的页面控件元素是否完成遍历。
上述方案中,
所述信息处理模块,用于根据所述页面控件元素、与所述页面控件元素相匹配的操作以及调整后的页面信息,建立调整映射关系,以实现获取任一页面信息时,通过所述调整映射关系查找相对应的页面控件元素和与所述页面控件元素相匹配的操作;
所述信息处理模块,用于当迭代对所述第二页面进行调整时,利用所述调整映射关系,对所述遍历测试进程中的任一页面进行检测,得到所述任一页面的检测结果;
所述信息处理模块,用于当根据所述任一页面的检测结果,确定所述任一页面位于所述调整映射关系中时,对所述事件环路进行动态裁剪以实现将所述遍历测试进程的有向有环图裁剪为多叉树的结构图;
所述信息处理模块,用于当根据所述任一页面的检测结果,确定所述任一页面不存在于所述调整映射关系中时,对所述调整映射关系进行修改。
上述方案中,
所述信息处理模块,用于对所述第二页面控件元素的状态进行检测;
所述信息处理模块,用于当确定所述第二页面控件元素的状态为存在可选操作状态时,随机选择所述第二页面控件元素中任意一个未点击过的控件元素进行触发,响应于对所述控件元素的触发,执行与所述控件元素相对应的操作,以实现所述第二页面的跳转;遍历触发处于可选操作状态的所述第二页面控件元素,直至所述第二页面控件元素的状态为无可选操作状态。
上述方案中,
所述信息处理模块,用于当所述遍历测试进程对小程序进程测试时,获取用于登录小程序服务器的虚拟测试账号,并在所述遍历测试的交互界面中呈现所述虚拟测试账号;
所述信息处理模块,用于响应于针对所述虚拟测试账号的选用操作,基于每个被选用的虚拟测试账号登录所述小程序服务器,并在所述交互界面中显示处于登录状态的小程序窗口;
所述信息处理模块,用于响应于针对所述小程序的测试请求,在所述小程序窗口中显示遍历测试方法被执行时所输出的调试信息。
上述方案中,
所述信息处理模块,用于在所述交互界面中呈现自动化测试状态组件,以实现通过所述自动化测试状态组件响应于针对所述小程序的测试请求;
所述信息处理模块,用于在所述交互界面中呈现登录状态组件,以实现通过所述登录状态组件控制测试人员的登录、注销以及通过目标验证方式对登录信息进行检测;
所述信息处理模块,用于在所述交互界面中呈现消息通知组件,以实现通过所述消息通知组件控制遍历测试结果的传输。
本发明实施例还提供了一种电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于运行所述存储器存储的可执行指令时,实现前序的遍历测试方法。
本发明实施例还提供了一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现前序的遍历测试方法。
本发明实施例具有以下有益效果:
通过触发遍历测试进程,响应于所述遍历测试进程,获取遍历测试进程对应的第一页面;提取所述第一页面中的所有可操作的第一页面控件元素;对所述第一页面控件元素的状态进行检测,当确定所述第一页面控件元素的状态为无可选操作状态时,从所述第一页面调整至第二页面;提取所述第二页面中的所有可操作的第二页面控件元素;对所述第二页面控件元素的状态进行检测,当确定所述第二页面控件元素的状态为无可选操作状态时,迭代对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历,由此,能够自动适配不同的遍历测试环境,同时提升遍历测试的测试效率以及覆盖率,减少人工测试的成本,提升测试的准确性。
附图说明
图1为本发明实施例提供的遍历测试方法的使用场景示意图;
图2为本发明实施例提供的电子设备的组成结构示意图;
图3为本发明实施例提供的遍历测试方法一个可选的流程示意图;
图4为本发明实施例中遍历测试装效果示意图;
图5为本发明实施例提供的遍历测试方法一个可选的流程示意图;
图6为相关技术中遍历测试遗漏示意图;
图7为本发明实施例中遍历测试一个可选的效果示意图;
图8为本发明实施例中遍历测试一个可选的效果示意图;
图9为本发明实施例中事件环路进行动态裁剪的过程示意图;
图10为本发明实施例中遍历测试效果示意图;
图11为本发明实施例提供的遍历测试方法一个可选的流程示意图;
图12为小程序游戏的第一页面示意图;
图13为小程序游戏的第二页面示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
2)云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
3)测试脚本(Testing script):通过测试脚本可以自动执行全部测试过程或者部分测试过程,例如可以在测试脚本中编写好测试的逻辑顺序关系,在自动执行时,则会按照编写好的顺序来执行。
4)小程序(Mini Program),是一种基于面向前端的语言(例如JavaScript)开发的、在超文本标记语言(HTML,Hyper Text Markup Language)页面中实现服务的程序,由客户端(例如浏览器或内嵌浏览器核心的任意客户端)经由网络(如互联网)下载、并在客户端的浏览器环境中解释和执行的软件,节省在客户端中安装的步骤。例如,通过语音指令唤醒终端中的小程序实现在社交网络客户端中可以下载、运行用于实现机票购买、任务处理与制作、数据展示等各种服务的小程序。
5)虚拟测试账号/真实测试账号:虚拟测试账号是在小程序服务器的运维方维护的,即在小程序后台开通的专用于测试的账号,而真实测试账号是自然人持有的可以登陆小程序后台的客户端(即小程序上线后,下载小程序并运行小程序的客户端,例如即时通讯客户端)的账号。虚拟测试账号可以拥有与真实测试账号相同的属性和权限,当然,出于某些需要(例如安全)也可以进行部分限制,例如虚拟测试账号不能登录即时通讯客户端客户端,但是真实测试账号可以登录即时通讯客户端。
6)集成开发环境(IDE,Integrated Development Environment):一类辅助开发计算机程序的应用软件,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务,所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。例如,微软的Visual Studio系列,Borland的C++Builder、Delphi系列等都属于IDE。该IDE程序可以独立运行,也可以和其它程序并用。本发明实施例主要指小程序调试工具。
图1为本发明实施例提供的遍历测试方法的使用场景示意图,参见图1,终端(包括终端10-1和终端10-2)上设置有能够执行不同功能相应客户端其中,所属客户端为终端(包括终端10-1和终端10-2)通过网络300从相应的服务器200中下载相应的目标代码实现,终端通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输,其中,软件源代码可以是由一种或多种编程语言编写的程序代码。软件源代码可以包括执行业务逻辑的程序文件和对执行业务逻辑的程序实体进行测试的测试程序文件。服务器200中可以从测试程序文件中确定需要进行遍历测试的目标对象以及相应的测试环境。在本发明的一些实施例中,在进行遍历测试之前,测试人员需要对软件代码中各个目标对象进行分析,以筛选出要测试的目标对象和不进行测试的目标对象。这里,一个目标对象是指软件中一个可测试的功能模块。在不同编程语言的软件代码中,目标对象可以是不同类型的代码实体。例如,在C语言的软件代码中,一个目标对象可以是一个函数。在JAVA语言的软件代码中,一个目标对象可以是一个类,IOS端OC语言中可以是一段目标代码。在C++语言的软件代码中,一个目标对象可以是一个类或一个函数。其中本申请中不再对代码(目标代码)对象的具体类型进行区分。
其中,在对小程序进行遍历测试后,可以对出现问题的页面进行修复,以保证用户的使用体验,服务器200通过网络300向终端(终端10-1和/或终端10-2)发送相应的小程序之前需要对各类型的小程序进行相应的测试分析。作为一个事例,服务器200用于触发遍历测试进程,响应于所述遍历测试进程,获取遍历测试进程对应的第一页面;提取所述第一页面中的所有可操作的第一页面控件元素;对所述第一页面控件元素的状态进行检测,当确定所述第一页面控件元素的状态为无可选操作状态时,从所述第一页面调整至第二页面;提取所述第二页面中的所有可操作的第二页面控件元素;对所述第二页面控件元素的状态进行检测,当确定所述第二页面控件元素的状态为无可选操作状态时,迭代对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历。由此,可以提升测试效率,保证遍历测试的覆盖率。
下面对本发明实施例的电子设备的结构做详细说明,其中遍历测试装置可以作为电子设备的模块组成,以各种形式来实施,如带有遍历测试功能的专用终端,也可以为设置有遍历测试处理功能的电子设备(手机、或平板电脑),例如前序图1中的终端10-1或者终端10-2。图2为本发明实施例提供的遍历测试装置的组成结构示意图,可以理解,图2仅仅示出了遍历测试装置的示例性结构而非全部结构,根据需要可以实施图2示出的部分结构或全部结构。
本发明实施例提供的遍历测试装置包括:至少一个处理器201、存储器202、用户接口203和至少一个网络接口204。遍历测试装置中的各个组件通过总线***205耦合在一起。可以理解,总线***205用于实现这些组件之间的连接通信。总线***205除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线***205。
其中,用户接口203可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
可以理解,存储器202可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。本发明实施例中的存储器202能够存储数据以支持终端(如10-1)的操作。这些数据的示例包括:用于在终端(如10-1)上操作的任何计算机程序,如操作***和应用程序。其中,操作***包含各种***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序。
在一些实施例中,本发明实施例提供的遍历测试装置可以采用软硬件结合的方式实现,作为示例,本发明实施例提供的遍历测试装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的遍历测试方法。例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
作为本发明实施例提供的遍历测试装置采用软硬件结合实施的示例,本发明实施例所提供的遍历测试装置可以直接体现为由处理器201执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器202,处理器201读取存储器202中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器201以及连接到总线205的其他组件)完成本发明实施例提供的遍历测试方法。
作为示例,处理器201可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
作为本发明实施例提供的遍历测试装置采用硬件实施的示例,本发明实施例所提供的装置可以直接采用硬件译码处理器形式的处理器201来执行完成,例如,被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件执行实现本发明实施例提供的遍历测试方法。
本发明实施例中的存储器202用于存储各种类型的数据以支持遍历测试装置的操作。这些数据的示例包括:用于在遍历测试装置上操作的任何可执行指令,如可执行指令,实现本发明实施例的从遍历测试方法的程序可以包含在可执行指令中。
在另一些实施例中,本发明实施例提供的遍历测试装置可以采用软件方式实现,图2示出了存储在存储器202中的遍历测试装置,其可以是程序和插件等形式的软件,并包括一系列的模块,作为存储器202中存储的程序的示例,可以包括遍历测试装置,遍历测试装置中包括以下的软件模块:信息传输模块2081和信息处理模块2082。当遍历测试装置中的软件模块被处理器201读取到RAM中并执行时,将实现本发明实施例提供的遍历测试方法,其中,遍历测试装置中各个软件模块的功能,包括:
信息传输模块2081,用于触发遍历测试进程,响应于所述遍历测试进程,获取遍历测试进程对应的第一页面。
信息处理模块2082,用于提取所述第一页面中的所有可操作的第一页面控件元素。
所述信息处理模块2082,用于对所述第一页面控件元素的状态进行检测,当确定所述第一页面控件元素的状态为无可选操作状态时,从所述第一页面调整至第二页面,其中,所述第一页面和所述第二页面为待测试程序中的两个独立页面。
所述信息处理模块2082,用于提取所述第二页面中的所有可操作的第二页面控件元素。
所述信息处理模块2082,用于对所述第二页面控件元素的状态进行检测,当确定所述第二页面控件元素的状态为无可选操作状态时,迭代对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历。
根据图2所示的电子设备,在本申请的一个方面中,本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述遍历测试方法的各种可选实现方式中所提供的不同实施例及实施例的组合。
结合图2示出的服务器20说明本发明实施例提供的遍历测试方法,参见图3,图3为本发明实施例提供的遍历测试方法一个可选的流程示意图,可以理解地,图3所示的步骤可以由运行遍历测试装置的各种服务器执行,例如可以是如带有遍历测试功能的专用终端、服务器或者服务器集群。下面针对图3示出的步骤进行说明。
步骤301:遍历测试装置触发遍历测试进程,响应于所述遍历测试进程,获取遍历测试进程对应的第一页面。
其中,参考图4,图4为本发明实施例中遍历测试装效果示意图,由于用户的设备环境复杂多样,所以APP某个页面在不同机型上的表现很有可能发生不一致的现象,或者是在不同的网络环境下会发生非预期崩溃等异常问题,以即时通讯客户端的小程序为例,在向用户推荐某一类型的小程序时,需要通过遍历测试,对小程序中每一个页面的状态进行检测,传统的基于用例维护方式的自动化测试手段已经无法满足产品快速迭代下的质量保障需求,一方面是因为用例的维护成本太高、稳定性太差,很难达到提效的目的。另外一方面是因为业务中需要测试的内容和场景过多,手工测试无法充分覆盖,比如:内存泄漏、稳定性测试、兼容性测试、弱网测试等等,同时小程序的很多页面本身并不复杂,但是如果要靠手工或者编写自动化用例的方式去覆盖,同一个入口的不同路径又太多,实现成本非常高,因此,遍历测试主要覆盖那些人工无法覆盖或者覆盖起来成本非常高的场景,比如内存泄漏检测、基础功能回归、兼容性测试、弱网测试。在遍历测试的过程中,如图4所示,遍历测试问题可以转化为对App状态有向有环模型的遍历问题。由于产品的页面有复杂的功能和UI结构,从局部示例图中可以看到,各个页面的入口是有多个的,从一个页面到下一个页面也有多种可能,这些跳转还存在大量的环路,包括自我跳转的成环路和多步跳转成环路。算法遍历的过程中很容易陷入局部循环当中,只覆盖有限的页面而无法退出,导致覆盖率低。同时,带有加权激励动态调整控件的权值遍历,算法会尽可能地点击有意义的控件,但无法避免陷入环路导致重复的点击。
进一步地,参考图4,由于边遍历边生成图,很容易在遍历过程中陷入局部循环当中,当重新回到某个全部动作都已访问的节点,不会对已访问的动作再次访问,会丢失路径中未访问过的动作,过早的结束遍历测试,因此,传统的深度遍历算法在这种情况就无法再次进入这些页面进行发散遍历以触发更多新页面,因此遍历测试的覆盖率往往不能到达覆盖率阈值。
步骤302:遍历测试装置提取所述第一页面中的所有可操作的第一页面控件元素。
步骤303:遍历测试装置对所述第一页面控件元素的状态进行检测,当确定所述第一页面控件元素的状态为无可选操作状态时,从所述第一页面调整至第二页面。
其中,待测试的程序包括至少两个页面,分别为第一页面和第二页面,第一页面和第二页面可以为不存在关联关系的两个独立页面,当操作第一页面控件元素时,无法由第一页面跳转至第二页面,仅在第一页面控件元素的状态为无可选操作状态时,才能够由第一页面跳转至第二页面,所述待测试的程序包括但不限于:应用程序(application)、小程序、渐进式Web应用(PWA Progressive Web Apps)。
在本发明的一些实施例中,还可以对所述第一页面控件元素的状态进行检测;当确定所述第一页面控件元素的状态为存在可选操作状态时,根据所述第一页面控件元素,执行与所述第一页面控件元素相匹配的操作,其中,所述与所述第一页面控件元素相匹配的操作包括至少以下之一:点击、长按、滑动、输入、双击。其中,对于不同类型的小程序,可以把一个页面中可能存在各自独立的接口,例如:登录数据接口,资金领取数据接口等各类型的接口,通过组合调用特定的接口调整用户数据,从而形成不同的用户场景,小程序进行遍历测试时通过调用接口切换用户数据进行点击、长按、滑动、输入、双击的操作执行,最终达到覆盖第一页面控件元素相匹配的所有操作,保证遍历测试的完整性。
步骤304:遍历测试装置提取所述第二页面中的所有可操作的第二页面控件元素。
步骤305:遍历测试装置对所述第二页面控件元素的状态进行检测,当确定所述第二页面控件元素的状态为无可选操作状态时,迭代对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历。
为了更好的说明迭代对第二页面进行调整,直至遍历测试进程中的所有页面完成遍历的过程,参见图5,图5为本发明实施例提供的遍历测试方法一个可选的流程示意图,可以理解地,图5所示的步骤可以由运行遍历测试装置的各种服务器执行,例如可以是具有遍历测试功能的专用终端、服务器或者服务器集群。下面针对图5示出的步骤进行说明。
步骤501:遍历测试装置当确定所述第二页面控件元素的状态为无可选操作状态时,获取所述第二页面控件元素中所有的已经触发过的事件。
参考图6,图6为相关技术中遍历测试遗漏示意图,传统的深度/广度优先遍历算法,当重新回到某个全部动作都已访问的节点,不会对已访问的动作再次访问,导致丢失路径中未访问过的动作,过早的结束遍历测试,传统的深度遍历算法在这种情况就无法再次进入这些页面进行发散遍历以触发更多新页面。如图6所示,当遍历回到全部动作都已访问过的结点s2时,不会再次尝试已遍历的结点s4和s5,导致漏访问了页面s7。
而通过步骤501,获取第二页面控件元素中所有的已经触发过的事件,并根据第二页面控件元素中所有的已经触发过的事件进行遍历测试,则会避免图6所示的页面遗漏。
步骤502:遍历测试装置在所述所有的已经触发过的事件中随机选择一个已经触发过的事件,并且确定与所选择的一个已经触发过的事件对应的页面控件元素。
步骤503:遍历测试装置执行与所述页面控件元素相匹配的操作,并记录与所选择的一个已经触发过的事件对应的页面状态信息和操作对象信息。
在本发明的一些实施例中,当随机选择一个已经触发过的事件时,为所述遍历测试进程配置全局标记控件元素;通过所述全局标记控件调整访问需求变量,其中,所述访问需求变量用于表征任一页面中的页面控件元素是否完成遍历。具体来说,参考图7,图7为本发明实施例中遍历测试一个可选的效果示意图,对已访问过的节点和动作进行再次执行,通过引入全局标记控件是否不再需要访问的变量(dead),如果该变量为False,就可以持续重复点击操作,对于某些页面退出或者返回无法重新到达的问题,遍历算法可以重新从返回后的页面s2尝试重新进入s5,可以保证这些页面的遍历完整性,提高覆盖率。
最后,参考图8,图8为本发明实施例中遍历测试一个可选的效果示意图,对第二页面控件元素的状态进行检测,当确定所述第二页面控件元素的状态为存在可选操作状态时,随机选择所述第二页面控件元素中任意一个未点击过的控件元素进行触发,响应于对所述控件元素的触发,执行与所述控件元素相对应的操作,以实现所述第二页面的跳转;遍历触发处于可选操作状态的所述第二页面控件元素,直至所述第二页面控件元素的状态为无可选操作状态。如图8所示,页面s1通过页面控件元素的触发,执行页面控件元素相匹配的操作后,可以跳转至页面s2、s3;页面s2通过页面控件元素的触发,执行页面控件元素相匹配的操作后,可以跳转至页面s4、s5和s1,在本发明的一些实施例中,通过触发页面s1中的单击控件元素,可以跳转至页面s2,通过触发页面s1中的双击控件元素,可以跳转至页面s2,当页面控件元素的状态为存在可选操作状态,即单击控件元素不存在可选操作状态,双击控件元素存在可选操作状态,此时在遍历过程中,通过执行与双击控件元素相对应的操作,可以从页面s1跳转至页面s3,同时页面s1的页面控件元素的状态为无可选操作状态,此时,页面s1中所有的面控件元素均完成触发,并执行相应的操作。这一遍历过程中,每一个控件事件执行过,有一个标记变量已访问(图8中阴影示例部分)。在遍历的过程提取出当前页面状态下可操作事件的同时需要持续递归计算每个元素控件当前能覆盖的子树中的每一个控件是否都访问过(此时isvisited=true),当页面的控件元素下的子树的所有页面和控件元素都已访问过,将这个控件元素标记为不再需要点击(此时dead=true)。通过这样的回溯计算更新,可以逐步减少已访问过的控件的数量,不再重新遍历图8中阴影示例的节点,从而逐步收敛到最终遍历结束,由此,遍历测试的覆盖率可以大幅提高,从而保证了对小程序中每一个页面的检测,提升用户小程序的使用体验。具体的测试效率对比参考表1:
表1
步骤504:遍历测试装置当所述页面状态信息和操作对象信息形成事件环路时,对所述事件环路进行动态裁剪。
步骤505:遍历测试装置根据动态裁剪的结果,对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历。
在本发明的一些实施例中,对所述事件环路进行动态裁剪,可以通过以下方式实现:
根据所述页面控件元素、与所述页面控件元素相匹配的操作以及调整后的页面信息,建立调整映射关系,以实现获取任一页面信息时,通过所述调整映射关系查找相对应的页面控件元素和与所述页面控件元素相匹配的操作;当迭代对所述第二页面进行调整时,利用所述调整映射关系,对所述遍历测试进程中的任一页面进行检测,得到所述任一页面的检测结果;当根据所述任一页面的检测结果,确定所述任一页面位于所述调整映射关系中时,根据所述任一页面的检测结果,对所述事件环路进行动态裁剪以实现将所述遍历测试进程的有向有环图裁剪为多叉树的结构图,当根据所述任一页面的检测结果,确定所述任一页面不存在于所述调整映射关系中时,对所述调整映射关系进行修改。为了更好地说明有向有环图裁剪为多叉树的结构图这一处理过程,参考图9,图9为本发明实施例中事件环路进行动态裁剪的过程示意图,由于有的小程序的页面数量众多,在进行遍历测试时,形成了非常庞大错综复杂的有向有环图,即起点和终点是同一个页面。以图9所示的页面调整为例,页面s1通过页面控件元素的触发,执行页面控件元素相匹配的操作后,可以调整至页面s2、s3和s4,页面s2执行页面控件元素相匹配的操作后,可以调整至页面s1或者页面s5,页面s3执行页面控件元素相匹配的操作后,可以调整至页面s6,页面s4执行页面控件元素相匹配的操作后,可以调整至页面s8,页面s5执行页面控件元素相匹配的操作后,可以调整至页面s7或者页面s6,页面s7执行页面控件元素相匹配的操作后,可以调整至页面s5,页面s6执行页面控件元素相匹配的操作后,可以调整至页面s8;以页面s5为例,页面控件元素为“双击按钮”,页面控件元素相匹配的操作为“双击”,所建立的调整映射关系表示为(双击按钮,双击,s6)和(双击按钮,双击,s7),利用调整映射关系,对遍历测试进程中的任一页面进行检测时,检测到页面s6时,当根据页面s6的检测结果,确定页面s6位于调整映射关系中时,对事件环路进行动态裁剪形成多叉树的结构图。进一步地,由于小程序的页面中的页面调整(跳转)可以随着小程序的功能扩充发生改变,因此调整映射关系也需要对着页面调整进行修改,例如页面s5执行页面控件元素相匹配的操作后,可以调整至页面s8时,确定页面s5不存在于调整映射关系中时,对调整映射关系进行修改,增加映射关系表示为(双击按钮,双击,s8)。由此可以实现根据待测试程序中页面调整的变化,及时地对调整映射关系进行修改,保证事件环路进行动态裁剪的准确。
在本发明的一些实施例中,排除小程序的起始进入页面入口的情况,形成环的页面结点入度需要大于1。也就是说,有2个或2个以上的其他页面能同时到达结点就有可能形成环,在对有向有环图进行遍历测试时,会严重影响遍历测试的效率,因此,在遍历的过程中记录下“控件元素-操作方式-跳转到页面”的调整映射关系。之后利用调整映射关系,对遍历测试进程中的任一页面进行检测,一旦遍历到任意页面,判断是否在调整映射关系中,不存在则记录在调整映射关系中,如果存在则取出记录跳转到这个页面的入口控件元素,并判断页面的入口控件元素是否与当前跳转的元素一致,不一致则说明发现了新的入口,此时需要把这个新的入口去掉以免形成环路,由此,将遍历测试进程的有向有环图裁剪为多叉树的结构图,可以提升遍历测试的效率。
本发明实施例还可以基于云技术来实现对任一目标对象的遍历测试。云技术(Cloud technology)是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利,云计算技术将变成重要支撑。云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储***(以下简称存储***)是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。目前,存储***的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件***上,文件***将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件***将每个对象分别写入该逻辑卷的物理存储空间,且文件***会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件***能够根据每个对象的存储位置信息让客户端对数据进行访问。存储***为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
其中,遍历测试结果可以保存在云服务器中,当小程序进行维护时,通过获取云服务器中的遍历测试结果,对小程序的页面进行维护,以节省再次进行遍历测试的时间。
参考图10,图10为本发明实施例中遍历测试效果示意图,在对小程序进行测试的过程中,可以对相应测试用户场景中的小程序的测试过程进行监听;当监听到所述小程序出现异常信息时,向即时通讯客户端发送测试结果,如图10所示,可以在即时通讯客户端中呈现不同测试场景对应的测试结果,例如:新用户自动化测试通过、App活跃用户自动化测试通过以及小程序活跃用户自动化测试通过。在本发明的一些实施例中,可以获取所述小程序执行遍历测试进程后所发送的测试结果,其中,所述测试结果至少表征有所述小程序在线上运行环境中的启动特征;基于所述测试结果对所述小程序的启动特征进行分析处理,获得启动分析结果;通过即时通讯客户端接收针对所述启动分析结果的调整指令;根据所述对所述启动分析结果的调整指令,持续对所述小程序进行测试,直至停止通过即时通讯客户端接收针对所述启动分析结果的调整指令。其中,小程序执行预设测试进程时无需进行用户界面的操作,而是直接执行即时通讯应用程序的冷启动以及小程序的启动指令,所以,与模拟UI操作来进行测试的方式相比,测试过程更加简单,无需过多等待时间,而且能够精确得到启动指令所对应的启动特征,避免了其他无关操作(如测试阶段触发即时通讯客户端小程序中的开屏广告,或弹窗等)而带来的误差,提升了测试结果的准确性,同时自动化批量执行打开小程序,小程序启动完成关闭小程序,采集小程序启动过程中的启动特征,获得启动分析结果,并持续对所述小程序进行测试,直至停止通过即时通讯客户端接收针对启动分析结果的调整指令,可以保证部署在即时通讯客户端中的小程序的准确性,避免由于测试过程不完全所造成的小程序推广中出现异常信息。
进一步地,还可以基于小程序的遍历测试结果,生成所述小程序的测试报告;基于所述遍历测试进程的配置信息,向与所述遍历测试进程相匹配的至少一个预设地址发送所述测试报告。其中,当服务器接收到测试报告后,可以根据测试报告确定测试中的异常信息在当前版本号对应的小程序中的容错程度,并确定是否在当前版本号对应的小程序中修复测试中的异常信息后,还可以预测测试中的异常信息在其他版本号对应的小程序中的容错程度,据此确定是否在其他版本号对应的小程序中修复测试中的异常信息。例如:即时通讯客户端中使用的是版本号为001的游戏小程序,基于即时通讯客户端上传的遍历测试报告,确定是否要对版本号为001的小程序进行修复(例如通过代码更新调整为版本号为002的小程序),由此可以节省用户的即时通讯客户端更新小程序的次数,避免由于频繁更新即时通讯客户端中的小程序影响用户的正常使用。
参考图10,在本发明的一些实施例中,在测试过程中,获取用于登录小程序服务器的虚拟测试账号,并在所述遍历测试的交互界面中呈现所述虚拟测试账号;响应于针对所述虚拟测试账号的选用操作,基于每个被选用的虚拟测试账号登录所述小程序服务器,并在所述交互界面中显示处于登录状态的小程序窗口;响应于针对所述小程序的测试请求,在所述小程序窗口中显示遍历测试方法被执行时所输出的调试信息。其中,如图10所示,在所述交互界面中呈现自动化测试状态组件,以实现通过所述自动化测试状态组件响应于针对所述小程序的测试请求;在所述交互界面中呈现登录状态组件,以实现通过所述登录状态组件控制测试人员的登录、注销以及通过目标验证方式对登录信息进行检测;在所述交互界面中呈现消息通知组件,以实现通过所述消息通知组件控制遍历测试结果的传输,由此,在遍历测试的过程中,为了方便观察测试的运行日志,以及管理开发机的登录状态、网络状态等测试情况,可以通过图10所示的Web可视化界面进行远程管理。Web界面中呈现有“运行测试”按钮,测试人员点击按钮,即可向开发机发送指令,控制开发机进行运行测试、登录开发者工具、开启测试结果通知等操作。通过触发图10中的登录状态组件,可通过二维码验证方式对登录信息进行检测。其中,遍历测试的代码参考表2:
表2
下面以小程序为阅读应用小程序(例如即时通讯客户端的游戏小程序)为例,对本发明所提供的遍历测试方法进行说明,参考图11,图11为本发明实施例提供的遍历测试方法一个可选的流程示意图,可以理解地,图11所示的步骤可以由运行遍历测试装置的各种服务器执行,例如可以是即时通讯客户端的服务器集群对即时通讯客户端的游戏小程序进行遍历测试,下面针对图11示出的步骤进行说明。
步骤1101:从游戏小程序服务器中获取待测试的小程序,并配置遍历测试进程。
其中,参考图12,图12为小程序游戏的第一页面示意图,图12所示的第一页面中,页面控件元素包括:游戏完成时长、各技能特效的使用频率(如技能特效A的使用频率、技能特效B的使用频率等可点击查看)、各技能特效的触发次数(如技能特效A的触发次数、技能特效B的触发次数可以双击查看)、各失误情况的出现次数(如出现失误A的次数、出现失误B的次数可以点击查看),各游戏道具的使用攻略(如游戏道具“炸弹”的使用次数、游戏道具“氮气加速”的使用时机可以滑动查看)。
步骤1102:触发遍历测试进程,响应于所述遍历测试进程,获取遍历测试进程对应的第一页面。
步骤1103:提取所述第一页面中的所有可操作的第一页面控件元素。
步骤1104:对所述第一页面控件元素的状态进行检测,当确定所述第一页面控件元素的状态为无可选操作状态时,从所述第一页面调整至第二页面。
考图13,图13为小程序游戏的第二页面示意图,通过第二页面示意图,游戏用户可以选择小程序游戏中的地图使用场景,在图13中通过不同的图例示出了游戏地图中的页面控件元素包括:“G港”、“P城”、“学校”、“R城”、“核电站”、“M城”。
步骤1105:提取所述第二页面中的所有可操作的第二页面控件元素。
步骤1106:当页面状态信息和操作对象信息形成事件环路时,对所述事件环路进行动态裁剪。
其中,在执行步骤1106之前,在通过步骤1105获得第二页面控件元素后,通过触发第二页面控件元素,可以执行第二页面控件元素对应的操作,并作为已经触发过的事件,例如可以是展示“G港”的道路信息、呈现“P城”的坐标信息,此时,第二页面的页面状态信息可以为已访问。当图13所示的游戏地图中的页面控件元素全部没有访问时,第二页面的页面状态信息可以为未访问。
步骤1107:根据动态裁剪的结果,对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历,得到遍历测试结果。
步骤1108:利用遍历测试结果对,游戏小程序的所有页面进行维护。
有益技术效果:
本申请通过触发遍历测试进程,响应于所述遍历测试进程,获取遍历测试进程对应的第一页面;提取所述第一页面中的所有可操作的第一页面控件元素;对所述第一页面控件元素的状态进行检测,当确定所述第一页面控件元素的状态为无可选操作状态时,从所述第一页面调整至第二页面;提取所述第二页面中的所有可操作的第二页面控件元素;对所述第二页面控件元素的状态进行检测,当确定所述第二页面控件元素的状态为无可选操作状态时,迭代对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历,由此,能够自动适配不同的遍历测试环境,同时提升遍历测试的测试效率以及覆盖率,减少人工测试的成本,提升测试的准确性。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种遍历测试方法,其特征在于,所述方法包括:
触发遍历测试进程,响应于所述遍历测试进程,获取遍历测试进程对应的第一页面;
提取所述第一页面中的所有可操作的第一页面控件元素;
对所述第一页面控件元素的状态进行检测,当确定所述第一页面控件元素的状态为无可选操作状态时,从所述第一页面调整至第二页面,其中,所述第一页面和所述第二页面为待测试程序中的两个独立页面;
提取所述第二页面中的所有可操作的第二页面控件元素;
对所述第二页面控件元素的状态进行检测,当确定所述第二页面控件元素的状态为无可选操作状态时,迭代对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历,得到遍历测试结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述第一页面控件元素的状态进行检测;
当确定所述第一页面控件元素的状态为存在可选操作状态时,根据所述第一页面控件元素,执行与所述第一页面控件元素相匹配的操作,其中,所述与所述第一页面控件元素相匹配的操作包括至少以下之一:
点击、长按、滑动、输入、双击。
3.根据权利要求1所述的方法,其特征在于,所述当确定所述第二页面控件元素的状态为无可选操作状态时,迭代对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历,包括:
当确定所述第二页面控件元素的状态为无可选操作状态时,获取所述第二页面控件元素中所有的已经触发过的事件;
在所述所有的已经触发过的事件中随机选择一个已经触发过的事件,并且确定与所选择的一个已经触发过的事件对应的页面控件元素;
执行与所述页面控件元素相匹配的操作,并记录与所选择的一个已经触发过的事件对应的页面状态信息和操作对象信息;
当所述页面状态信息和操作对象信息形成事件环路时,对所述事件环路进行动态裁剪;
根据动态裁剪的结果,对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当随机选择一个已经触发过的事件时,为所述遍历测试进程配置全局标记控件元素;
通过所述全局标记控件调整访问需求变量,其中,所述访问需求变量用于表征任一页面中的页面控件元素是否完成遍历。
5.根据权利要求3所述的方法,其特征在于,所述对所述事件环路进行动态裁剪,包括:
根据所述页面控件元素、与所述页面控件元素相匹配的操作以及调整后的页面信息,建立调整映射关系,以实现获取任一页面信息时,通过所述调整映射关系查找相对应的页面控件元素和与所述页面控件元素相匹配的操作;
当迭代对所述第二页面进行调整时,利用所述调整映射关系,对所述遍历测试进程中的任一页面进行检测,得到所述任一页面的检测结果;
当根据所述任一页面的检测结果,确定所述任一页面位于所述调整映射关系中时,对所述事件环路进行动态裁剪以实现将所述遍历测试进程的有向有环图裁剪为多叉树的结构图;
当根据所述任一页面的检测结果,确定所述任一页面不存在于所述调整映射关系中时,对所述调整映射关系进行修改。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当确定所述第二页面控件元素的状态为存在可选操作状态时,随机选择所述第二页面控件元素中任意一个未点击过的控件元素进行触发,
响应于对所述控件元素的触发,执行与所述控件元素相对应的操作,以实现所述第二页面的跳转;
遍历触发处于可选操作状态的所述第二页面控件元素,直至所述第二页面控件元素的状态为无可选操作状态。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述遍历测试进程对小程序进程测试时,获取用于登录小程序服务器的虚拟测试账号,并在所述遍历测试的交互界面中呈现所述虚拟测试账号;
响应于针对所述虚拟测试账号的选用操作,基于每个被选用的虚拟测试账号登录所述小程序服务器,并在所述交互界面中显示处于登录状态的小程序窗口;
响应于针对所述小程序的测试请求,在所述小程序窗口中显示遍历测试方法被执行时所输出的调试信息。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述交互界面中呈现自动化测试状态组件,以实现通过所述自动化测试状态组件响应于针对所述小程序的测试请求;
在所述交互界面中呈现登录状态组件,以实现通过所述登录状态组件控制测试人员的登录、注销以及通过目标验证方式对登录信息进行检测;
在所述交互界面中呈现消息通知组件,以实现通过所述消息通知组件控制遍历测试结果的传输。
9.一种遍历测试装置,其特征在于,所述装置包括:
信息传输模块,用于触发遍历测试进程,响应于所述遍历测试进程,获取遍历测试进程对应的第一页面;
信息处理模块,用于提取所述第一页面中的所有可操作的第一页面控件元素;
所述信息处理模块,用于对所述第一页面控件元素的状态进行检测,当确定所述第一页面控件元素的状态为无可选操作状态时,从所述第一页面调整至第二页面,其中,所述第一页面和所述第二页面为待测试程序中的两个独立页面;
所述信息处理模块,用于提取所述第二页面中的所有可操作的第二页面控件元素;
所述信息处理模块,用于对所述第二页面控件元素的状态进行检测,当确定所述第二页面控件元素的状态为无可选操作状态时,迭代对所述第二页面进行调整,直至所述遍历测试进程中的所有页面完成遍历,得到遍历测试结果。
10.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于运行所述存储器存储的可执行指令时,实现权利要求1至8任一项所述的遍历测试方法。
11.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时,实现权利要求1至8任一项所述的遍历测试方法。
12.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现权利要求1至8任一项所述的遍历测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210650379.5A CN114968687B (zh) | 2022-06-09 | 遍历测试方法、装置、电子设备、程序产品以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210650379.5A CN114968687B (zh) | 2022-06-09 | 遍历测试方法、装置、电子设备、程序产品以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114968687A true CN114968687A (zh) | 2022-08-30 |
CN114968687B CN114968687B (zh) | 2024-07-02 |
Family
ID=
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776319A (zh) * | 2016-12-15 | 2017-05-31 | 广州酷狗计算机科技有限公司 | 自动测试方法及装置 |
CN107357725A (zh) * | 2017-06-29 | 2017-11-17 | 腾讯科技(深圳)有限公司 | 应用测试方法及装置 |
CN107506300A (zh) * | 2017-08-09 | 2017-12-22 | 百度在线网络技术(北京)有限公司 | 一种用户界面测试方法、装置、服务器和存储介质 |
US20180329813A1 (en) * | 2017-01-11 | 2018-11-15 | Smartlytics Llc, Dba Quantyzd | System and method for automated intelligent mobile application testing |
CN109857668A (zh) * | 2019-02-03 | 2019-06-07 | 苏州市龙测智能科技有限公司 | Ui自动化功能测试方法、测试装置、测试设备及存储介质 |
WO2019196274A1 (zh) * | 2018-04-10 | 2019-10-17 | 平安科技(深圳)有限公司 | 网页页面测试方法、装置、电子设备和介质 |
US20200034281A1 (en) * | 2017-01-11 | 2020-01-30 | Smartlytics Llc, Dba Quantyzd | System and method for automated intelligent mobile application testing |
US20200356465A1 (en) * | 2018-01-23 | 2020-11-12 | Netease (Hangzhou) Network Co.,Ltd. | Automatic testing method and apparatus, storage medium and electronic device |
WO2020232900A1 (zh) * | 2019-05-20 | 2020-11-26 | 平安科技(深圳)有限公司 | ***测试方法及装置、计算机设备、存储介质 |
CN113220564A (zh) * | 2021-04-26 | 2021-08-06 | 北京京东拓先科技有限公司 | 页面的自动化测试方法、装置、设备以及存储介质 |
CN113360373A (zh) * | 2021-05-26 | 2021-09-07 | 上海蛮犀科技有限公司 | 一种移动应用Activity页面全遍历的测试方法 |
WO2021184725A1 (zh) * | 2020-03-16 | 2021-09-23 | 平安科技(深圳)有限公司 | 用户界面测试方法、装置、存储介质及计算机设备 |
CN113900950A (zh) * | 2021-10-27 | 2022-01-07 | 北京字跳网络技术有限公司 | 页面测试方法、装置、终端和存储介质 |
CN114090436A (zh) * | 2021-11-12 | 2022-02-25 | 乐元素科技(北京)股份有限公司 | 测试方法及装置 |
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776319A (zh) * | 2016-12-15 | 2017-05-31 | 广州酷狗计算机科技有限公司 | 自动测试方法及装置 |
US20200034281A1 (en) * | 2017-01-11 | 2020-01-30 | Smartlytics Llc, Dba Quantyzd | System and method for automated intelligent mobile application testing |
US20180329813A1 (en) * | 2017-01-11 | 2018-11-15 | Smartlytics Llc, Dba Quantyzd | System and method for automated intelligent mobile application testing |
CN107357725A (zh) * | 2017-06-29 | 2017-11-17 | 腾讯科技(深圳)有限公司 | 应用测试方法及装置 |
CN107506300A (zh) * | 2017-08-09 | 2017-12-22 | 百度在线网络技术(北京)有限公司 | 一种用户界面测试方法、装置、服务器和存储介质 |
US20200356465A1 (en) * | 2018-01-23 | 2020-11-12 | Netease (Hangzhou) Network Co.,Ltd. | Automatic testing method and apparatus, storage medium and electronic device |
WO2019196274A1 (zh) * | 2018-04-10 | 2019-10-17 | 平安科技(深圳)有限公司 | 网页页面测试方法、装置、电子设备和介质 |
CN109857668A (zh) * | 2019-02-03 | 2019-06-07 | 苏州市龙测智能科技有限公司 | Ui自动化功能测试方法、测试装置、测试设备及存储介质 |
WO2020232900A1 (zh) * | 2019-05-20 | 2020-11-26 | 平安科技(深圳)有限公司 | ***测试方法及装置、计算机设备、存储介质 |
WO2021184725A1 (zh) * | 2020-03-16 | 2021-09-23 | 平安科技(深圳)有限公司 | 用户界面测试方法、装置、存储介质及计算机设备 |
CN113220564A (zh) * | 2021-04-26 | 2021-08-06 | 北京京东拓先科技有限公司 | 页面的自动化测试方法、装置、设备以及存储介质 |
CN113360373A (zh) * | 2021-05-26 | 2021-09-07 | 上海蛮犀科技有限公司 | 一种移动应用Activity页面全遍历的测试方法 |
CN113900950A (zh) * | 2021-10-27 | 2022-01-07 | 北京字跳网络技术有限公司 | 页面测试方法、装置、终端和存储介质 |
CN114090436A (zh) * | 2021-11-12 | 2022-02-25 | 乐元素科技(北京)股份有限公司 | 测试方法及装置 |
Non-Patent Citations (2)
Title |
---|
测吧-霍格沃兹软件测试开发: "利器 | AppCrawler 自动遍历测试工具实践(一)", pages 1 - 10, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/104899682> * |
蒋琦敏: "基于GUI的Android应用程序中WebView页面自动化测试***的设计与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)》, 31 January 2022 (2022-01-31), pages 1 - 25 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595329B (zh) | 一种应用测试方法、装置及计算机存储介质 | |
CN107291438B (zh) | 自动化脚本的生成方法、装置及电子设备 | |
US11449370B2 (en) | System and method for determining a process flow of a software application and for automatically generating application testing code | |
US9720799B1 (en) | Validating applications using object level hierarchy analysis | |
US10942837B2 (en) | Analyzing time-series data in an automated application testing system | |
CN107015841B (zh) | 一种程序编译的预处理方法及程序编译设备 | |
CN105653946A (zh) | 基于组合事件行为触发的Android恶意行为检测***及其检测方法 | |
CN108459958A (zh) | 功能及性能测试脚本的创建方法、装置、设备及存储介质 | |
CN113342685A (zh) | 精准测试方法、装置、计算机设备和存储介质 | |
CN113590454A (zh) | 测试方法、装置、计算机设备和存储介质 | |
CN108932199B (zh) | 一种基于用户界面分析的自动化污点分析*** | |
KR20210045122A (ko) | 기호 실행을 사용하는 소프트웨어 테스트 입력 생성 장치 및 방법 | |
US10241845B2 (en) | Application event tracing | |
CN113342629A (zh) | 操作轨迹还原方法、装置、计算机设备和存储介质 | |
CN116841543A (zh) | 基于Flutter动态生成跨平台多端应用的开发方法 | |
Wang et al. | Fast reproducing web application errors | |
CN114968687B (zh) | 遍历测试方法、装置、电子设备、程序产品以及存储介质 | |
CN114968687A (zh) | 遍历测试方法、装置、电子设备、程序产品以及存储介质 | |
CN113986768A (zh) | 应用程序稳定性测试方法、装置、设备及介质 | |
CN113220586A (zh) | 一种自动化的接口压力测试执行方法、装置和*** | |
WO2021104027A1 (zh) | 代码性能检测方法、装置、设备及存储介质 | |
Lin et al. | SPADE: Scalable App Digging with Binary Instrumentation and Automated Execution | |
Vandercammen et al. | Prioritising Server Side Reachability via Inter-process Concolic Testing | |
CN116383095B (zh) | 基于rpa机器人的冒烟测试方法、***和可读存储介质 | |
CN114416210B (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 | ||
GR01 | Patent grant |