CN108628732A - 一种应用界面控件遍历测试方法及装置 - Google Patents
一种应用界面控件遍历测试方法及装置 Download PDFInfo
- Publication number
- CN108628732A CN108628732A CN201710157662.3A CN201710157662A CN108628732A CN 108628732 A CN108628732 A CN 108628732A CN 201710157662 A CN201710157662 A CN 201710157662A CN 108628732 A CN108628732 A CN 108628732A
- Authority
- CN
- China
- Prior art keywords
- control
- application interface
- information
- traversed
- history
- 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
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/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)
- User Interface Of Digital Computer (AREA)
Abstract
本发明实施例公开了一种应用界面控件遍历测试方法,包括:在对应用界面进行测试时,获取所述应用界面中已遍历控件的历史控件信息以及所述应用界面上的多个控件;根据所述已遍历控件的历史控件信息,确定所述应用界面上的多个控件中每个控件的操作优先级;根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试。本发明实施例还公开了一种应用界面控件遍历测试装置。采用本发明实施例,可以提高测试的遍历效率以及控件测试的覆盖率。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种应用界面控件遍历测试方法及装置。
背景技术
在现有的自动化测试领域中,可以利用一些开源测试工具如monkey,这种工具的特点是不再像脚本那样过度依赖界面,能在任意应用甚至不同应用之间运行,其主要的操作是在指定的应用(可以是多个)中进行随机的点击,兼容性高,复用性强。但是,由于测试工具是基于坐标随机的在界面中点击,准确度和覆盖率就很难有所保证。
在现有技术方案中,目前对app控件遍历主要包括两种方式:深度遍历和广度遍历。如图1所示,图1是一种深度遍历方法的流程示意图。其中,操作界面上控件,判断跳转的下一个界面是否曾经遍历过,如果遍历过则返回上一个界面,如果没有遍历过,则开始遍历跳转后的界面。如图2所示,图2是一种广度遍历方法的流程示意图。其中,通过依次点击一个界面的控件,并将点击控件时发生变化的界面加入界面队列,并回到当前界面继续控件的遍历,直至完成当前界面的控件的遍历后,再依次进行界面队列中的界面的控件的遍历。
但是,以上两种方案存在如下问题,第一,强迫应用返回到上一个界面,如果在某些界面中无法返回到上一层界面,会认为这是一种异常情况而导致应用关闭、再重新启动,这会使得测试效率低下;并且高频的返回操作产生成本消耗,造成算法低效。第二,依次点击控件,没有考虑点击控件的时序性对遍历效果的影响,使得界面某些控件因操作的时序性而无法覆盖。
发明内容
本发明实施例提供一种应用界面控件遍历测试方法和装置。可以解决现有技术方案中测试效率低以及测试覆盖率低的问题。
本发明第一方面提供了一种应用界面控件遍历测试方法,包括:
在对应用界面进行测试时,获取所述应用界面中已遍历控件的历史控件信息以及所述应用界面上的多个控件;
根据所述已遍历控件的历史控件信息,确定所述应用界面上的多个控件中每个控件的操作优先级;
根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试。
其中,所述历史控件信息包括控件点击信息、跳转触发信息以及界面返回信息中的至少一种。
其中,所述根据所述已遍历控件的历史控件信息,确定所述应用界面上的所有控件中每个控件的操作优先级包括:
根据所述已遍历控件的历史控件信息,确定所述应用界面上的所述每个控件的多种操作控制状态;
根据所述每个控件的多种操作控制状态,确定所述每个控件的操作优先级。
其中,每种所述操作控制状态对应一个权重;
所述根据所述每个控件的多种操作控制状态,确定所述每个控件的操作优先级包括:
对所述每个控件的所述多种操作控制状态对应的权重进行相加,计算所述每个控件的分数值;
根据所述每个控件的分数值,确定所述每个控件的操作优先级。
其中,所述根据所述已遍历控件的历史控件信息,确定所述应用界面上的所述每个控件的多种操作控制状态包括:
确定所述应用界面上的所述多个控件中与所述已遍历控件相同的目标控件;
将所述应用界面上的所述目标控件的操作控制状态标识为所述已遍历控件的历史控件信息。
其中,所述根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试包括:
选取所述多个控件中所述操作优先级最高的控件进行测试。
其中,所述根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试包括:
若所述应用界面上存在所述操作优先级最高的多个控件,则随机选取所述多个控件中的目标控件进行测试。
其中,所述获取已遍历控件的历史控件信息包括:
获取终端自身记录的所述已遍历控件的历史控件信息;或/和
接收云端服务器发送的所述已遍历控件的历史控件信息。
其中,所述根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试之后,还包括:
向所述云端服务器发送所述应用界面上的目标控件的测试后的控件信息。
相应地,本发明第二方面提供了一种应用界面控件遍历测试装置,包括:
信息获取模块,用于在对应用界面进行测试时,获取所述应用界面中已遍历控件的历史控件信息以及所述应用界面上的多个控件;
优先级确定模块,用于根据所述已遍历控件的历史控件信息,确定所述应用界面上的多个控件中每个控件的操作优先级;
控件选取模块,用于根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试。
其中,所述历史控件信息包括控件点击信息、跳转触发信息以及界面返回信息中的至少一种。
其中,所述优先级确定模块具体用于:
根据所述已遍历控件的历史控件信息,确定所述应用界面上的所述每个控件的多种操作控制状态;
根据所述每个控件的多种操作控制状态,确定所述每个控件的操作优先级。
其中,每种所述操作控制状态对应一个权重;
所述优先级确定模块具体用于:
对所述每个控件的所述多种操作控制状态对应的权重进行相加,计算所述每个控件的分数值;
根据所述每个控件的分数值,确定所述每个控件的操作优先级。
其中,所述优先级确定模块具体用于:
确定所述应用界面上的所述多个控件中与所述已遍历控件相同的目标控件;
将所述应用界面上的所述目标控件的操作控制状态标识为所述已遍历控件的历史控件信息。
其中,所述控件选取模块具体用于:
选取所述多个控件中所述操作优先级最高的控件进行测试。
其中,所述控件选取模块具体用于:
若所述应用界面上存在所述操作优先级最高的多个控件,则随机选取所述多个控件中的目标控件进行测试。
其中,所述信息获取模块具体用于:
获取终端自身记录的所述已遍历控件的历史控件信息;或/和
接收云端服务器发送的所述已遍历控件的历史控件信息。
其中,所述装置还包括:
信息发送模块,用于向所述云端服务器发送所述应用界面上的目标控件的测试后的控件信息。
相应地,本发明第三方面提供了一种应用界面控件遍历测试装置,所述装置包括接口电路、存储器以及处理器,其中,所述存储器中存储一组程序代码,且所述处理器用于调用所述存储器中存储的程序代码,用于执行以下操作:
在对应用界面进行测试时,获取所述应用界面中已遍历控件的历史控件信息以及所述应用界面上的多个控件;
根据所述已遍历控件的历史控件信息,确定所述应用界面上的多个控件中每个控件的操作优先级;
根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试。
实施本发明实施例,首先在对所述应用界面进行测试时,获取已遍历控件的历史控件信息以及所述应用界面的多个控件;然后根据所述已遍历控件的历史控件信息,确定所述应用界面上的多个控件中每个控件的操作优先级;最后根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试。通过历史控件信息来选取控件进行遍历测试,避免点击控件后界面无法返回的情况,从而提高了遍历测试的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术方案提供的一种深度遍历方法的流程示意图;
图2是现有技术方案提供的一种广度遍历方法的流程示意图;
图3是本发明实施例提供的一种操作界面的显示示意图;
图4是本发明实施例提出的一种应用界面控件遍历测试方法的流程示意图;
图5是本发明实施例提供的一种操作优先级的排序示意图;
图6是本发明实施例提供的一种应用界面控件遍历测试装置的结构示意图;
图7是本发明另一实施例提供的一种应用界面控件遍历测试装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在实际应用中,当用户点击一个控件跳转到下一个界面之后,会出现不能返回上一个界面的情况,也有可能返回上一个界面但是界面控件发生变化的情况。大部分算法的实现都忽略了这个问题,虽然有些考虑到这个问题,但通常是将以上两种情况当作程序运行中发生了异常,采用关闭应用重新启动的方式解决。例如,如图3所示,当在B界面点击“发送消息”,跳转至C界面,此时假设C界面已全部遍历完毕需要返回B界面,只能模拟点击物理按键back,但跳转至D界面。或者,在C界面点击“消息”跳转至D界面,D界面已经进入过,在D界面点击back则返回桌面。这些问题都是由于界面A(或者D)与界面C是同一个Activity的不同Fragment。本发明实施例是根据应用界面布局唯一识别的界面,即对同一Activity下的多个应用界面赋予唯一界面标识,分别对多个应用界面进行遍历测试。
请参考图4,图4是本发明实施例提供的一种应用界面控件遍历测试方法的流程示意图。此方法可以应用于手机QQ(Android)、手机空间(Android)、QQ音乐(Android)等产品中。本发明实施例中的应用界面是根据应用的界面布局唯一识别的界面,即只要应用的界面布局不同,均被视为不同的应用界面。例如,如图3所示,虽然界面A、界面B、界面C和界面D同属于同一个Activity,但界面A、界面B、界面C和界面D的布局完全不同,因此将界面A、界面B、界面C和界面D视为不同的应用界面进行测试。如图所示,本发明实施例中的方法包括:
S401,在对应用界面进行测试时,获取所述应用界面中已遍历控件的历史控件信息以及所述应用界面上的多个控件。
具体实现中,可以获取终端自身记录的所述已遍历控件的历史控件信息;或/和接收云端服务器发送的所述已遍历控件的历史控件信息,其中,所述历史控件信息包括控件点击信息、跳转触发信息以及界面返回信息中的至少一种。
例如,在使用一个终端对软件的应用界面进行测试时,每次触发应用界面的一个控件测试完成之后,记录本次测试后的控件信息,包括本次测试控件的属性(如:控件标识)或属性值(如:控件的特征参数)、点击该控件之后界面是否发生跳转、控件树是否发生变化或是否返回之前的界面等等。在下一次选择应用界面上的控件进行测试时,首先获取先前记录的这些历史控件信息。
又如,当使用多个终端(终端A、终端B和终端C)同时或分时对同一应用界面进行测试时,终端A和终端B在随机选择该应用界面的控件测试后将测试后的控件信息上传到云端服务器。终端C在随机选择控件进行测试之前,可以获取终端A和终端B测试后上传到云端服务器的该应用界面上的控件的历史控件信息,并且获取自身记录的前几次测试后的历史控件信息。另外,终端C也可以将自身记录的测试后的控件信息上传到云端服务器,以供终端A和终端C测试时使用。
S402,根据所述已遍历控件的历史控件信息,确定所述应用界面上的多个控件中每个控件的操作优先级。其中,所述历史控件信息包括控件点击信息、跳转触发信息以及界面返回信息中的至少一种。
具体实现中,可以根据所述已遍历控件的历史控件信息,确定所述应用界面上的所述每个控件的多种操作控制状态;根据所述每个控件的多种操作控制状态,确定所述每个控件的操作优先级。
进一步的,可以首先确定所述应用界面上的所述多个控件中与所述已遍历控件相同的目标控件;将所述应用界面上的所述目标控件的操作控制状态标识为所述已遍历控件的历史控件信息,其中,每种所述操作控制状态对应一个权重。然后可以对所述每个控件的所述多种操作控制状态对应的权重进行相加,计算所述每个控件的分数值;根据所述每个控件的分数值,确定所述每个控件的操作优先级。
如图5所示,图5是本发明实施例提供的一种操作优先级的排序示意图。P1、P2和P3是由云端服务器提供给终端的已遍历的历史控件信息进行确认的操作优先级,P0、P4和P5是由终端自身记录的已遍历的历史控件信息确认的操作优先级。三个参考因素分别赋予不同的权重,控件被点击过为4、发生界面跳转/控件树变化为2、返回之前的界面为1。分别按照Score=4*f(操作过)+2*f(跳转或变化)+1*f(返回)计算各个控件的分数值。
例如,在使用一个终端对软件的应用界面进行测试时,应用界面上的多个控件包括控件1、控件2和控件3,在第一次选取控件1进行测试之后,已遍历控件的历史控件信息包括触发控件1会发生界面跳转、并返回之前的界面。在第二次选取控件2进行测试之后,已遍历控件的历史控件信息包括触发控件2会发生界面跳转、但不返回之前的界面。在第三次选取控件树上的控件测试时,首先根据已遍历控件的历史控件信息,确定控件3没有被点击过,因此控件3也不存在发生界面跳转以及返回之前的界面,控件1被点击过、会发生界面跳转、并返回之前的界面,控件2被点击过、会发生界面跳转、但不返回之前的界面。如图5所示,由于控件1被点击过、会发生界面跳转、并返回之前的界面,因此控件1的分数值为7;控件2被点击过、会发生界面跳转、但不返回之前的界面,因此控件2的分数值为6;控件3没有被点击过、也不存在发生界面跳转以及返回之前的界面,因此控件3的分数值为0。分数值越小的控件,操作优先级越高,分数值越大的控件,操作优先级越低,因此控件3的操作优先级最高,控件2的操作优先级次之,控件1的操作优先级最低。
又如,在使用多个终端(终端A、终端B和终端C)同时对软件的同一应用界面进行测试时,应用界面上的多个控件包括控件1、控件2、控件3和控件4,终端A对控件1进行了测试,触发控件1发生界面跳转,终端B对控件2进行了测试,触发控件2发生界面跳转,并且返回之前的界面,终端B和终端C将测试后的历史控件信息上报到云端服务器,终端C第一次测试时对控件3进行了测试,发生界面跳转。在终端C第二次测试时,首先从云端服务器获取终端A和终端B的已遍历的历史控件信息以及自身记录的历史控件信息,包括触发控件1发生界面跳转、触发控件2发生界面跳转并返回之前的界面、控件3已点击并发生界面跳转。因此,控件1的分数值为2,控件2的分数值为1,控件3的分数值为6、控件4的分数值为0,因此,控件4的操作优先级最高。
需要说明的是,本发明实施例不仅限于包括上述三种参考因素,也不仅限于按照4、2、1对三种参考因素进行赋值。
S403,根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试。
具体实现中,可以选取所述多个控件中所述操作优先级最高的控件进行测试。可选的,若所述应用界面上存在所述操作优先级最高的多个控件,则随机选取所述多个控件中的目标控件进行测试。从而保障遍历控件的时序性,提高遍历控件的覆盖率。
例如,在使用一个终端对软件的应用界面进行测试时,应用界面上的多个控件包括控件1、控件2和控件3,在第一次选取控件1进行测试之后,已遍历控件的历史控件信息包括触发控件1发生界面跳转、并返回之前的界面,而第二次测试时,确定控件1的分数值为7、控件2和控件3的分数值都为0,因控件2和控件3的操作优先级相同,此时需要随机选取控件2和控件3中的一个进行测试。
可选的,在根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试之后,可以向所述云端服务器发送所述应用界面上的目标控件的测试后的控件信息,其中,控件信息包括经过测试的控件的层次结构信息、控件的属性、属性值、界面跳转信息、界面返回信息等等。从而云端服务器将测试后的控件信息提供给其他终端,进而其他终端根据云端服务器提供的历史控件信息选择控件进行测试。
可选的,在根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试之后,确定应用界面上的控件是否已经遍历完成,如果已经控件遍历完成,则停止测试,如果控件没有遍历完成,则需要按照上述相同的方法选取应用界面上的其他控件进行测试。
在本发明实施例中,首先在对应用界面进行测试时,获取已遍历控件的历史控件信息以及所述应用界面的多个控件;然后根据所述已遍历控件的历史控件信息,确定所述应用界面上的多个控件中每个控件的操作优先级;最后根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试,通过历史控件信息来选取控件进行遍历测试,避免点击控件后界面无法返回的情况,从而提高了遍历测试的效率。
请参考图6,图6是本发明实施例提供的一种应用界面控件遍历测试装置的结构示意图。如图所示,本发明实施例中的装置包括:
信息获取模块601,用于在对应用界面进行测试时,获取所述应用界面中已遍历控件的历史控件信息以及所述应用界面上的多个控件。
具体实现中,可以获取终端自身记录的所述已遍历控件的历史控件信息;或/和接收云端服务器发送的所述已遍历控件的历史控件信息,其中,所述历史控件信息包括控件点击信息、跳转触发信息以及界面返回信息中的至少一种。
例如,在使用一个终端对软件的应用界面进行测试时,每次触发应用界面的一个控件测试完成之后,记录本次测试后的控件信息,包括本次测试控件的属性(如:控件标识)或属性值(如:控件的特征参数)、点击该控件之后界面是否发生跳转、控件树是否发生变化或是否返回之前的界面等等。在下一次选择应用界面上的控件进行测试时,首先获取先前记录的这些历史控件信息。
又如,当使用多个终端(终端A、终端B和终端C)同时或分时对同一应用界面进行测试时,终端A和终端B在随机选择该应用界面的控件测试后将测试后的控件信息上传到云端服务器。终端C在随机选择控件进行测试之前,可以获取终端A和终端B测试后上传到云端服务器的该应用界面上控件的历史控件信息,并且获取自身记录的前几次测试后的历史控件信息。另外,终端C也可以将自身记录的测试后的控件信息上传到云端服务器,以供终端A和终端C测试时使用。
优先级确定模块602,用于根据所述已遍历控件的历史控件信息,确定所述应用界面上的多个控件中每个控件的操作优先级。
具体实现中,可以根据所述已遍历控件的历史控件信息,确定所述应用界面上的所述每个控件的多种操作控制状态;根据所述每个控件的多种操作控制状态,确定所述每个控件的操作优先级。
进一步的,可以首先确定所述应用界面上的所述多个控件中与所述已遍历控件相同的目标控件;将所述应用界面上的所述目标控件的操作控制状态标识为所述已遍历控件的历史控件信息,其中,每种所述操作控制状态对应一个权重。然后可以对所述每个控件的所述多种操作控制状态对应的权重进行相加,计算所述每个控件的分数值;根据所述每个控件的分数值,确定所述每个控件的操作优先级。
如图5所示,图5是本发明实施例提供的一种操作优先级的排序示意图。P1、P2和P3是由云端服务器提供给终端的已遍历的历史控件信息进行确认的操作优先级,P0、P4和P5是由终端自身记录的已遍历的历史控件信息确认的操作优先级。三个参考因素分别赋予不同的权重,控件被点击过为4、发生界面跳转/控件树变化为2、返回之前的界面为1。分别按照Score=4*f(操作过)+2*f(跳转或变化)+1*f(返回)计算各个控件的分数值。
例如,在使用一个终端对软件的应用界面进行测试时,应用界面上的多个控件包括控件1、控件2和控件3,在第一次选取控件1进行测试之后,已遍历控件的历史控件信息包括触发控件1会发生界面跳转、并返回之前的界面。在第二次选取控件2进行测试之后,已遍历控件的历史控件信息包括触发控件2会发生界面跳转、但不返回之前的界面。在第三次选取控件树上的控件测试时,首先根据已遍历控件的历史控件信息,确定控件3没有被点击过,因此控件3也不存在发生界面跳转以及返回之前的界面,控件1被点击过、会发生界面跳转、并返回之前的界面,控件2被点击过、会发生界面跳转、但不返回之前的界面。如图5所示,由于控件1被点击过、会发生界面跳转、并返回之前的界面,因此控件1的分数值为7;控件2被点击过、会发生界面跳转、但不返回之前的界面,因此控件2的分数值为6;控件3没有被点击过、也不存在发生界面跳转以及返回之前的界面,因此控件3的分数值为0。分数值越小的控件,操作优先级越高,分数值越大的控件,操作优先级越低,因此控件3的操作优先级最高,控件2的操作优先级次之,控件1的操作优先级最低。
又如,在使用多个终端(终端A、终端B和终端C)同时对软件的同一应用界面进行测试时,应用界面上的多个控件包括控件1、控件2、控件3和控件4,终端A对控件1进行了测试,触发控件1发生界面跳转,终端B对控件2进行了测试,触发控件2发生界面跳转,并且返回之前的界面,终端B和终端C将测试后的历史控件信息上报到云端服务器,终端C第一次测试时对控件3进行了测试,发生界面跳转。在终端C第二次测试时,首先从云端服务器获取终端A和终端B的已遍历的历史控件信息以及自身记录的历史控件信息,包括触发控件1发生界面跳转、触发控件2发生界面跳转并返回之前的界面、控件3已点击并发生界面跳转。因此,控件1的分数值为2,控件2的分数值为1,控件3的分数值为6、控件4的分数值为0,因此,控件4的操作优先级最高。
需要说明的是,本发明实施例不仅限于包括上述三种参考因素,也不仅限于按照4、2、1对三种参考因素进行赋值。
控件选取模块603,用于根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试。
具体实现中,可以选取所述多个控件中所述操作优先级最高的控件进行测试。可选的,若所述应用界面上存在所述操作优先级最高的多个控件,则随机选取所述多个控件中的目标控件进行测试。从而保障遍历控件的时序性,提高遍历控件的覆盖率。
例如,在使用一个终端对软件的应用界面进行测试时,应用界面上的多个控件包括控件1、控件2和控件3,在第一次选取控件1进行测试之后,已遍历控件的历史控件信息包括触发控件1发生界面跳转、并返回之前的界面,而第二次测试时,确定控件1的分数值为7、控件2和控件3的分数值都为0,因控件2和控件3的操作优先级相同,此时需要随机选取控件2和控件3中的一个进行测试。
可选的,在根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试之后,可以向所述云端服务器发送所述应用界面上的目标控件的测试后的控件信息,其中,控件信息包括经过测试的控件的层次结构信息、控件的属性、属性值、界面跳转信息、界面返回信息等等。从而云端服务器将测试后的控件信息提供给其他终端,进而其他终端根据云端服务器提供的历史控件信息选择控件进行测试。
可选的,在根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试之后,确定应用界面上的控件是否已经遍历完成,如果已经控件遍历完成,则停止测试,如果控件没有遍历完成,则需要按照上述相同的方法选取应用界面上的其他控件进行测试。
在本发明实施例中,首先在对所述应用界面进行测试时,获取已遍历控件的历史控件信息以及所述应用界面的多个控件;然后根据所述已遍历控件的历史控件信息,确定所述应用界面上的多个控件中每个控件的操作优先级;最后根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试,通过历史控件信息来选取控件进行遍历测试,避免点击控件后界面无法返回的情况,从而提高了遍历测试的效率。
请参考图7,图7是本发明另一实施例提供的一种应用界面控件遍历测试装置的结构示意图。如图所示,该装置可以包括:至少一个处理器701,例如CPU,至少一个通信接口702,至少一个存储器703,至少一个总线707。其中,总线707用于实现这些组件之间的连接通信。其中,本发明实施例中装置的通信接口702是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他节点设备进行信令或数据的通信。存储器703可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器703可选的还可以是至少一个位于远离前述处理器701的存储装置。存储器703中存储一组程序代码,且处理器701用于调用存储器中存储的程序代码,用于执行以下操作:
在对应用界面进行测试时,获取所述应用界面中已遍历控件的历史控件信息以及所述应用界面上的多个控件;
根据所述已遍历控件的历史控件信息,确定所述应用界面上的多个控件中每个控件的操作优先级;
根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试。
其中,所述历史控件信息包括控件点击信息、跳转触发信息以及界面返回信息中的至少一种。
其中,处理器701还用于执行如下操作步骤:
根据所述已遍历控件的历史控件信息,确定所述应用界面上的所述每个控件的多种操作控制状态;
根据所述每个控件的多种操作控制状态,确定所述每个控件的操作优先级。
其中,每种所述操作控制状态对应一个权重;
其中,处理器701还用于执行如下操作步骤:
对所述每个控件的所述多种操作控制状态对应的权重进行相加,计算所述每个控件的分数值;
根据所述每个控件的分数值,确定所述每个控件的操作优先级。
其中,处理器701还用于执行如下操作步骤:
确定所述应用界面上的所述多个控件中与所述已遍历控件相同的目标控件;
将所述应用界面上的所述目标控件的操作控制状态标识为所述已遍历控件的历史控件信息。
其中,处理器701还用于执行如下操作步骤:
选取所述多个控件中所述操作优先级最高的控件进行测试。
其中,处理器701还用于执行如下操作步骤:
若所述应用界面上存在所述操作优先级最高的多个控件,则随机选取所述多个控件中的目标控件进行测试。
其中,处理器701还用于执行如下操作步骤:
获取终端自身记录的所述已遍历控件的历史控件信息;或/和
接收云端服务器发送的所述已遍历控件的历史控件信息。
其中,处理器701还用于执行如下操作步骤:
向所述云端服务器发送所述应用界面上的目标控件的测试后的控件信息。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本发明实施例所提供的内容下载方法及相关设备、系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (19)
1.一种应用界面控件遍历测试方法,其特征在于,所述方法包括:
在对应用界面进行测试时,获取所述应用界面中已遍历控件的历史控件信息以及所述应用界面上的多个控件;
根据所述已遍历控件的历史控件信息,确定所述应用界面上的多个控件中每个控件的操作优先级;
根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试。
2.如权利要求1所述的方法,其特征在于,所述历史控件信息包括控件点击信息、跳转触发信息以及界面返回信息中的至少一种。
3.如权利要求2所述的方法,其特征在于,所述根据所述已遍历控件的历史控件信息,确定所述应用界面上的所有控件中每个控件的操作优先级包括:
根据所述已遍历控件的历史控件信息,确定所述应用界面上的所述每个控件的多种操作控制状态;
根据所述每个控件的多种操作控制状态,确定所述每个控件的操作优先级。
4.如权利要求3所述的方法,其特征在于,每种所述操作控制状态对应一个权重;
所述根据所述每个控件的多种操作控制状态,确定所述每个控件的操作优先级包括:
对所述每个控件的所述多种操作控制状态对应的权重进行相加,计算所述每个控件的分数值;
根据所述每个控件的分数值,确定所述每个控件的操作优先级。
5.如权利要求3所述的方法,其特征在于,所述根据所述已遍历控件的历史控件信息,确定所述应用界面上的所述每个控件的多种操作控制状态包括:
确定所述应用界面上的所述多个控件中与所述已遍历控件相同的目标控件;
将所述应用界面上的所述目标控件的操作控制状态标识为所述已遍历控件的历史控件信息。
6.如权利要求1-5任意一项所述的方法,其特征在于,所述根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试包括:
选取所述多个控件中所述操作优先级最高的控件进行测试。
7.如权利要求1-5任意一项所述的方法,其特征在于,所述根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试包括:
若所述应用界面上存在所述操作优先级最高的多个控件,则随机选取所述多个控件中的目标控件进行测试。
8.如权利要求1所述的方法,其特征在于,所述获取已遍历控件的历史控件信息包括:
获取终端自身记录的所述已遍历控件的历史控件信息;或/和
接收云端服务器发送的所述已遍历控件的历史控件信息。
9.如权利要求8所述的方法,其特征在于,所述根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试之后,还包括:
向所述云端服务器发送所述应用界面上的目标控件的测试后的控件信息。
10.一种应用界面控件遍历测试装置,其特征在于,所述装置包括:
信息获取模块,用于在对应用界面进行测试时,获取所述应用界面中已遍历控件的历史控件信息以及所述应用界面上的多个控件;
优先级确定模块,用于根据所述已遍历控件的历史控件信息,确定所述应用界面上的多个控件中每个控件的操作优先级;
控件选取模块,用于根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试。
11.如权利要求10所述的装置,其特征在于,所述历史控件信息包括控件点击信息、跳转触发信息以及界面返回信息中的至少一种。
12.如权利要求10所述的装置,其特征在于,所述优先级确定模块具体用于:
根据所述已遍历控件的历史控件信息,确定所述应用界面上的所述每个控件的多种操作控制状态;
根据所述每个控件的多种操作控制状态,确定所述每个控件的操作优先级。
13.如权利要求12所述的装置,其特征在于,每种所述操作控制状态对应一个权重;
所述优先级确定模块具体用于:
对所述每个控件的所述多种操作控制状态对应的权重进行相加,计算所述每个控件的分数值;
根据所述每个控件的分数值,确定所述每个控件的操作优先级。
14.如权利要求12所述的装置,其特征在于,所述优先级确定模块具体用于:
确定所述应用界面上的所述多个控件中与所述已遍历控件相同的目标控件;
将所述应用界面上的所述目标控件的操作控制状态标识为所述已遍历控件的历史控件信息。
15.如权利要求10-14任意一项所述的装置,其特征在于,所述控件选取模块具体用于:
选取所述多个控件中所述操作优先级最高的控件进行测试。
16.如权利要求10-14所述的装置,其特征在于,所述控件选取模块具体用于:
若所述应用界面上存在所述操作优先级最高的多个控件,则随机选取所述多个控件中的目标控件进行测试。
17.如权利要求10所述的装置,其特征在于,所述信息获取模块具体用于:
获取终端自身记录的所述已遍历控件的历史控件信息;或/和
接收云端服务器发送的所述已遍历控件的历史控件信息。
18.如权利要求17所述的装置,其特征在于,所述装置还包括:
信息发送模块,用于向所述云端服务器发送所述应用界面上的目标控件的测试后的控件信息。
19.一种应用界面控件遍历测试装置,其特征在于,所述装置包括接口电路、存储器以及处理器,其中,所述存储器中存储一组程序代码,且所述处理器用于调用所述存储器中存储的程序代码,用于执行以下操作:
在对应用界面进行测试时,获取所述应用界面中已遍历控件的历史控件信息以及所述应用界面上的多个控件;
根据所述已遍历控件的历史控件信息,确定所述应用界面上的多个控件中每个控件的操作优先级;
根据所述每个控件的操作优先级,选取所述应用界面上的目标控件进行测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710157662.3A CN108628732B (zh) | 2017-03-16 | 2017-03-16 | 一种应用界面控件遍历测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710157662.3A CN108628732B (zh) | 2017-03-16 | 2017-03-16 | 一种应用界面控件遍历测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108628732A true CN108628732A (zh) | 2018-10-09 |
CN108628732B CN108628732B (zh) | 2023-04-18 |
Family
ID=63686834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710157662.3A Active CN108628732B (zh) | 2017-03-16 | 2017-03-16 | 一种应用界面控件遍历测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108628732B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078556A (zh) * | 2019-12-17 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 应用测试方法及装置 |
CN111694756A (zh) * | 2020-07-31 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 一种应用程序测试方法及装置 |
CN112527689A (zh) * | 2021-02-09 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 应用测试方法、装置及存储介质 |
CN113342682A (zh) * | 2021-06-29 | 2021-09-03 | 上海闻泰信息技术有限公司 | 系统兼容性测试方法及装置 |
CN114297700A (zh) * | 2021-11-11 | 2022-04-08 | 北京邮电大学 | 动静态结合的移动应用隐私协议提取方法及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131824A1 (en) * | 2008-11-26 | 2010-05-27 | Broadcom Corporation | Handling burst error events with interleaved Reed-Solomon (RS) codes |
CN104598380A (zh) * | 2015-01-16 | 2015-05-06 | 广东欧珀移动通信有限公司 | 一种基于控件的自动化测试方法及系统 |
CN105468529A (zh) * | 2015-12-15 | 2016-04-06 | 北京奇虎科技有限公司 | 一种安卓应用ui控件精准遍历方法和装置 |
CN105988934A (zh) * | 2016-02-01 | 2016-10-05 | 腾讯科技(深圳)有限公司 | 手游自动化检测方法及装置 |
CN106067125A (zh) * | 2016-06-03 | 2016-11-02 | 武汉大学 | 一种Android平台的结构型广告欺骗检测方法及系统 |
-
2017
- 2017-03-16 CN CN201710157662.3A patent/CN108628732B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131824A1 (en) * | 2008-11-26 | 2010-05-27 | Broadcom Corporation | Handling burst error events with interleaved Reed-Solomon (RS) codes |
CN104598380A (zh) * | 2015-01-16 | 2015-05-06 | 广东欧珀移动通信有限公司 | 一种基于控件的自动化测试方法及系统 |
CN105468529A (zh) * | 2015-12-15 | 2016-04-06 | 北京奇虎科技有限公司 | 一种安卓应用ui控件精准遍历方法和装置 |
CN105988934A (zh) * | 2016-02-01 | 2016-10-05 | 腾讯科技(深圳)有限公司 | 手游自动化检测方法及装置 |
CN106067125A (zh) * | 2016-06-03 | 2016-11-02 | 武汉大学 | 一种Android平台的结构型广告欺骗检测方法及系统 |
Non-Patent Citations (4)
Title |
---|
SHENGBO CHEN等: "Towards Practical Modeling of Web Applications and Generating Tests" * |
受绵绵的小萌软: "SmartMonkey--UI遍历", 《HTTPS://BLOG.CSDN.NET/YANGXIN09/ARTICLE/DETAILS/52601991》 * |
杨毅: "GUI测试工具关键技术研究与实现" * |
龙晓锋: "稳定性测试|探索优化App UI遍历方法-SmartMonkey", 《MTC.BAIDU.COM/ACADEMY/DETAIL/ARTICLE/118》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078556A (zh) * | 2019-12-17 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 应用测试方法及装置 |
CN111078556B (zh) * | 2019-12-17 | 2023-10-13 | 腾讯科技(深圳)有限公司 | 应用测试方法及装置 |
CN111694756A (zh) * | 2020-07-31 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 一种应用程序测试方法及装置 |
CN112527689A (zh) * | 2021-02-09 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 应用测试方法、装置及存储介质 |
CN112527689B (zh) * | 2021-02-09 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 应用测试方法、装置及存储介质 |
CN113342682A (zh) * | 2021-06-29 | 2021-09-03 | 上海闻泰信息技术有限公司 | 系统兼容性测试方法及装置 |
CN114297700A (zh) * | 2021-11-11 | 2022-04-08 | 北京邮电大学 | 动静态结合的移动应用隐私协议提取方法及相关设备 |
CN114297700B (zh) * | 2021-11-11 | 2022-09-23 | 北京邮电大学 | 动静态结合的移动应用隐私协议提取方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108628732B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108628732A (zh) | 一种应用界面控件遍历测试方法及装置 | |
US11184241B2 (en) | Topology-aware continuous evaluation of microservice-based applications | |
CN111104635B (zh) | 一种表格网页的生成方法和装置 | |
CN106155699B (zh) | 一种后台进程的管理方法及移动终端 | |
CN105893044B (zh) | 图标生成方法及装置 | |
CN110990233B (zh) | 一种利用甘特图展示soar的方法和系统 | |
US9875137B2 (en) | Intelligent application back stack management | |
CN107733710A (zh) | 链路调用关系的构建方法、装置、计算机设备及存储介质 | |
CN111782317A (zh) | 页面的测试方法和装置、存储介质和电子装置 | |
CN112464497B (zh) | 基于分布式系统的故障演练方法、装置、设备及介质 | |
CN110059472A (zh) | 菜单权限配置方法、装置、设备及可读存储介质 | |
CN107908469A (zh) | 一种任务调度方法及系统 | |
CN112003754A (zh) | 一种OpenStack集群的可视化节点注册方法 | |
CN112838937A (zh) | 一种自定义网络拓扑的处理方法及系统 | |
CN110308954A (zh) | 点击事件拦截方法、装置及移动终端 | |
CN103530180B (zh) | 应用程序的存储空间切换方法及装置 | |
CN106790768B (zh) | 一种dns服务器设置方法及移动终端 | |
CN108733440A (zh) | 界面图标配置方法、装置及终端设备 | |
US11861133B1 (en) | Apparatus and methods of analyzing status of computing servers | |
CN112905449A (zh) | 目标测试方法、装置、设备和存储介质 | |
CN108509118A (zh) | 时间段的选择方法、装置、计算机设备及存储介质 | |
CN110443568A (zh) | 服务器配件管理方法及装置、存储介质 | |
CN104462116A (zh) | 数据选择的方法及装置 | |
CN108595168A (zh) | 自动打点方法、装置、可读存储介质及设备 | |
CN114254600B (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 | ||
GR01 | Patent grant |