用例生成方法、装置、电子设备和计算机可读存储介质与流程

专利2022-06-29  89


本发明涉及计算机技术领域,特别是涉及一种用例生成方法、装置、电子设备和计算机可读存储介质。



背景技术:

随着移动终端(例如智能手机、平板电脑)的快速发展,对移动终端中应用程序显示的页面进行测试也越来越重要。对页面进行测试的目的在于确保页面能够根据用户的操作提供相应的功能,且页面符合开发人员的预期要求。

相关技术中,可以实时记录测试人员在页面中的控件上执行的点击、滑动等操作的操作路径,进而,根据记录的操作路径生成对应的用例。当需要对页面进行测试时,可以在页面中运行用例,进而可以得到测试结果。

然而,基于上述生成用例的过程可见,生成每一用例,都需要测试人员在页面中的控件上进行相应的操作,会导致用例生成的效率较低。



技术实现要素:

本发明实施例的目的在于提供一种用例生成方法、装置、电子设备和计算机可读存储介质,以提高用例生成的效率。具体技术方案如下:

在本发明实施的第一方面,首先提供了一种用例生成方法,所述方法包括:

在待测页面中确定预设坐标对应的控件,作为目标控件;

在所述目标控件上执行预设事件类型的目标事件,得到结果页面;

如果所述待测页面与所述结果页面不一致,基于所述待测页面与所述结果页面之间的差异,确定在所述目标控件上执行所述目标事件的预期结果;

基于所述预期结果,生成所述目标事件对应的用例。

可选的,在所述目标控件上执行预设事件类型的目标事件之前,所述方法还包括:

获取当前所述目标控件的权重,作为第一权重,其中,所述第一权重用于表示在所述目标控件上执行事件的概率;

如果所述第一权重大于预设权重阈值,执行在所述目标控件上执行预设事件类型的目标事件的步骤。

可选的,在所述生成所述目标事件对应的用例之后,所述方法还包括:

计算所述第一权重与预设数值的差值,作为第二权重;其中,所述预设数值大于零;

将所述目标控件的权重更新为所述第二权重。

可选的,在所述基于所述待测页面与所述结果页面之间的差异,确定在所述目标控件上执行所述目标事件的预期结果之前,所述方法还包括:

判断所述待测页面与所述结果页面的页面标识是否一致,其中,一个页面的页面标识为根据该页面的根窗口的标识和该页面的页面标题确定的;

如果所述待测页面与所述结果页面的页面标识不一致,确定所述待测页面与所述结果页面不一致。

可选的,所述方法还包括:

如果所述待测页面与所述结果页面的页面标识一致,生成所述结果页面对应的多叉树,作为第一多叉树,其中,所述第一多叉树中的节点与所述结果页面中的控件对应;

如果所述第一多叉树与所述待测页面对应的第二多叉树存在不同的节点,确定所述待测页面与所述结果页面不一致。

可选的,所述基于所述待测页面与所述结果页面之间的差异,确定在所述目标控件上执行所述目标事件的预期结果,包括:

基于所述第一多叉树与所述第二多叉树中存在差异的节点,确定在所述目标控件上执行所述目标事件的预期结果。

可选的,所述基于所述预期结果,生成所述目标事件对应的用例,包括:

确定用于定位所述目标控件的接口,作为定位接口,以及,确定用于执行所述目标事件的接口,作为操控接口;

基于所述定位接口和所述操控接口的调用逻辑,生成针对所述目标控件的调用语句;

生成包含所述调用语句和所述预期结果的用例,作为所述目标事件对应的用例。

可选的,在所述生成所述目标事件对应的用例之前,所述方法还包括:

判断是否存在所述目标控件和所述预期结果对应的用例;

如果不存在,执行所述生成所述目标事件对应的用例的步骤。

在本发明实施的第二方面,还提供了一种用例生成装置,所述装置包括:

第一确定模块,用于在待测页面中确定预设坐标对应的控件,作为目标控件;

第一处理模块,用于在所述目标控件上执行预设事件类型的目标事件,得到结果页面;

第二确定模块,用于如果所述待测页面与所述结果页面不一致,基于所述待测页面与所述结果页面之间的差异,确定在所述目标控件上执行所述目标事件的预期结果;

