子元素测试方法及装置与流程

文档序号:12464168阅读:167来源:国知局
子元素测试方法及装置与流程

本发明涉及网络技术领域,特别涉及一种子元素测试方法及装置。



背景技术:

随着网络技术的发展,终端可以显示各种页面,每个页面中包括多个元素,例如列表元素、文本元素、图像元素等。为了保证页面能够正常工作,测试终端需要对页面中的元素进行测试。

由于页面中包括多个元素,在进行测试的过程中,为了区分不同的元素,测试终端需要获取目标元素标识,根据目标元素标识从页面中的所有元素中提取与该目标元素标识对应的待测试元素,对该待测试元素进行测试。即,由测试终端显示页面,模拟终端对页面中该待测试元素执行的操作。

在实现本发明的过程中,发明人发现相关技术至少存在以下问题:

由于应用页面中包括属于不同类别的多个子元素,属于相同类别的子元素对应的子元素标识相同,因此仅根据子元素标识,无法区分属于相同类别的多个子元素,导致无法识别和定位子元素,也就无法对子元素进行测试。



技术实现要素:

为了解决相关技术的问题,本发明实施例提供了一种子元素测试方法及装置。所述技术方案如下:

一方面,提供了一种子元素测试方法,所述方法包括:

获取第一页面中的目标子元素标识,所述第一页面包括至少一个元素,每个元素包括至少一个子元素,子元素标识用于标识子元素的类别,属于相同类别的子元素对应的子元素标识相同;

根据所述目标子元素标识,确定目标集合,所述目标集合中包括所述第一页面中与所述目标子元素标识对应的多个子元素;

根据确定的索引值,从所述目标集合中提取目标子元素,所述索引值用于指示目标子元素在所述目标集合中的位置;

对所述目标子元素进行模拟操作,得到所述模拟操作的测试结果,所述测试结果用于与理论结果进行比较,以判断所述目标子元素是否正常工作。

在一种可能的实现方式中,所述根据确定的索引值,从所述目标集合中提取目标子元素,包括:

获取所述目标集合的长度,根据所述长度确定索引值的取值范围;

遍历所述取值范围内的每个索引值,根据当前遍历到的索引值,从所述目标集合中提取目标子元素。

在另一种可能的实现方式中,所述根据所述长度确定索引值的取值范围,包括:

将预设初始值作为所述取值范围的最小值,根据所述最小值和所述长度确定所述取值范围的最大值,并根据所述最小值和所述最大值确定所述取值范围。

在另一种可能的实现方式中,所述对所述目标子元素进行模拟操作,得到所述模拟操作的测试结果,包括:

对所述目标子元素进行模拟点击操作,得到所述模拟点击操作的点击测试结果,所述点击测试结果用于与点击理论结果进行比较,以判断所述目标子元素被点击时是否正常工作。

在另一种可能的实现方式中,所述对所述目标子元素进行模拟操作,得到所述模拟操作的测试结果,包括:

对所述目标子元素进行模拟显示操作,得到所述模拟显示操作的显示测试结果,所述显示测试结果用于与显示理论结果进行比较,以判断所述目标子元素是否正常显示。

在另一种可能的实现方式中,所述方法还包括:

对所述第一页面进行模拟滑动操作,获取与所述第一页面关联的第二页面,所述第二页面包括所述第一页面向上滑动时的页面、所述第一页面向下滑动时的页面、所述第一页面向左滑动时的页面和所述第一页面向右滑动时的页面中的任一项;

根据所述第二页面中的目标子元素标识,对所述第二页面中的目标子元素进行测试。

另一方面,提供了一种子元素测试装置,所述装置包括:

第一获取模块,用于获取第一页面中的目标子元素标识,所述第一页面包括至少一个元素,每个元素包括至少一个子元素,子元素标识用于标识子元素的类别,属于相同类别的子元素对应的子元素标识相同;

确定模块,用于根据所述目标子元素标识,确定目标集合,所述目标集合中包括所述第一页面中与所述目标子元素标识对应的多个子元素;