生成模块,用于基于所述预期结果,生成所述目标事件对应的用例。

可选的,所述装置还包括:

第二处理模块,用于获取当前所述目标控件的权重,作为第一权重,其中,所述第一权重用于表示在所述目标控件上执行事件的概率;

如果所述第一权重大于预设权重阈值,触发所述第一处理模块。

可选的,所述装置还包括:

更新模块,用于计算所述第一权重与预设数值的差值,作为第二权重;其中,所述预设数值大于零;

将所述目标控件的权重更新为所述第二权重。

可选的,所述装置还包括:

第三处理模块,用于判断所述待测页面与所述结果页面的页面标识是否一致,其中,一个页面的页面标识为根据该页面的根窗口的标识和该页面的页面标题确定的;

如果所述待测页面与所述结果页面的页面标识不一致,确定所述待测页面与所述结果页面不一致。

可选的,所述第三处理模块,还用于如果所述待测页面与所述结果页面的页面标识一致,生成所述结果页面对应的多叉树,作为第一多叉树,其中,所述第一多叉树中的节点与所述结果页面中的控件对应;

如果所述第一多叉树与所述待测页面对应的第二多叉树存在不同的节点,确定所述待测页面与所述结果页面不一致。

可选的,所述第三处理模块,具体用于基于所述第一多叉树与所述第二多叉树中存在差异的节点,确定在所述目标控件上执行所述目标事件的预期结果。

可选的,所述生成模块,具体用于确定用于定位所述目标控件的接口,作为定位接口,以及,确定用于执行所述目标事件的接口,作为操控接口;

基于所述定位接口和所述操控接口的调用逻辑,生成针对所述目标控件的调用语句;

生成包含所述调用语句和所述预期结果的用例,作为所述目标事件对应的用例。

可选的,所述装置还包括:

判断模块,用于判断是否存在所述目标控件和所述预期结果对应的用例;

如果不存在,触发所述生成模块。

在本发明实施的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一所述的用例生成方法。

在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的用例生成方法。

在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的用例生成方法。

本发明实施例提供的一种用例生成方法,在待测页面中确定预设坐标对应的控件,作为目标控件;在目标控件上执行预设事件类型的目标事件,得到结果页面;如果待测页面与结果页面不一致,基于待测页面与结果页面之间的差异,确定在目标控件上执行目标事件的预期结果;基于预期结果,生成目标事件对应的用例。

基于上述处理,能够根据预设坐标,确定待测页面中对应的目标控件,并基于在目标控件上执行目标事件前后页面的差异,确定执行目标事件的预期结果,进而,根据预期结果生成对应的用例,而不需要测试人员在目标控件上进行相应操作,即,能够减少测试人员的操作,提高用例生成的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例中提供的一种用例生成方法的流程图;

图2为本发明实施例中提供的一种用例生成方法的流程图;

图3为本发明实施例中提供的一种用例生成方法的流程图;

图4为本发明实施例中提供的一种用例生成方法的流程图;

图5为本发明实施例中提供的一种用例生成方法的流程图;

图6为本发明实施例中提供的一种数据流向图;

图7为本发明实施例中提供的一种调整控件权重的流程图;

图8为本发明实施例中提供的一种用例生成装置的结构图;

图9为本发明实施例中提供的一种用例生成装置的结构图;

图10为本发明实施例中提供的一种用例生成装置的结构图;

图11为本发明实施例中提供的一种用例生成装置的结构图;

图12为本发明实施例中提供的一种用例生成装置的结构图;

图13为本发明实施例中提供的一种电子设备的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

相关技术中,生成每一用例,都需要测试人员在页面中的控件上进行相应的操作,会导致用例生成的效率较低。

为了解决上述问题,本发明实施例提供了一种用例生成方法,参见图1,该方法可以包括以下步骤:

s101:在待测页面中确定预设坐标对应的控件,作为目标控件。

s102:在目标控件上执行预设事件类型的目标事件,得到结果页面。

s103:如果待测页面与结果页面不一致,基于待测页面与结果页面之间的差异,确定在目标控件上执行目标事件的预期结果。