提取模块,用于根据确定的索引值,从所述目标集合中提取目标子元素,所述索引值用于指示目标子元素在所述目标集合中的位置;

第一测试模块,用于对所述目标子元素进行模拟操作,得到所述模拟操作的测试结果,所述测试结果用于与理论结果进行比较,以判断所述目标子元素是否正常工作。

在一种可能的实现方式中,所述提取模块,包括:

获取单元,用于获取所述目标集合的长度;

确定单元,用于根据所述长度确定索引值的取值范围;

提取单元,用于遍历所述取值范围内的每个索引值,根据当前遍历到的索引值,从所述目标集合中提取目标子元素。

在另一种可能的实现方式中,所述确定单元,还用于将预设初始值作为所述取值范围的最小值,根据所述最小值和所述长度确定所述取值范围的最大值,并根据所述最小值和所述最大值确定所述取值范围。

在另一种可能的实现方式中,所述第一测试模块,还用于对所述目标子元素进行模拟点击操作,得到所述模拟点击操作的点击测试结果,所述点击测试结果用于与点击理论结果进行比较,以判断所述目标子元素被点击时是否正常工作。

在另一种可能的实现方式中,其特征在于,所述第一测试模块,还用于对所述目标子元素进行模拟显示操作,得到所述模拟显示操作的显示测试结果,所述显示测试结果用于与显示理论结果进行比较,以判断所述目标子元素是否正常显示。

在另一种可能的实现方式中,所述装置还包括:

第二获取模块,用于对所述第一页面进行模拟滑动操作,获取与所述第一页面关联的第二页面,所述第二页面包括所述第一页面向上滑动时的页面、所述第一页面向下滑动时的页面、所述第一页面向左滑动时的页面和所述第一页面向右滑动时的页面中的任一项;

第二测试模块,用于根据所述第二页面中的目标子元素标识,对所述第二页面中的目标子元素进行测试。

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

本发明实施例提供的方法,考虑到属于相同类别的子元素对应的子元素标识相同,通过获取第一页面中的目标子元素标识,根据该目标子元素标识确定目标集合,根据确定的索引值,从该目标集合中提取目标子元素,对该目标子元素进行模拟操作,得到该模拟操作的测试结果,该测试结果用于与理论结果进行比较,以判断该目标子元素是否正常工作。能根据目标子元素标识,将不同元素中属于相同类别的多个子元素集成于同一目标集合中,从而以索引值指示子元素在目标集合中的位置,根据确定的索引值准确识别和定位目标子元素,进而对该目标子元素进行测试,扩展了测试功能。

附图说明

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

图1是本发明实施例提供的子元素测试方法的流程图;

图2是本发明实施例提供的子元素测试方法的流程图;

图3是本发明实施例提供的歌曲排行榜页面的示意图;

图4是本发明实施例提供的子元素测试装置的结构示意图;

图5是本发明实施例提供的子元素测试装置的结构示意图;

图6是本发明实施例提供的子元素测试装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是本发明实施例提供的一种子元素测试方法的流程图,本发明实施例应用于测试终端中,如图1所示,该子元素测试方法包括以下步骤:

101、获取第一页面中的目标子元素标识,该第一页面包括至少一个元素,每个元素包括至少一个子元素,子元素标识用于标识子元素的类别,不同元素中属于相同类别的子元素对应的子元素标识相同。

102、根据该目标子元素标识,确定目标集合,该目标集合中包括该第一页面中与该目标子元素标识对应的多个子元素。

103、根据确定的索引值,从该目标集合中提取目标子元素,该索引值用于指示目标子元素在该目标集合中的位置。

104、对该目标子元素进行模拟操作,得到该模拟操作的测试结果,该测试结果用于与理论结果进行比较,以判断该目标子元素是否正常工作。

本发明实施例提供的方法,考虑到属于相同类别的子元素对应的子元素标识相同,通过获取第一页面中的目标子元素标识,根据该目标子元素标识确定目标集合,根据确定的索引值,从该目标集合中提取目标子元素,对该目标子元素进行模拟操作,得到该模拟操作的测试结果,该测试结果用于与理论结果进行比较,以判断该目标子元素是否正常工作。能根据目标子元素标识,将不同元素中属于相同类别的多个子元素集成于同一目标集合中,从而以索引值指示子元素在目标集合中的位置,根据确定的索引值准确识别和定位目标子元素,进而对该目标子元素进行测试,扩展了测试功能。