s104:基于预期结果,生成目标事件对应的用例。

基于本发明实施例提供的用例生成方法,能够根据预设坐标,确定待测页面中对应的目标控件,并基于在目标控件上执行目标事件前后页面的差异,确定执行目标事件的预期结果,进而,根据预期结果生成对应的用例,而不需要测试人员在目标控件上进行相应操作,即,能够减少测试人员的操作,提高用例生成的效率。

在步骤s101中,预设坐标可以由测试人员预先设置,或者,也可以在执行本发明实施例的方法之前生成。

一种实现方式中,测试人员可以预先设置多个坐标,当需要生成用例时,可以从该多个坐标中选择一个坐标,作为预设坐标,并根据发明实施例的方法生成用例。预先设置的多个坐标可以是待测页面中多个点的坐标,该多个点可以是待测页面中随机选择的多个点。

或者,当需要生成用例时,可以根据待测页面的长度和宽度,随机生成一个坐标,使得生成的坐标对应的点位于待测页面中,生成的该坐标可以作为预设坐标,用于生成用例。

一种实现方式中,可以构建待测页面对应的多叉树(即本发明实施例中的第二多叉树),第二多叉树的根节点可以表示待测页面的根窗口(rootwindow),第二多叉树中除根节点以外的其他节点与待测页面中的控件一一对应,第二多叉树的节点之间的父子关系与待测页面中控件的所属关系一致。第二多叉树的节点中可以记录对应的控件的类型、坐标和可视化等属性。

相应的,在获取预设坐标后,可以基于第二多叉树,确定预设坐标对应的控件(即目标控件),例如,可以基于响应者链搜索算法从第二多叉树中确定预设坐标对应的目标控件。

另外,还可以构建页面对应的存储空间,并将待测页面的页面标识作为key(键),将第二多叉树作为对应的value(值)进行存储。

待测页面的页面标识可以用待测页面的页面标题和待测页面的根窗口的id表示。

在步骤s102中,预设事件类型可以为点击、滑动或输入等事件类型。事件类型为“点击”的事件,可以表示在控件上执行点击操作;事件类型为“滑动”的事件,可以表示在控件上执行滑动操作;事件类型为“输入”的事件,可以表示在控件上执行输入操作。

一种实现方式中,当需要生成用例时,可以从预先设置的多个事件类型中随机选择一个事件类型,并在目标控件上执行相应的事件(即目标事件),进而,能够得到结果页面。

可选的,为了提高生成的用例的适用性,使得根据生成的用例,能够对待测页面中各控件进行测试,参见图2,在步骤s102之前,该方法还可以包括以下步骤:

s105:获取当前目标控件的权重,作为第一权重。

其中,第一权重用于表示在目标控件上执行事件的概率。

在发明实施例中,待测页面中的各控件可以具有初始的权重。

一种实现方式中,各控件初始的权重可以相同,例如,控件的权重的范围可以为[0,1],则待测页面中各控件初始的权重可以均为0.9。

或者,也可以根据各控件的尺寸大小,确定各控件初始的权重,例如,尺寸较大的控件,用户点击的概率较大,则可以将其初始的权重设置较大,相应的,尺寸较小的控件,用户点击的概率较小,则可以将其初始的权重设置较小。

另外,在生成用例的过程中,也可以对各控件的权重进行调整。

s106:判断第一权重是否大于预设权重阈值,如果是,执行s102,如果否,执行s107。

在发明实施例中,在确定目标控件后,如果目标控件的第一权重大于预设权重阈值,则可以生成目标控件对应的用例,即,执行步骤s102。

s107:确定下一预设坐标。

在发明实施例中,如果第一权重不大于预设权重阈值,则不会生成目标控件对应的用例。

相应的,可以根据本发明实施例的方法,确定下一预设坐标,并进行相应的处理。

例如,针对不接收交互的控件,由于该类控件与用户之间不存在交互,因此,可以将该类控件初始的权重设置为小于预设权重阈值,即,不需要生成该类控件对应的用例。

可选的,为了能够生成待测页面中的各控件对应的用例,进一步提高生成的用例的适用性,在步骤s104之后,该方法还可以包括以下步骤:计算第一权重与预设数值的差值,作为第二权重;将目标控件的权重更新为第二权重。