在一种可能的实现方式中,该根据确定的索引值,从该目标集合中提取目标子元素,包括:

获取该目标集合的长度,根据该长度确定索引值的取值范围;

遍历该取值范围内的每个索引值,根据当前遍历到的索引值,从该目标集合中提取目标子元素。

在另一种可能的实现方式中,该根据该长度确定索引值的取值范围,包括:

将预设初始值作为该取值范围的最小值,根据该最小值和该长度确定该取值范围的最大值,并根据该最小值和该最大值确定该取值范围。

在另一种可能的实现方式中,该对该目标子元素进行模拟操作,得到该模拟操作的测试结果,包括:

对该目标子元素进行模拟点击操作,得到该模拟点击操作的点击测试结果,该点击测试结果用于与点击理论结果进行比较,以判断该目标子元素被点击时是否正常工作。

在另一种可能的实现方式中,该对该目标子元素进行模拟操作,得到该模拟操作的测试结果,包括:

对该目标子元素进行模拟显示操作,得到该模拟显示操作的显示测试结果,该显示测试结果用于与显示理论结果进行比较,以判断该目标子元素是否正常显示。

在另一种可能的实现方式中,该方法还包括:

对该第一页面进行模拟滑动操作,获取与该第一页面关联的第二页面,该第二页面包括该第一页面向上滑动时的页面、该第一页面向下滑动时的页面、该第一页面向左滑动时的页面和该第一页面向右滑动时的页面中的任一项;

根据该第二页面中的目标子元素标识,对该第二页面中的目标子元素进行测试。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

图2是根据一示例性实施例示出的一种子元素测试方法的流程图,本发明实施例的执行主体为测试终端,如图2所示,该子元素测试方法包括以下步骤:

201、测试终端获取第一页面中的目标子元素标识,根据该目标子元素标识,确定目标集合。

相关技术中,待测试的页面中包括至少一个元素,而每个元素可以包括至少一个子元素。其中,每个元素具有一个元素标识,每个子元素具有一个子元素标识,子元素标识用于标识子元素的类别,属于相同类别的子元素的子元素标识相同。

在对页面进行测试的过程中,测试终端不能通过肉眼和思维识别不同元素或不同子元素,因此,测试终端测试时会先获取目标元素标识,根据目标元素标识确定待测试的元素。但是,由于属于相同类别的子元素对应的子元素标识相同,导致测试终端仅根据目标子元素标识,无法区分属于相同类别的多个子元素,进而导致无法对子元素进行测试。

图3是一个歌曲排行榜页面的示意图,该歌曲排行榜页面包括三个歌曲元素,每个歌曲元素均包括属于歌曲名称、歌手名称和歌曲类型这三种类别的子元素,三个歌曲元素的标识分别为“歌曲1”“歌曲2”“歌曲3”,每个歌曲元素和该歌曲元素包括的子元素的关系可以如下表1所示。那么,当测试终端需要测试子元素“周杰伦”时,根据子元素标识“Singer”,无法区分“周杰伦”、“筷子兄弟”“凤凰传奇”,导致无法对“周杰伦”进行测试。

表1

而在本发明实施例中,测试终端可以将属于相同类别的多个子元素集成于同一目标集合中,根据子元素在目标集合中的不同位置,准确识别和定位目标子元素,进而对该目标子元素进行测试。

具体地,以对第一页面进行测试为例,测试终端可以获取第一页面中的目标子元素标识,根据该目标子元素标识,确定目标集合,该目标集合中包括该第一页面中与该目标子元素标识对应的多个子元素。

其中,该测试终端可以为手机、平板电脑等,该测试终端的操作系统可以为安卓操作系统、iOS(苹果移动操作系统)、FirefoxOS(火狐移动操作系统)等。该第一页面为可以显示于测试终端上的任一页面,可以为应用页面、网页页面等,当然也可以为其他类型的页面。

第一页面中包括至少一个元素,该至少一个元素可以包括列表元素、文本元素、声音元素、按钮元素等。进一步地,每个元素可以包括至少一个子元素,该至少一个子元素可以包括声音子元素、图片子元素、文本子元素等。

其中,每个元素具有一个元素标识,每个子元素具有一个子元素标识。该元素标识用于唯一确定该第一页面中的元素,可以为元素的名称、图案、URL(Uniform Resoure Locator,统一资源定位符)等,该子元素标识用于标识子元素的类别,可以为类别的名称或者为类别分配的编号等,属于相同类别的子元素的子元素标识相同。

那么,当测试终端要对该第一页面中属于某一类别的子元素进行测试时,获取待测试的目标子元素标识,根据该目标子元素标识,确定目标集合,该目标集合中包括该第一页面中与该目标子元素标识对应的多个子元素。

进一步地,该测试终端可以调用集合获取函数获取该目标集合,该集合获取函数用于获取同一子元素标识对应的所有子元素,并构成一个集合。该集合获取函数的输入参数为目标子元素标识,输出参数为目标集合,则当该测试终端向该集合获取函数传入目标子元素标识后,该集合获取函数能够返回目标集合。

例如,该集合获取函数可以为Get Elements函数,该测试终端可以调用该Get Elements函数获取目标集合。例如,基于上述表1的例子,测试终端向该Get Elements函数传入目标子元素标识“Singer”,该Get Elements函数返回歌手名称集合,该歌手名称集合为{“周杰伦”、“筷子兄弟”、“凤凰传奇”}。

202、测试终端获取该目标集合的长度,根据该长度确定索引值的取值范围。

关于获取目标集合长度的过程,该测试终端可以调用长度获取函数获取该目标集合的长度。该长度获取函数的输入参数为目标集合,输出参数为目标集合的长度,则当该测试终端向该长度获取函数传入目标集合后,该长度获取函数能够返回目标集合的长度。

例如,该长度获取函数可以为Get Length函数,该测试终端可以调用Get Length函数获取该目标集合的长度。例如,基于上述表1的例子,该测试终端可以向该Get Length函数传入歌手名称集合{“周杰伦”、“筷子兄弟”、“凤凰传奇”},则该Get Length函数输出该歌手名称集合的长度3。

关于根据长度确定索引值的取值范围的过程:为了识别和定位目标子元素,测试终端需要确定目标子元素在目标集合的位置,因此,测试终端需要获取索引值,该索引值用于指示目标子元素在该目标集合的位置。

该索引值的取值范围根据该目标集合的长度确定,测试终端在获取目标集合的长度后,可以将预设初始值作为该取值范围的最小值,该预设初始值可以为0、1等,测试终端可以根据该最小值和该长度确定该取值范围的最大值,例如可以将该最小值和该长度相加并减一,得到该最大值。

测试终端在得到该索引值的最小值和最大值后,可以根据该最小值和该最大值确定该取值范围。需要说明的是,由于索引值为整数,因此索引值的取值范围当然也限于整数范围的数。相邻索引值之间的差值固定,例如可以为1,则该取值范围可以为(1,2,3)。

基于上述步骤201中表1的例子,在该歌手名称集合为{“周杰伦”、“筷子兄弟”、“凤凰传奇”}中,索引值的最小值可以为1,则子元素“周杰伦”的索引值为1,子元素“筷子兄弟”的索引值为2,“凤凰传奇”的索引值为3。

203、测试终端遍历该取值范围内的每个索引值,根据当前遍历到的索引值,从该目标集合中提取目标子元素。

该测试终端可以确定集合提取函数,该集合提取函数用于从目标集合中提取目标子元素。该集合提取函数的输入参数为索引值和目标集合,该集合提取函数的输出参数为目标子元素,则当该测试终端向该集合提取函数传入索引值和目标集合后,该集合提取函数可以根据确定的索引值,返回与该索引值对应的目标子元素。

具体地,该集合提取函数的代码可以如下:

Def select element(self,elements,index)