其中,预设数值大于零。

在发明实施例中,如果每次生成用例时,获取的预设坐标对应的控件为同一控件,则可能会导致无法生成其他控件对应的用例。

因此,在生成目标事件对应的用例,即目标控件对应的用例后,可以减小目标控件的权重,进而,能够避免上述问题,提高生成的用例的适用性。

可以理解的是,在目标控件上执行目标事件后,页面可能发生跳转,即,待测页面与结果页面并不是同一页面;或者,页面并未发生跳转,但是,待测页面中的控件发生变化,上述情况都会导致待测页面与结果页面不一致。

可选的,参见图3,在步骤s103之前,该方法还可以包括以下步骤:

s108:判断待测页面与结果页面的页面标识是否一致,如果不一致,执行s109,如果一致,执行s110。

s109:确定待测页面与结果页面不一致。

s110:生成结果页面对应的多叉树,作为第一多叉树,如果第一多叉树与待测页面对应的第二多叉树存在不同的节点,确定待测页面与结果页面不一致。

其中,一个页面的页面标识为根据该页面的根窗口的标识和该页面的页面标题确定的。第一多叉树中的节点与结果页面中的控件对应。

在发明实施例中,如果待测页面与结果页面的页面标识不一致,表明在目标控件上执行目标事件后,页面发生跳转,即,可以确定待测页面与结果页面不一致。

另外,即使待测页面与结果页面的页面标识一致,而如果两者对应的多叉树存在不同的节点,表明两者的控件不同,因此,也可以确定待测页面与结果页面不一致。在该情况下,可以将记录的待测页面的页面标识对应的多叉树,更新为第一多叉树。

另外,如果待测页面与结果页面的页面标识一致,且两者对应的多叉树中的节点也一致,表明执行目标事件前后,待测页面未发生变化,相应的,则可以不生成目标事件对应的用例。

基于上述处理,根据页面对应的多叉树,能够提高对页面进行比较的效率,以进一步提高用例生成的效率。

在步骤s103中,可以基于结果页面对应的第一多叉树,与待测页面对应的第二多叉树中存在差异的节点,确定在目标控件上执行目标事件的预期结果。

预期结果用于在对页面进行测试时,验证事件是否执行成功。

由于多叉树中除根节点以外的其他节点与页面中的控件一一对应,因此,如果结果页面对应的第一多叉树,与待测页面对应的第二多叉树中存在差异的节点,则差异的节点对应的控件可以表示在目标控件上执行目标事件的预期结果。

一种实现方式中,预期结果可以分为校验方式和期望参数。

例如,如果在目标控件上执行目标事件后,页面发生跳转,则第一多叉树与第二多叉树中存在差异的节点包括第一多叉树中的所有节点,即,待测页面与结果页面并不是同一页面,则在目标控件上执行目标事件的预期结果为结果页面,相应的,校验方式为页面跳转,期望参数为结果页面的页面标识。

在目标控件上执行目标事件后,页面未发生跳转,而是在待测页面中弹出显示预设数量的列表,则第一多叉树与第二多叉树中存在差异的节点对应的控件为该列表,则预期结果可以为预设数量的列表,相应的,校验方式为列表数量,期望参数为预设数量。

在目标控件上执行目标事件后,页面未发生跳转,而是在待测页面中弹出显示预设标题的提示框,则第一多叉树与第二多叉树中存在差异的节点对应的控件为该提示框,则预期结果可以为预设标题的提示框,相应的,校验方式为弹框提示,期望参数为预设标题。

在目标控件上执行目标事件后,页面未发生跳转,而是在待测页面中标记预设元素,则第一多叉树与第二多叉树中存在差异的节点对应的控件为该预设元素,则预期结果为预设元素,相应的,校验方式为元素是否存在,期望参数为预设元素的标识以及用于对预设元素进行定位的函数。

在目标控件上执行目标事件后,页面未发生跳转,而是在待测页面中弹出显示输入框,则第一多叉树与第二多叉树中存在差异的节点对应的控件为该输入框,则预期结果为该输入框及预设文本,相应的,校验方式为输入框的取值,期望参数为预设文本。