{

%注释:select element为集合提取函数的名称,elements为目标集合,index为索引值,element为目标子元素

element=elements[int(index)]

Return element

}

基于上述表1的例子,该测试终端可以向集合提取函数传入歌手名称集合{“周杰伦”、“筷子兄弟”、“凤凰传奇”}和索引值2,则该集合提取函数将返回“筷子兄弟”。

204、测试终端对该目标子元素进行模拟操作,得到该模拟操作的测试结果,并继续遍历该取值范围内的下一个索引值,执行步骤203-204,对下一个目标子元素进行测试,直至当前索引值超过该取值范围时停止。

优选地,该测试终端可以调用循环控制函数,该循环控制函数的输入参数为控制变量、控制变量的取值范围、控制变量的调整方式和模拟操作的类型,且该循环控制函数中包括当前的控制变量处于该取值范围时执行模拟操作。

那么,该测试终端可以将索引值作为该循环控制函数的控制变量,向该循环控制函数传入索引值、索引值的取值范围、索引值的调整方式和模拟操作类型,通过该循环控制函数,根据当前的索引值从目标集合中提取目标子元素,对该目标子元素进行模拟操作,得到该模拟操作的测试结果,并根据该调整方式获取该取值范围内的下一个索引值,直到索引值超过该取值范围时,才不再执行循环过程。通过循环控制函数,该测试终端可以对该目标集合中处于不同位置的所有目标子元素依次进行测试。

其中,该循环控制函数可以为for函数、while函数等,本发明实施例对此不做限定。

关于测试终端对该目标子元素进行模拟操作的过程,是指为了测试该第一页面中的各个目标子元素能否正常工作,通常由测试终端显示该第一页面,模拟终端对该第一页面中的各个目标子元素执行的操作。例如,可以对按钮控件执行点击操作,对文本控件执行显示操作,对声音数据执行播放操作等。测试终端通过模拟不同类型的操作可以对该目标子元素的不同功能进行测试,本发明实施例对此不做限定。

在对该目标子元素进行模拟操作后,测试终端可以得到该模拟操作的测试结果。该测试结果与该模拟操作对应,该测试结果用于与理论结果进行比较,以判断该目标子元素能否正常工作。相应地,该测试结果也可以代表该目标子元素在除该测试终端以外的终端上进行显示时能否正常工作。

其中,该理论结果是指当该目标子元素运行正常时,对该目标子元素进行模拟操作时应得的结果。对该目标子元素进行模拟操作时,如果得到的测试结果与理论结果相同,可以确定该目标子元素运行正常,如果得到的测试结果与理论结果不同,可以确定该目标子元素运行错误。

具体地,该测试终端可以预先存储该理论结果,当对该目标子元素进行模拟操作后,可以将该测试结果与该理论结果进行比较,判断该测试结果与预先存储的理论结果是否相同,从而确定该目标子元素能否正常工作。当然,也可以由测试人员通过分析确定模拟操作的理论结果,当通过测试终端得到测试结果后,人工地判断该测试结果与理论结果是否相同,从而确定该目标子元素能否正常工作,本发明实施例对此不做限定。

具体地,针对不同类型的模拟操作,该步骤204可以包括以下步骤2041-2042:

2041、测试终端对该目标子元素进行模拟点击操作,得到该模拟点击操作的点击测试结果。

具体地,该测试终端可以获取点击测试函数,该点击测试函数的输入参数为目标子元素,输出参数为该模拟点击操作的响应结果,通过调用该点击测试函数,该测试终端可以对该目标子元素进行模拟点击操作。

该点击测试函数的代码可以如下:

Def click_by_element_given(self,element)

{

%注释:element为目标子元素”

Self._info(“click_by_element_given”)

element.click()

}

该模拟点击操作用于测试该目标子元素能否被正常点击,当对该目标子元素进行模拟点击操作时,该测试终端可以得到该模拟点击操作的点击测试结果,该点击测试结果用于与点击理论结果进行比较,以判断该目标子元素被点击时是否正常工作。

在一种可能的实现方式中,该目标子元素为链接形式的子元素时,该目标子元素与一个链接地址关联,且该链接地址指向一个页面,那么该测试终端可以将该页面作为点击理论结果,在对该目标子元素进行模拟点击操作,获取到点击测试结果后,可以将该点击测试结果与该点击理论结果进行比较,即,判断当对该目标子元素执行模拟点击操作时,其打开的页面是否为该目标子元素关联的链接地址指向的页面,当打开的页面即为该目标子元素关联的链接地址指向的页面时,确定该目标子元素被点击时能够正常工作。

在另一种可能的实现方式中,该目标子元素与指定信息关联,该测试终端在对该目标子元素进行模拟点击操作,那么该测试终端可以将该指定信息作为点击理论结果,在对该目标子元素进行模拟点击操作,获取到点击测试结果后,可以将该点击测试结果与该点击理论结果进行比较,即,判断当对该目标子元素执行模拟点击操作时,其弹出的信息是否为该目标子元素关联的指定信息,当该目标子元素弹出的信息即为该目标子元素关联的指定信息时,确定该目标子元素被点击时能够正常工作。

其中,指定信息可以为一个特定的窗口、文本框、广告等,本发明实施例对此不做限定。例如,目标子元素“筷子兄弟”关联的指定信息可以为“广受广场舞欢迎的歌手组合”。

当然,也可以由测试人员在通过该测试终端得到该目标子元素的点击测试结果后,分析该目标子元素的点击理论结果,通过判断该点击测试结果与该点击理论结果是否相同,确定该目标子元素被点击时能否正常工作,本发明实施例对此不做限定。

2042、测试终端对该目标子元素进行模拟显示操作,得到该模拟显示操作的显示测试结果。

其中,该模拟显示操作用于测试该目标子元素能否正常显示,当对该目标子元素进行模拟显示操作时,该测试终端可以得到该模拟显示操作的显示测试结果,该显示测试结果用于与显示理论结果进行比较,以判断该目标子元素是否正常显示。

具体地,该测试终端可以确定显示测试函数,该显示测试函数的输入参数为目标子元素,输出参数为该模拟显示操作的显示测试结果,通过该显示测试函数该测试终端可以对该目标子元素进行模拟显示操作。

该显示测试函数的代码可以如下:

Def get_text(self,element)

{

%注释:element为目标子元素”

Self._info(“get the text of the element”)

Return elment.text

}

具体地,该测试终端可以预先存储显示理论结果,当对该目标子元素进行模拟显示操作后,可以将该显示测试结果与该显示理论结果进行比较,判断该显示测试结果与显示预先存储的理论结果是否相同,从而确定该目标子元素能否正常显示。当然,也可以由测试人员通过分析确定模拟显示操作的理论显示结果,当通过测试终端得到显示测试结果后,人工地判断该显示测试结果与显示理论结果是否相同,从而确定该目标子元素能否正常显示,本发明实施例对此不做限定。

需要说明的是,测试终端还可以对该目标子元素进行其他模拟操作,例如,当该目标元素为音乐时,该测试终端可以对该目标子元素进行模拟播放操作,当该目标元素为输入栏时,该测试终端可以对该目标子元素进行模拟输入操作,本发明实施例对此不做限定。

而且,本发明实施例以根据目标子元素标识对该第一页面中的对应目标子元素进行测试为例,而实际应用中,在对该第一页面进行测试时,由于该第一页面中可能包括属于多个类别的子元素,因此可以根据相应的多个目标子元素标识分别进行测试,从而完成该第一页面中的所有子元素的测试工作。

205、测试终端对该第一页面进行模拟滑动操作,获取与该第一页面关联的第二页面,根据该第二页面中的目标子元素标识,对该第二页面中的目标子元素进行测试。

该测试终端对该第一页面进行测试之后,还可以对该第一页面关联的第二页面进行测试,从而判断该第二页面能否正常工作。

因此,以第一页面和第二页面为例,测试终端可以对该第一页面进行模拟滑动操作,获取与该第一页面关联的第二页面。其中,该第二页面包括该第一页面向上滑动时的页面、该第一页面向下滑动时的页面、该第一页面向左滑动时的页面和该第一页面向右滑动时的页面中的任一项。