基于上述处理,根据页面对应的多叉树,确定预期结果,能够提高对页面进行比较的效率,以进一步提高用例生成的效率。

可选的,参见图4,步骤s104可以包括以下步骤:

s1041:确定用于定位目标控件的接口,作为定位接口,以及,确定用于执行目标事件的接口,作为操控接口。

在发明实施例中,在确定出预期结果后,可以从接口数据库中确定用于对目标控件进行定位的接口(即定位接口),以及用于在目标控件上执行目标事件的接口(即操控接口)。

s1042:基于定位接口和操控接口的调用逻辑,生成针对目标控件的调用语句,并生成包含调用语句和预期结果的用例,作为目标事件对应的用例。

在发明实施例中,可以获取定位接口和操控接口的调用函数,并分别向调用函数传入相应的参数,传入的参数可以包括定位接口的标识、操控接口的标识、目标事件的时长,以及目标控件的标识,目标事件的时长表示在目标控件上执行目标事件的时长,进而,基于定位接口和操控接口的调用逻辑,生成包含已传入参数的调用函数的调用语句。

然后,可以生成包含调用语句和预期结果的用例,即,目标事件对应的用例。

另外,生成的用例中还可以包括目标事件的事件类型、目标事件的标识。

可选的,参见图5,本发明实施例提供的用例生成方法包括以下步骤:

s501:在待测页面中确定预设坐标对应的控件,作为目标控件。

s502:在目标控件上执行预设事件类型的目标事件,得到结果页面。

s503:如果待测页面与结果页面不一致,基于待测页面与结果页面之间的差异,确定在目标控件上执行目标事件的预期结果。

s504:判断是否存在目标控件和预期结果对应的用例,如果不存在,执行s505,如果存在,执行s506。

s505:基于预期结果,生成目标事件对应的用例。

s506:确定下一预设坐标。

其中,s501可以参考上述s101,s502可以参考上述s102,s503可以参考上述s103,s505可以参考上述s104。

在发明实施例中,为了避免由于预设坐标和预设事件类型选取的随机性,导致生成相同的用例,在确定出目标控件和预期结果后,可以判断是否已生成对应的用例,如果已生成,则本次可以不再生成对应的用例,以提高用例的生成效率,且提高后续用例执行的效率。

参见图6,图6为本发明实施例中提供的一种数据流向图。

一种实现方式中,可以构建随机事件触发中心(randomeventtriggercenter,retc)。retc可以基于事件类,生成随机事件,即上述目标事件,并记录待测页面的页面标识和对应的多叉树。

事件类(eventclass)定义如下:

eventtype:事件类型

eventindex:事件编号

elementid:控件的标识

coordinate:坐标

time:事件的时长

checktype:校验方式

expect:期望参数

其中,事件类型可以表示生成的随机事件的事件类型;事件编号可以从0开始递增,用于对生成的随机事件进行区分;控件的标识表示用于执行生成的随机事件的控件;坐标可以理解为上述实施例中的预设坐标,可以是根据待测页面的宽度和高度,随机生成的;事件的时长用于表示在控件上执行随机事件的时长;校验方式和期望参数在上述实施例中已详细介绍。

retc可以根据预设坐标和待测页面的多叉树,确定目标控件,构建对应的事件类,并发送至事件处理中心(eventhandlecenter,ehc)。ehc则可以调用框架驱动,在待测页面中的目标控件上执行对应的事件,并根据多叉树,在待测页面与结果页面不一致的情况下,确定事件类的校验方式和期望参数,在待测页面与结果页面一致的情况下,丢弃事件类。

进而,可以将未被丢弃的事件类存储到事件队列中。

后续,可以根据fifo(firstinputfirstoutput,先进先出)算法,从事件队列中取出事件类,并创建相应的线程,基于事件类构建用例脚本,以生成对应的用例。

参见图7,图7为本发明实施例中提供的一种调整控件权重的流程图,可以包括以下步骤:。

s701:获取待测页面的多叉树。

s702:获取待测页面中控件的属性。

其中,控件的属性可以包括控件的坐标、类型、可视化。

s703:判断控件是否能够接收交互,如果否,执行s704,如果是,执行s705。

其中,如果允许用户点击控件,则该控件能够接收交互,否则,则不能接收交互。

s704:为控件分配小于预设权重阈值的权重。

其中,分配的权重小于预设权重阈值,表明不需要生成该控件对应的用例。

s705:根据控件尺寸分配权重。

s706:根据黑白名单调整权重。

其中,控件的权重的范围可以为[0,1],可以设置黑白名单,黑名单中的控件的权重可以调整为0,白名单中的控件的权重可以调整为0.9。

s707:动态调整权重。

其中,当生成一控件对应的用例后,减小该控件的权重。

基于相同的发明构思,参见图8,本发明实施例还提供了一种用例生成装置,所述装置包括:

第一确定模块801,用于在待测页面中确定预设坐标对应的控件,作为目标控件;

第一处理模块802,用于在所述目标控件上执行预设事件类型的目标事件,得到结果页面;

第二确定模块803,用于如果所述待测页面与所述结果页面不一致,基于所述待测页面与所述结果页面之间的差异,确定在所述目标控件上执行所述目标事件的预期结果;

生成模块804,用于基于所述预期结果,生成所述目标事件对应的用例。

可选的,参见图9,所述装置还包括:

第二处理模块805,用于获取当前所述目标控件的权重,作为第一权重,其中,所述第一权重用于表示在所述目标控件上执行事件的概率;

如果所述第一权重大于预设权重阈值,触发所述第一处理模块802。

可选的,参见图10,所述装置还包括:

更新模块806,用于计算所述第一权重与预设数值的差值,作为第二权重;其中,所述预设数值大于零;

将所述目标控件的权重更新为所述第二权重。

可选的,参见图11,所述装置还包括:

第三处理模807,用于判断所述待测页面与所述结果页面的页面标识是否一致,其中,一个页面的页面标识为根据该页面的根窗口的标识和该页面的页面标题确定的;

如果所述待测页面与所述结果页面的页面标识不一致,确定所述待测页面与所述结果页面不一致。

可选的,所述第三处理模块807,还用于如果所述待测页面与所述结果页面的页面标识一致,生成所述结果页面对应的多叉树,作为第一多叉树,其中,所述第一多叉树中的节点与所述结果页面中的控件对应;

如果所述第一多叉树与所述待测页面对应的第二多叉树存在不同的节点,确定所述待测页面与所述结果页面不一致。

可选的,所述第三处理模块807,具体用于基于所述第一多叉树与所述第二多叉树中存在差异的节点,确定在所述目标控件上执行所述目标事件的预期结果。

可选的,所述生成模块804,具体用于确定用于定位所述目标控件的接口,作为定位接口,以及,确定用于执行所述目标事件的接口,作为操控接口;

基于所述预期结果、所述定位接口和所述操控接口,生成所述目标事件对应的用例。

可选的,参见图12,所述装置还包括:

判断模块808,用于判断是否存在所述目标控件和所述预期结果对应的用例;

如果不存在,触发所述生成模块804。

基于本发明实施例提供的用例生成装置,能够根据预设坐标,确定待测页面中对应的目标控件,并基于在目标控件上执行目标事件前后页面的差异,确定执行目标事件的预期结果,进而,根据预期结果生成对应的用例,而不需要测试人员在目标控件上进行相应操作,即,能够减少测试人员的操作,提高用例生成的效率。

本发明实施例还提供了一种电子设备,如图13所示,包括处理器1301、通信接口1302、存储器1303和通信总线1304,其中,处理器1301,通信接口1302,存储器1303通过通信总线1304完成相互间的通信,

存储器1303,用于存放计算机程序;

处理器1301,用于执行存储器1303上所存放的程序时,实现如下步骤:

在待测页面中确定预设坐标对应的控件,作为目标控件;

在所述目标控件上执行预设事件类型的目标事件,得到结果页面;

如果所述待测页面与所述结果页面不一致,基于所述待测页面与所述结果页面之间的差异,确定在所述目标控件上执行所述目标事件的预期结果;

基于所述预期结果,生成所述目标事件对应的用例。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的用例生成方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的用例生成方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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