进一步地,该测试终端可以调用滑动函数进行模拟滑动操作,该滑动函数用于对当前页面进行滑动,并获取与当前页面关联的页面。该滑动函数的输入参数为当前页面滑动起始点的横坐标、当前页面滑动起始点的纵坐标、当前页面滑动终止点的横坐标、当前页面滑动终止点的纵坐标、滑动时间间隔,该滑动函数的输出参数为与当前页面关联的页面。

例如,该滑动函数可以为swipe函数,向swipe函数传入的参数不同,可以模拟向上滑动、向下滑动、向左滑动和向右滑动的不同类型的滑动操作,相应地,获取到的与该第一页面关联的第二页面可以为不同滑动方向上的页面。也即是,该滑动过程可以包括:

1、当向该swipe函数传入的滑动起始点的横坐标和滑动终止点的横坐标相同,滑动起始点的纵坐标大于滑动终止点的纵坐标相同时,测试终端将获取该第一页面向上滑动时的页面。

2、当向该swipe函数传入的滑动起始点的横坐标和滑动终止点的横坐标相同,滑动起始点的纵坐标小于滑动终止点的纵坐标相同时,测试终端将获取该第一页面向下滑动时的页面。

3、当向该swipe函数传入的滑动起始点的纵坐标和滑动终止点的纵坐标相同,滑动起始点的横坐标大于滑动终止点的纵坐标时,测试终端将获取该第一页面向左滑动时的页面。

4、当向该swipe函数传入的滑动起始点的纵坐标和滑动终止点的纵坐标相同,滑动起始点的横坐标小于滑动终止点的纵坐标时,测试终端将获取该第一页面向右滑动时的页面。

当测试终端获取该第二页面后,可以根据该第二页面中的目标子元素标识,对该第二页面中的目标子元素进行测试。也即是,根据该第二页面中的目标子元素标识,确定目标集合,获取该目标集合的长度,根据该长度确定索引值的取值范围,遍历该取值范围内的每个索引值,根据当前遍历到的索引值,从该目标集合中提取目标子元素,对该目标子元素进行模拟操作,得到该模拟操作的测试结果。

在相关技术中,当两个子元素属于相同类别时,对应于同一个子元素标识,而测试终端仅依靠子元素标识识别子元素,无法区分不同的子元素。而本发明实施例中,将子元素标识和索引值这两种数据结合起来,作为识别任一子元素所使用的的数据。那么,对于任意两个子元素,当这两个子元素属于不同类别时,这两个子元素的子元素标识是不同的,测试终端能够根据不同的子元素标识,区分不同的子元素,而当这两个子元素属于相同类别时,这两个子元素的索引值是不同的,测试终端能够根据不同的索引值,区分不同的子元素。也即是,无论任意两个子元素是否属于相同类别,测试终端始终能够区分不同的子元素,可以实现从多个子元素中提取任意目标子元素。

例如,基于上述表1的例子,对于子元素“周杰伦”和子元素“青花瓷”而言,“周杰伦”的子元素标识为“singer”,“青花瓷”的子元素标识为“music”,测试终端能够根据“singer”和“music”区分“周杰伦”和“青花瓷”。而对于子元素“周杰伦”和子元素“筷子兄弟”而言,虽然这两个子元素的子元素标识都是“singer”,然而“周杰伦”的索引值为1,“筷子兄弟”的索引值为2,测试终端能够根据索引值是1还是2,区分“周杰伦”和筷子兄弟”。

进一步地,该测试终端可以安装测试工具,通过测试工具对该第一页面进行测试,该测试工具可以为Appium、Robotium、UIAutomator等。

本发明实施例提供的方法,考虑到属于相同类别的子元素对应的子元素标识相同,通过获取第一页面中的目标子元素标识,根据该目标子元素标识确定目标集合,根据确定的索引值,从该目标集合中提取目标子元素,对该目标子元素进行模拟操作,得到该模拟操作的测试结果,该测试结果用于与理论结果进行比较,以判断该目标子元素是否正常工作。能根据目标子元素标识,将不同元素中属于相同类别的多个子元素集成于同一目标集合中,从而以索引值指示子元素在目标集合中的位置,根据确定的索引值准确识别和定位目标子元素,进而对该目标子元素进行测试,扩展了测试功能。