技术特征:

1.一种用例生成方法,其特征在于,所述方法包括:

在待测页面中确定预设坐标对应的控件,作为目标控件;

在所述目标控件上执行预设事件类型的目标事件,得到结果页面;

如果所述待测页面与所述结果页面不一致,基于所述待测页面与所述结果页面之间的差异,确定在所述目标控件上执行所述目标事件的预期结果;

基于所述预期结果,生成所述目标事件对应的用例。

2.根据权利要求1所述的方法,其特征在于,在所述目标控件上执行预设事件类型的目标事件之前,所述方法还包括:

获取当前所述目标控件的权重,作为第一权重,其中,所述第一权重用于表示在所述目标控件上执行事件的概率;

如果所述第一权重大于预设权重阈值,执行在所述目标控件上执行预设事件类型的目标事件的步骤。

3.根据权利要求2所述的方法,其特征在于,在所述生成所述目标事件对应的用例之后,所述方法还包括:

计算所述第一权重与预设数值的差值,作为第二权重;其中,所述预设数值大于零;

将所述目标控件的权重更新为所述第二权重。

4.根据权利要求1所述的方法,其特征在于,在所述基于所述待测页面与所述结果页面之间的差异,确定在所述目标控件上执行所述目标事件的预期结果之前,所述方法还包括:

判断所述待测页面与所述结果页面的页面标识是否一致,其中,一个页面的页面标识为根据该页面的根窗口的标识和该页面的页面标题确定的;

如果所述待测页面与所述结果页面的页面标识不一致,确定所述待测页面与所述结果页面不一致。

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:

如果所述待测页面与所述结果页面的页面标识一致,生成所述结果页面对应的多叉树,作为第一多叉树,其中,所述第一多叉树中的节点与所述结果页面中的控件对应;

如果所述第一多叉树与所述待测页面对应的第二多叉树存在不同的节点,确定所述待测页面与所述结果页面不一致。

6.根据权利要求5所述的方法,其特征在于,所述基于所述待测页面与所述结果页面之间的差异,确定在所述目标控件上执行所述目标事件的预期结果,包括:

基于所述第一多叉树与所述第二多叉树中存在差异的节点,确定在所述目标控件上执行所述目标事件的预期结果。

7.根据权利要求1所述的方法,其特征在于,所述基于所述预期结果,生成所述目标事件对应的用例,包括:

确定用于定位所述目标控件的接口,作为定位接口,以及,确定用于执行所述目标事件的接口,作为操控接口;

基于所述定位接口和所述操控接口的调用逻辑,生成针对所述目标控件的调用语句;

生成包含所述调用语句和所述预期结果的用例,作为所述目标事件对应的用例。

8.根据权利要求1所述的方法,其特征在于,在所述生成所述目标事件对应的用例之前,所述方法还包括:

判断是否存在所述目标控件和所述预期结果对应的用例;

如果不存在,执行所述生成所述目标事件对应的用例的步骤。

9.一种用例生成装置,其特征在于,所述装置包括:

第一确定模块,用于在待测页面中确定预设坐标对应的控件,作为目标控件;

第一处理模块,用于在所述目标控件上执行预设事件类型的目标事件,得到结果页面;

第二确定模块,用于如果所述待测页面与所述结果页面不一致,基于所述待测页面与所述结果页面之间的差异,确定在所述目标控件上执行所述目标事件的预期结果;

生成模块,用于基于所述预期结果,生成所述目标事件对应的用例。

10.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤。

11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法步骤。

技术总结
本发明实施例提供了一种用例生成方法、装置、电子设备和计算机可读存储介质,方法包括:在待测页面中确定预设坐标对应的控件,作为目标控件;在目标控件上执行预设事件类型的目标事件,得到结果页面;如果待测页面与结果页面不一致,基于待测页面与结果页面之间的差异,确定在目标控件上执行目标事件的预期结果;基于预期结果,生成目标事件对应的用例。基于上述处理,能够提高用例生成的效率。

技术研发人员:金凌云
受保护的技术使用者:北京奇艺世纪科技有限公司
技术研发日:2020.01.16
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-26462.html

最新回复(0)