图4是本发明实施例提供的一种子元素测试装置的结构示意图,如图4所示,该装置包括第一获取模块401、确定模块402、提取模块403和第一测试模块404。

第一获取模块401,用于获取第一页面中的目标子元素标识,该第一页面包括至少一个元素,每个元素包括至少一个子元素,子元素标识用于标识子元素的类别,属于相同类别的子元素对应的子元素标识相同;

确定模块402,用于根据该目标子元素标识,确定目标集合,该目标集合中包括该第一页面中与该目标子元素标识对应的多个子元素;

提取模块403,用于根据确定的索引值,从该目标集合中提取目标子元素,该索引值用于指示目标子元素在该目标集合中的位置;

第一测试模块404,用于对该目标子元素进行模拟操作,得到该模拟操作的测试结果,该测试结果用于与理论结果进行比较,以判断该目标子元素是否正常工作。

本发明实施例提供的装置,考虑到属于相同类别的子元素对应的子元素标识相同,通过获取第一页面中的目标子元素标识,根据该目标子元素标识确定目标集合,根据确定的索引值,从该目标集合中提取目标子元素,对该目标子元素进行模拟操作,得到该模拟操作的测试结果,该测试结果用于与理论结果进行比较,以判断该目标子元素是否正常工作。能根据目标子元素标识,将不同元素中属于相同类别的多个子元素集成于同一目标集合中,从而以索引值指示子元素在目标集合中的位置,根据确定的索引值准确识别和定位目标子元素,进而对该目标子元素进行测试,扩展了测试功能。

在一种可能的实现方式中,该提取模块403,包括:

获取单元,用于获取该目标集合的长度;

确定单元,用于根据该长度确定索引值的取值范围;

提取单元,用于遍历该取值范围内的每个索引值,根据当前遍历到的索引值,从该目标集合中提取目标子元素。

在另一种可能的实现方式中,该确定单元,还用于将预设初始值作为该取值范围的最小值,根据该最小值和该长度确定该取值范围的最大值,并根据该最小值和该最大值确定该取值范围。

在另一种可能的实现方式中,该第一测试模块404,还用于对该目标子元素进行模拟点击操作,得到该模拟点击操作的点击测试结果,该点击测试结果用于与点击理论结果进行比较,以判断该目标子元素被点击时是否正常工作。

在另一种可能的实现方式中,该第一测试模块404,还用于对该目标子元素进行模拟显示操作,得到该模拟显示操作的显示测试结果,该显示测试结果用于与显示理论结果进行比较,以判断该目标子元素是否正常显示。

在另一种可能的实现方式中,参见图5,该装置还包括:

第二获取模块405,用于对该第一页面进行模拟滑动操作,获取与该第一页面关联的第二页面,该第二页面包括该第一页面向上滑动时的页面、该第一页面向下滑动时的页面、该第一页面向左滑动时的页面和该第一页面向右滑动时的页面中的任一项;

第二测试模块406,用于根据该第二页面中的目标子元素标识,对该第二页面中的目标子元素进行测试。

需要说明的是:上述实施例提供的子元素测试装置在测试子元素时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将测试终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的子元素测试装置与子元素测试方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本实施例提供了一种终端,该终端可以用于执行上述各个实施例中提供的子元素测试方法。参见图6,该终端600包括:

终端600可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(Wireless Fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源60等部件。本领域技术人员可以理解,图6中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。该无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。

存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端600的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。

输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端600的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图6中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。

终端600还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端600移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端600还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路160、扬声器161,传声器162可提供用户与终端600之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端600的通信。

WiFi属于短距离无线传输技术,终端600通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块170,但是可以理解的是,其并不属于终端600的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器180是终端600的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端600的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。

终端600还包括给各个部件供电的电源60(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源60还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管未示出,终端600还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。该一个或者一个以上程序包含用于实施上述实施例中测试终端所执行操作的指令。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1