一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种页面测试方法、装置、计算机设备和存储介质与流程

2022-07-31 01:52:04 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,具体而言,涉及一种页面测试方法、装置、计算机设备和存储介质。


背景技术:

2.现有技术中,用户可以利用重播回放(replay record web,rrweb)组件记录其在目标页面上执行的各个目标操作对应的行为数据,以实现对目标页面的录制;再通过rrweb的回放模块将行为数据对应的目标操作复现在目标页面中,然后可以基于复现的目标操作对应的新的行为数据,实现对目标页面兼容性的测试。
3.但是,在利用生成的行为数据进行测试时,由于rrweb组件在进行录制的过程中,生成的行为数据有限,影响了测试结果的准确性。如,利用某一目标操作对应的已产生的行为数据在目标页面中复现目标操作时,可能存在同一操作位置处,两次点击的页面控件不同,产生的页面效果相同,导致生成相同的行为数据的情况,进而,可以确定出此次页面测试的结果为兼容的。但同一操作位置对应的页面控件不同,说明页面是不兼容的,因此,降低了测试结果的准确性。


技术实现要素:

4.本公开实施例至少提供一种页面测试方法、装置、计算机设备和存储介质。
5.第一方面,本公开实施例提供了一种页面测试方法,包括:
6.获取用户在目标页面中执行的每个目标操作对应的第一行为数据,以及每个目标操作对应的第一操作图片,并存储所述第一行为数据和第一操作图片;
7.在确定所述目标页面再次被打开的情况下,基于所述第一行为数据,在所述目标页面中重新执行每个目标操作,并获取每个目标操作重新执行过程中的第二操作图片;
8.基于所述第一操作图片和第二操作图片,确定所述目标页面的测试结果。
9.在一种可能的实施方式中,所述获取用户在目标页面中执行的每个目标操作对应的第一行为数据,包括:
10.确定用户在目标页面中执行的每一个目标操作的操作类型、目标名称和第一操作位置;
11.基于每个所述目标操作的第一操作位置,确定每个所述目标操作对应的第一操作路径信息;
12.基于每个所述目标操作的操作类型、每个所述目标操作对应的第一操作路径信息、每个所述目标操作对应的目标名称,生成每个所述目标操作对应的第一行为数据。
13.在一种可能的实施方式中,获取每个所述目标操作对应的第一操作图片,包括:
14.从执行所述目标操作过程中所述目标页面对应的页面图像中,截取与所述目标操作的第一操作位置的距离小于预设距离的位置点所对应的子图像,并将所述子图像作为所述第一操作图片;其中,所述子图像中包括所述目标操作所作用的第一目标控件的控件图
像。
15.在一种可能的实施方式中,获取每个所述目标操作对应的第一操作图片,包括:
16.确定每个所述目标操作对应的操作时间,基于每个所述目标操作对应的操作时间,将执行每个所述目标操作的过程中、目标页面的页面图像存入预设的数据生成队列;
17.按照操作时间的时间先后顺序,利用所述数据生成队列,依次生成每个所述目标操作对应的第一操作图片。
18.在一种可能的实施方式中,在重新执行每个所述目标操作之后,还包括:
19.获取重新执行每个目标操作对应的第二行为数据;
20.基于所述第一行为数据和所述第二行为数据,确定所述目标页面的测试结果。
21.在一种可能的实施方式中,所述基于所述第一行为数据和所述第二行为数据,确定所述目标页面的测试结果,包括:
22.针对每个第二行为数据,基于该第二行为数据对应的第二操作路径信息,确定该第二行为数据对应的第二目标控件;
23.确定与该第二行为数据相匹配的第一行为数据,并确定该第一行为数据对应的第一目标控件;
24.基于所述第一目标控件和所述第二目标控件,确定所述目标页面的测试结果。
25.在一种可能的实施方式中,在重新执行每个目标操作的过程中,还包括:
26.针对重新执行的每个目标操作,在确定重新执行该目标操作的执行失败次数大于预设失败阈值时,停止执行该目标操作,并执行该目标操作的下一目标操作。
27.在一种可能的实施方式中,在重新执行每个目标操作的过程中,还包括:
28.展示每个所述目标操作对应的目标名称。
29.第二方面,本公开实施例还提供一种页面测试装置,包括:
30.获取模块,用于获取用户在目标页面中执行的每个目标操作对应的第一行为数据,以及每个目标操作对应的第一操作图片,并存储所述第一行为数据和第一操作图片;
31.复现模块,用于在确定所述目标页面再次被打开的情况下,基于所述第一行为数据,在所述目标页面中重新执行每个目标操作,并获取每个目标操作重新执行过程中的第二操作图片;
32.确定模块,用于基于所述第一操作图片和第二操作图片,确定所述目标页面的测试结果。
33.在一种可能的实施方式中,所述获取模块,用于确定用户在目标页面中执行的每一个目标操作的操作类型、目标名称和第一操作位置;
34.基于每个所述目标操作的第一操作位置,确定每个所述目标操作对应的第一操作路径信息;
35.基于每个所述目标操作的操作类型、每个所述目标操作对应的第一操作路径信息、每个所述目标操作对应的目标名称,生成每个所述目标操作对应的第一行为数据。
36.在一种可能的实施方式中,所述获取模块,用于从执行所述目标操作过程中所述目标页面对应的页面图像中,截取与所述目标操作的第一操作位置的距离小于预设距离的位置点所对应的子图像,并将所述子图像作为所述第一操作图片;其中,所述子图像中包括所述目标操作所作用的第一目标控件的控件图像。
37.在一种可能的实施方式中,所述获取模块,用于确定每个所述目标操作对应的操作时间,基于每个所述目标操作对应的操作时间,将执行每个所述目标操作的过程中、目标页面的页面图像存入预设的数据生成队列;
38.按照操作时间的时间先后顺序,利用所述数据生成队列,依次生成每个所述目标操作对应的第一操作图片。
39.在一种可能的实施方式中,所述获取模块,还用于在所述复现模块重新执行每个所述目标操作之后,获取重新执行每个目标操作对应的第二行为数据;
40.所述确定模块,还用于基于所述第一行为数据和所述第二行为数据,确定所述目标页面的测试结果。
41.在一种可能的实施方式中,所述确定模块,用于针对每个第二行为数据,基于该第二行为数据对应的第二操作路径信息,确定该第二行为数据对应的第二目标控件;
42.确定与该第二行为数据相匹配的第一行为数据,并确定该第一行为数据对应的第一目标控件;
43.基于所述第一目标控件和所述第二目标控件,确定所述目标页面的测试结果。
44.在一种可能的实施方式中,所述复现模块,还用于在重新执行每个目标操作的过程中,针对重新执行的每个目标操作,在确定重新执行该目标操作的执行失败次数大于预设失败阈值时,停止执行该目标操作,并执行该目标操作的下一目标操作。
45.在一种可能的实施方式中,所述复现模块,还用于在重新执行每个目标操作的过程中,展示每个所述目标操作对应的目标名称。
46.第三方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
47.第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
48.关于上述页面测试装置、计算机设备、及计算机可读存储介质的效果描述参见上述页面测试方法的说明,这里不再赘述。
49.本公开实施例提供的页面测试方法、装置、计算机设备和存储介质,由于每个目标操作对应的操作图片,能够反映执行该目标操作时目标页面的页面图像,因此,基于第一操作图片和利用第一行为数据在目标页面中重新执行目标操作时生成的第二操作图片,能够准确地判断出两个操作图片所对应的页面图像是否一致,在确定页面图像一致的情况下,说明两次目标操作为同一操作,也即可以确定该目标操作在目标页面中兼容,反之,确定该目标操作在目标页面中不兼容。进而,基于每个目标操作对应的第一操作图片和第二操作图片,能够确定每个目标操作在目标页面中是否兼容,当确定每个目标操作在目标页面中兼容时,能够确定目标页面为兼容的;当确定任一个目标操作在目标页面中不兼容时,则确定目标页面为不兼容的。从而,基于确定的每个目标操作的兼容结果,能够实现准确地确定目标页面的兼容性,提高了目标页面的测试结果的准确性。
50.进一步,本公开实施例提供的页面测试方法、装置、计算机设备和存储介质,还可
以利用预设失败阈值对执行失败的目标操作进行容错处理,能够避免在重新执行目标操作的过程中,由于页面环境问题(如网络波动)造成此次目标操作执行失败而引起的页面测试结果的误判问题,进一步提高了测试结果的准确性。
51.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
52.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
53.图1示出了本公开实施例所提供的一种页面测试方法的流程图;
54.图2示出了本公开实施例所提供的一种获取目标操作对应的第一行为数据的方法的流程图;
55.图3示出了本公开实施例所提供的一种获取第一目标操作图片的示意图;
56.图4示出了本公开实施例所提供的一种页面测试方法的具体实施过程的流程图;
57.图5示出了本公开实施例所提供的一种页面测试装置的示意图;
58.图6示出了本公开实施例所提供的一种计算机设备结构示意图。
具体实施方式
59.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
60.另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
61.在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
62.经研究发现,现有技术中,用户可以利用重播回放(replay record web,rrweb)组件记录其在目标页面上执行的各个目标操作对应的行为数据,以实现对目标页面的录制;再通过rrweb的回放模块将行为数据对应的目标操作复现在目标页面中,然后可以基于复现的目标操作对应的新的行为数据,实现对目标页面兼容性的测试。但是,在利用生成的行
为数据进行测试时,由于rrweb组件在进行录制的过程中,生成的行为数据有限,影响了测试结果的准确性。如,利用某一目标操作对应的已产生的行为数据在目标页面中复现目标操作时,可能存在同一操作位置处,两次点击的页面控件不同,产生的页面效果相同,导致生成相同的行为数据的情况,进而,可以确定出此次页面测试的结果为兼容的。但同一操作位置对应的页面控件不同,说明页面是不兼容的,因此,降低了测试结果的准确性。
63.基于上述研究,本公开提供了一种页面测试方法、装置、计算机设备和存储介质,由于每个目标操作对应的操作图片,能够反映执行该目标操作时目标页面的页面图像,因此,基于第一操作图片和利用第一行为数据在目标页面中重新执行目标操作时生成的第二操作图片,能够准确地判断出两个操作图片所对应的页面图像是否一致,在确定页面图像一致的情况下,说明两次目标操作为同一操作,也即可以确定该目标操作在目标页面中兼容,反之,确定该目标操作在目标页面中不兼容。进而,基于每个目标操作对应的第一操作图片和第二操作图片,能够确定每个目标操作在目标页面中是否兼容,当确定每个目标操作在目标页面中兼容时,能够确定目标页面为兼容的;当确定任一个目标操作在目标页面中不兼容时,则确定目标页面为不兼容的。从而,基于确定的每个目标操作的兼容结果,能够实现准确地确定目标页面的兼容性,提高了目标页面的测试结果的准确性。
64.针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
65.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
66.需要说明的是,本公开实施例中所提到的特定名词包括:
67.html:hyper text mark-up language,超文本标记语言,一种标记语言,是网页制作所必备的语言。
68.为便于对本实施例进行理解,首先对本公开实施例所公开的一种页面测试方法进行详细介绍,本公开实施例所提供的页面测试方法的执行主体一般为具有一定计算能力的计算机设备,在一些可能的实现方式中,该页面测试方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
69.下面以执行主体为页面测试为例对本公开实施例提供的页面测试方法加以说明。
70.如图1所示,为本公开实施例提供的一种页面测试方法的流程图,可以包括以下步骤:
71.s101:获取用户在目标页面中执行的每个目标操作对应的第一行为数据,以及每个目标操作对应的第一操作图片,并存储第一行为数据和第一操作图片。
72.这里,本公开实施例所提供的目标页面可以为任一在线学习app、互联网学习app中帮助用户学习的h5页面,例如英文单词速记app中的单词h5页面、古诗词背诵app中的诗词h5页面中等,对此不做赘述。
73.或者,目标页面也可以为任一已开发的app对应的页面,其中,app可以为pc端中的app,也可以为移动终端中的app,这里不进行限定。例如app可以为pc端微信h5页面、移动终端微信h5页面等。
74.目标页面可以是利用特定的网页标记语言(html语言)编写的页面,并且,为了获
取操作图片,开发人员在编写目标页面时,需要引入本公开实施例所提供的页面测试插件,即jsdk插件。具体实施时,可以在编写目标页面时,引用该插件对应的代码《script src=jsdk.js》《/script》,之后,编写完成的目标页面将具有利用jsdk插件进行测试的功能。其中,jsdk插件包括用于录制和复现用户在目标页面中执行的目标操作的rrweb组件。一个目标页面中可以包括多个不同的子页面,不同的子页面可以用于展示不同的页面图像以及页面效果。
75.编写完成的目标页面可以对应于一个页面链接,用户还可以通过点击该页面链接进入目标页面。其中,当用户点击页面链接时,将自动跳转至用户所使用的用户终端对应的浏览器(如微信浏览器),然后在浏览器中打开页面链接对应的目标页面。
76.目标操作可以为用户在目标页面中执行的页面操作,如,滑动操作、点击操作、输入操作等。每执行一次目标操作可以对应于一个由rrweb组件产生的行为数据。行为数据可以包括目标操作的操作类型、目标名称和操作路径信息等。
77.每个目标操作对应的操作图片可以是用户在执行目标操作时目标页面的页面图像或部分页面图片。
78.具体实施时,当用户利用某一浏览器打开目标页面时,在该用户得到获取行为数据的授权的情况下,用户可以点击在目标页面的预设位置处设置的录制组件,确定开始获取接下来将执行的每个目标操作对应的行为数据。之后,rrweb组件可以获取用户可以目标页面中执行每一个目标操作,并获取该目标操作对应的第一行为数据以及每个目标操作对应的第一操作图片。其中,可以在用户每执行一个目标操作之后,将执行该目标操作的过程中目标页面对应的页面图像中的至少部分图像作为第一操作图片。
79.然后在用户确定停止获取行为数据之后,可以将该每个目标操作对应的第一行为数据和第一操作图片进行存储。具体实施时,可以利用以下两种方式对第一行为数据和第一操作图片进行存储:
80.第一种方式:可以在每获取一个目标操作的第一行为数据和第一操作图片之后,就将该目标操作的第一行为数据和第一操作图片进行存储。
81.第二种方式:可以在确定用户停止获取行为数据之后,将获取的所有的目标操作对应的第一行为数据和第一操作图片一起进行存储。关于具体的存储方式,可以根据需要进行设置,这里不进行限定。
82.并且,针对第一种方式,在将每个目标操作对应的第一行为数据和第一操作图片进行存储之前,还可以基于该目标操作的第一行为数据和第一操作图片,生成该目标操作对应的数据包,并存储该数据包。之后,可以利用该数据包获取第一行为数据和第一操作图片。
83.针对第二种方式,在确定用户停止获取行为数据之后,可以基于获取的所有的目标操作对应的第一行为数据和第一操作图片,生成组合数据包,并存储该组合数据包。
84.另外,可以将获取的每个目标操作对应的第一行为数据和第一操作图片存储在安装打开目标网页的浏览器的设备(pc端或移动终端)的本地数据库中,如localstorage。或者,可以将获取的每个目标操作对应的第一行为数据和第一操作图片发送给后台服务器端,这里不进行限定。
85.s102:在确定目标页面再次被打开的情况下,基于第一行为数据,在目标页面中重
新执行每个目标操作,并获取每个目标操作重新执行过程中的第二操作图片。
86.这里,当确定目标页面再次被打开的情况下,用户可以选择是否需要重新执行目标操作,如果是,则可以获取该目标页面对应的预先存储的第一行为数据,然后基于第一行为数据,在目标页面中重新执行每个第一行为数据对应的目标操作。
87.具体实施时,针对获取的每个第一行为数据,目标页面中的jsdk插件可以根据该第一行为数据,生成该第一行为数据对应的js代码,然后利用生成的js代码在目标页面中模拟该第一行为数据对应的目标操作,从而实现在目标页面中复现目标操作。
88.其中,再次打开目标页面的可以为执行目标操作的用户,也可以为获取该目标页面对应的页面链接的其他用户。并且,可以利用获取第一行为数据时的浏览器再次打开目标页面,也可以利用其他的浏览器再次打开目标页面。另外,打开目标页面的浏览器可以为安装获取第一行为数据时的浏览器的同一设备,也可以为不同的设备。这里均不进行限定。
89.如果否,则说明用户不存在重新执行目标操作的需要,也即不存在对该目标页面进行兼容性测试的需要,退出执行流程。并且,若再次打开目标页面的用户为得到获取行为数据的授权的用户,则此用户可以选择获取新的行为数据,然后可以利用目标页面中的jsdk插件,获取并存储其在目标页面中执行的新的目标操作对应的第一行为数据和第一操作图片,这里不再赘述。
90.需要说明的是,当第一行为数据存储在本地数据库的情况下,只有使用本地数据库对应的设备再次打开目标页面,才可以获取第一行为数据并重新执行目标操作。若使用其他设备再次打开目标页面,由于其他设备中未存储第一行为数据,则无法根据该第一行为数据,确定目标操作,进而,无法重新执行目标操作。
91.当第一行为数据存储在后台服务器端的情况下,当用户存在重新执行目标操作的需要时,可以使用任一设备再次打开目标页面,然后该设备可以在目标页面对应的后台服务器端获取存储的第一行为数据,并利用第一行为数据,重新执行目标操作。
92.进而,在利用获取的第一行为数据,重新执行目标操作时,还可以利用s101中获取第一操作图片的方式,获取重新执行每个目标操作的过程中的第二操作图片。
93.如果重新执行的某一目标操作执行失败,则可以将该目标操作对应的第二操作图片置为空;或者,不产生该目标操作的第二操作图片。
94.s103:基于第一操作图片和第二操作图片,确定目标页面的测试结果。
95.本步骤中,针对每个第一行为数据对应的目标操作,还可以获取预先存储的该目标操作对应的第一操作图片。然后,可以基于在重新执行该目标操作的过程中产生的第二操作图片,确定该目标操作对应的第一操作图片和第二操作图片是否相同,如果是,则说明两次执行的目标操作为同一目标操作,也即可以确定该目标操作在目标页面中兼容,如果否,说明该目标操作在目标页面中不兼容,也即可以确定目标页面为不兼容的。进一步的,基于每个目标操作对应的第一操作图片和第二操作图片,能够确定每个目标操作在目标页面中是否兼容,当确定每个目标操作在目标页面中兼容时,能够确定目标页面为兼容的;当确定任一个目标操作在目标页面中不兼容时,则确定目标页面为不兼容的,从而,基于确定的每个目标操作的兼容结果,能够实现准确地确定目标页面的兼容性。
96.其中,目标页面的兼容性可以为当目标页面在同一浏览器或者不同的浏览器中被两次打开时,执行同样的目标操作将产生同样的页面效果。
97.如果某一目标操作的第二操作图片为空,或第二操作图片不存在,则可以直接说明目标页面为不兼容的,以及该目标操作在目标页面中不兼容。每个目标操作对应的操作图片,能够反映执行该目标操作时目标页面的页面图像,因此利用获取的操作图片判断目标页面的兼容性,准确性较高。
98.另外,在确定两次执行的目标操作为同一目标操作的情况下,还可以进一步的基于两次目标操作在目标页面中对应的操作结果,确定两次目标操作产生的页面效果是否相同,如果是,则说明目标页面兼容,如果否,则说明目标页面为不兼容的,从而实现了对目标页面兼容性的进一步测试,进一步提高了测试结果的准确性。
99.另外,在确定目标页面的测试结果之后,还可以将该测试结果上传至服务器端进行存储。开发人员可以从服务器端获取测试结果,并根据测试结果对目标页面进行维护,从而,提高目标页面的兼容性。
100.这样,基于每个目标操作对应的第一操作图片和第二操作图片的比较结果,可以准确地确定出目标页面的兼容性,实现对目标页面的测试。并且,还可以实现具体的确定影响目标页面兼容性的每个目标操作,以使开发人员可以根据上述确定的影响兼容性的目标操作,对目标页面进行维护,从而,提高页面的兼容性。
101.此外,本公开实施例所提供的页面测试方法,还可以实现利用多个设备对目标页面进行兼容性测试,例如,可以利用多个移动终端再次打开目标页面,然后利用在重新执行目标操作的过程中、每个移动终端产生的第二操作图片和预先存储的第一操作图片,实现对目标页面在多个移动终端中的兼容性测试,不需要利用人工的方式进行页面测试,不仅节省了人力资源,还大大提高了页面测试的效率。
102.这样,由于每个目标操作对应的操作图片,能够反映执行该目标操作时目标页面的页面图像,因此,基于第一操作图片和利用第一行为数据在目标页面中重新执行目标操作时生成的第二操作图片,能够准确地判断出两个操作图片所对应的页面图像是否一致,在确定页面图像一致的情况下,说明两次目标操作为同一操作,也即可以确定该目标操作在目标页面中兼容,反之,确定该目标操作在目标页面中不兼容。进而,基于每个目标操作对应的第一操作图片和第二操作图片,能够确定每个目标操作在目标页面中是否兼容,当确定每个目标操作在目标页面中兼容时,能够确定目标页面为兼容的;当确定任一个目标操作在目标页面中不兼容时,则确定目标页面为不兼容的,从而,基于确定的每个目标操作的兼容结果,能够准确地确定目标页面的兼容性测试结果,提高了目标页面的测试结果的准确性。
103.在一种实施例中,针对s101,可以按照图2所示的方法,获取每个目标操作对应的第一行为数据。如图2所示,为本公开实施例所提供的一种获取目标操作对应的第一行为数据的方法的流程图,可以包括以下步骤:
104.s201:确定用户在目标页面中执行的每一个目标操作的操作类型、目标名称和第一操作位置。
105.这里,操作类型可以包括与滑动操作对应的滑动类型,与点击操作对应的点击类型,与输入操作对应的输入类型等。目标名称可以目标操作的名称,如滑动、点击等。操作位置为目标操作所作用在目标页面中的位置,具体的,可以为目标操作所作用的目标页面中的控件的位置。
106.具体实施时,针对用户在目标页面中执行的任一个目标操作,在用户执行该目标操作之后,jsdk插件可以基于用户执行该目标操作时,在目标页面触发的位置,确定该目标操作的第一操作位置,并且,可以在确定执行完一个目标操作之后,基于执行该目标操作的操作总时长、操作位置的变化等信息,确定该目标操作的操作类型以及目标名称。在一种实施方式中,jsdk插件可以基于确定的操作类型,确定该目标操作的目标名称。进而,确定用户在目标页面中执行的每一个目标操作的操作类型、目标名称和第一操作位置。
107.s202:基于每个目标操作的第一操作位置,确定每个目标操作对应的第一操作路径信息。
108.这里,第一操作路径信息可以是用于指示目标操作对应的操作路径的xpath路径,一个目标操作存在与之对应的唯一的xpath路径。
109.针对用户在目标页面中执行的任一个目标操作,在确定该目标操作的第一操作位置之后,可以确定第一操作位置所对应的目标页面中的控件的位置,然后,可以利用该控件的位置,确定该目标操作的第一操作路径信息。
110.s203:基于每个目标操作的操作类型、每个目标操作对应的第一操作路径信息、每个目标操作对应的目标名称,生成每个目标操作对应的第一行为数据。
111.本步骤中,针对任一目标操作,在基于s201和s202确定该目标操作的操作类型、第一操作路径信息和目标名称之后,还可以确定用户执行该目标操作之后,目标页面展示的页面内容以及目标页面的页面效果等信息,其中,页面内容可以包括目标页面中展示的图片、文字、链接等信息,页面效果可以包括目标页面的主题(如夜间主题、环保主题等)、该目标操作对应的执行结果信息等。其中,执行结果信息可以为目标操作执行完成后是否存在可展示的目标页面,例如,当不存在可展示的目标页面时,执行结果信息可以为“无效操作,请重新执行操作”。
112.进一步的,可以基于确定的该目标操作对应的上述信息,生成该目标操作对应的第一行为数据。进而,可以生成每个目标操作对应的第一行为数据。
113.根据s101可知,针对任一目标操作,不仅需要生成该目标操作对应的第一行为数据,还需要获取该目标操作对应的第一操作图片。在一种实施例中,可以在确定该目标操作对应的第一操作位置之后,确定用户在执行该目标操作的过程中目标页面对应的页面图像,然后以确定的第一操作位置为中心,确定页面图像中与该第一操作位置的距离小于预设距离的位置点,然后基于确定的位置点,从目标图像中截取包括确定的至少部分位置点的预设形状的子图像,然后将该子图像作为第一操作图片。其中,预设距离可以是根据需要设置的,例如,可以为2cm、3cm等;预设形状可以是正方形、长方形、圆形等,这里不进行限定。
114.并且,在从目标图像中截取子图像时,需要截取包括目标操作所作用的目标页面中的控件的控件图像,其中,控件图像用于标识目标页面中的控件。进而,在利用第一操作图片和第二操作图片对目标页面进行兼容性测试时,可以通过比较两图片中的控件图像确定两次操作作用的是否为同一控件,也即,确定两次操作是否相一致,进而,可以实现对目标页面兼容性的测试。
115.这里,为了保证每次截取的子图像中包含目标操作所作用的目标控件的控件图像,预设距离和预设形状可以根据目标页面中的控件的控件图像的设置标准确定。例如,每
个控件图像的设置标准为面积为1cm2的正方形,则可以将预设距离设置为2cm,预设形状为正方形。
116.具体实施时,针对用户在目标页面中执行的任一目标操作,可以将该目标操作所作用的目标页面中的控件作为该目标操作对应的第一目标控件。之后,在根据第一操作位置和预设距离截取第一操作图片时,截取包括第一目标控件的控件图像的、预设形状的第一操作图片。另外,在截取第一操作图片时,还可以记录该第一操作图片所作用的第一目标控件的控件名称,并还可以将记录的该控件名称添加到该目标操作对应的第一行为数据中。
117.在一种实施例中,可以利用jsdk插件中嵌入的html2canvas和domtoimage组件实现截取目标操作对应的第一操作图片,以及记录目标操作所作用的第一目标控件的控件名称。
118.如图3所示,为本公开实施例所提供的一种获取第一目标操作图片的示意图,其中,a为目标页面对应的页面图像,b为截取的第一目标操作图片,b0为放大后的截取的第一目标操作图片,c为目标操作对应的第一操作位置,d为第一目标控件。
119.在一种实施例中,针对s101,在获取每个目标操作对应的第一操作图片的过程中,由于用户在目标页面中执行目标操作的过程是连贯的,但是可能由于页面环境问题(如网络波动),造成用户在执行目标操作之后,未能及时生成目标操作对应的第一操作图片,进而导致某目标操作对应的第一操作图片和第一行为数据不匹配等问题。为了解决上述问题,本公开实施例提供的页面测试方法还提供一种数据生成队列,基于预设的数据生成队列,生成与目标操作对应的、且相匹配的第一操作图片和第一行为数据。
120.具体实施时,针对用户执行的每个目标操作,可以确定每个目标操作对应的操作时间,以及可以确定该目标操作对应的目标页面的页面图像,然后基于每个目标操作对应的操作时间,将每个目标操作对应的页面图像存入预设的数据生成队列。之后,可以按照操作时间的时间先后顺序,利用存储的每个目标操作对应的页面图像,依次生成每个目标操作对应的第一操作图片。
121.当操作时间在前的目标操作对应的第一操作图片未生成时,不执行生成任一个操作时间在后的目标操作对应的第一操作图片的步骤。并且,还可以基于每个目标操作的操作时间,将获取的每个目标操作对应的操作类型、第一操作路径信息、目标名称、目标页面展示的页面内容和目标页面的页面效果等信息,和该目标操作对应的页面图像一起存入预设的数据生成队列,然后按照操作时间的时间先后顺序,在确定操作时间在前的目标操作的第一操作图片和第一行为数据生成完成后,才继续执行生成下一目标操作对应的第一操作图片和第一行为数据的步骤。这样,基于预设的数据生成队列,能够生成与每个目标操作对应的、且相匹配的第一操作图片和第一行为数据,进而,为后续利用第一行为数据和第一操作图片对目标页面进行兼容性测试提供保障。
122.另外,在重新执行每个目标操作之后,可以利用上述实施例中所提及的生成第一操作图片的方法,利用js(javascript)代码在目标页面中模拟获取的第一行为数据对应的目标操作,在实现在目标页面中复现目标操作之后,生成重新执行每个目标操作所对应的第二操作图片,这里不再赘述。
123.在一种实施例中,在重新执行每个目标操作的过程中,可以基于该目标操作对应
的第一行为数据中,确定该目标操作的目标名称,并将该目标操作的目标名称展示在目标页面中。这样,用户可以获取正在重新执行的目标操作的目标名称,还可以根据该目标名称和重新执行的目标操作的执行结果信息,确定重新执行的目标操作是否正确,进而,实现人工对目标页面的兼容性的判断,进一步提高了页面测试的准确性。
124.在一种实施例中,在重新执行每个目标操作之后,还可以基于上述实施例中所提及的获取第一行为数据的方法,获取重新执行每个目标操作所对应的第二行为数据,这里不再赘述。然后,可以基于每个目标操作对应的第一行为数据和第二行为数据,确定目标页面的测试结果。
125.具体实施时,可以对每个目标操作对应的第一行为数据和第二行为数据进行比较,确定每个目标操作对应的比较结果,进而,确定在目标页面中执行每个目标操作时的兼容性,最终基于每个目标操作对应的比较结果,确定目标页面兼容性的测试结果。例如,可以将第一行为数据和第二行为数据中的操作类型进行比较,在确定两个操作类型相同时,确定在目标页面中执行上述行为数据对应的目标操作是兼容的,进而,基于每个行为数据中的操作类型,可以每个目标操作是否兼容,即可以确定目标页面兼容性的测试结果。
126.在一种实施例中,关于基于每个目标操作对应的第一行为数据和第二行为数据,确定目标页面的测试结果的具体介绍,可以参照下述实施例中介绍的步骤。
127.步骤一、针对每个第二行为数据,基于该第二行为数据对应的第二操作路径信息,确定该第二行为数据对应的第二目标控件。
128.步骤二、确定与该第二行为数据相匹配的第一行为数据,并确定该第一行为数据对应的第一目标控件。
129.步骤三、基于第一目标控件和第二目标控件,确定目标页面的测试结果。
130.这里,针对获取的每个第二行为数据,可以确定其中所包括的第二操作路径信息,由于每个目标操作的操作路径信息唯一,所以可以根据该第二操作路径信息,确定与该第二操作路径信息对应的第二目标控件,也即,确定与该第二行为数据对应的第二目标控件。
131.之后,可以确定预先存储的与该第二行为数据对应的目标操作相匹配的第一行为数据,然后,确定第一行为数据中的第一操作路径信息,并基于该第一操作路径信息,确定与该第一行为数据对应的第一目标控件。
132.进而,可以将上述确定的第一目标控件和第二目标控件进行比较,确定两次执行的操作是否作用于同一目标控件,也即判断出两次执行的操作是否为同一目标操作,进而,可以确定在目标页面中执行第一行为数据对应的目标操作时的兼容性,最终可以确定目标页面兼容性的测试结果。
133.这里,需要说明的是,在利用第一行为数据和第二行为数据,确定目标页面的测试结果时,不仅可以使用行为数据中所包括的操作路径信息,还可以使用行为数据中的一种或多种。在确定使用的行为数据在第一行为数据和第二行为数据中均相同的情况下,确定在目标页面中执行第一行为数据和第二行为数据对应的目标操作为兼容的;当存在使用的行为数据中任一行为数据在第一行为数据和第二行为数据中不相同的情况下,确定在目标页面中执行第一行为数据和第二行为数据对应的目标操作不兼容。在目标页面中重新执行目标操作的过程中,如果确定存在任一目标操作不兼容,则可以确定该目标页面为不兼容的;反之,则可以确定目标页面为兼容的。基于上述步骤,可以实现基于每个目标操作对应
的第一行为数据和第二行为数据,准确地确定目标页面的测试结果。
134.在一种实施例中,在重新执行每个目标操作的过程中,可能会因为页面环境问题,造成重新执行某一目标操作执行失败,进而,当执行失败时,也即无法生成该目标操作对应的第二行为数据和第二操作图片。进一步的,在确定目标操作对应兼容性时,由于无法获取其对应的第二行为数据和第二操作图片,则可以确定该目标操作不兼容,进而,可以确定目标页面的测试结果为不兼容。
135.其中,执行失败可以包括重新执行某一目标操作之后,目标页面无反应,或者,当该重新执行某一目标操作时,未在目标页面中执行该目标操作等。
136.但是,上述执行失败的原因可能是因为页面环境问题,在页面环境问题正常的情况下,可能可以成功地重新执行上述目标操作,并且,基于获取的该目标操作对应的第二行为数据和第二操作图片,可以确定目标页面的测试结果为兼容,于是,影响了测试结果的准确性。
137.针对上述问题,本公开实施例所提供的方法还设置了预设失败阈值,当重新执行某一目标操作失败时,可以重新执行该目标操作,直至确定重新执行该目标操作的执行失败次数大于预设失败阈值时,停止执行该目标操作,将该目标操作对应的页面测试结果确定为不兼容,并继续执行该目标操作的下一目标操作。例如,将预设失败阈值设置为100次,若重新执行某一目标操作的执行失败次数超过100次,则暂停重新执行该目标操作,继续执行该目标操作的下一目标操作。
138.另外,如果重新执行某一目标操作的执行失败次数超过预设失败阈值,则可以将最后一次执行失败时产生的第二操作图片作为该目标操作对应的、最终的第二操作图片,或者,也可以将任一次执行失败时产生的第二操作图片作为该目标操作对应的、最终的第二操作图片,这里进行限定。如果在重新执行某一目标操作的执行失败次数超过预设失败阈值,成功地重新执行了该目标操作在,则可以将执行成功时生成的第二操作图片作为该目标操作对应的、最终的第二操作图片。
139.这样,利用预设失败阈值对执行失败的目标操作进行容错处理,能够避免在重新执行目标操作的过程中,由于页面环境问题造成此次目标操作执行失败而引起的页面测试结果的误判问题,进一步提高了测试结果的准确性。
140.如图4所示,为本公开实施例所提供的一种页面测试方法的具体实施过程的流程图,可以包括以下步骤:
141.s401:获取用户在目标页面中执行的每个目标操作对应的第一行为数据,以及每个目标操作对应的第一操作图片。
142.s402:存储每个目标操作对应的第一行为数据和第一操作图片。
143.s403:在确定目标页面再次被打开的情况下,获取存储的每个目标操作对应的第一行为数据。
144.s404:基于获取的第一行为数据,在目标页面中重新执行每个目标操作。
145.这里,在重新执行每个目标操作的过程中,获取每个目标操作重新执行过程中的第二操作图片,以及每个目标操作对应的第二行为数据。并在重新执行每个目标操作的过程中,基于目标操作对应的第一行为数据,展示目标操作的目标名称,以及,利用预设失败阈值对重新执行的每个目标操作进行容错处理。
146.s405:基于每个目标操作对应的第一行为数据和第二行为数据,以及每个目标操作对应的第一操作图片和第二操作图片,确定目标页面的兼容性测试结果。
147.s406:将目标页面的兼容性测试结果发送至服务器端。
148.这里,可以将每个目标操作对应的测试结果和目标页面的测试结果一起发送至服务器端,以使开发人员根据存储的测试结果,对目标页面进行兼容性调整,提高目标页面的兼容性。
149.关于s401~s406的具体执行步骤,可以参照s101~s103和s201~s203的介绍,这里不再赘述。
150.本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
151.基于同一发明构思,本公开实施例中还提供了与页面测试方法对应的页面测试装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述页面测试方法相似,因此装置的实施可以参见方法的实施,重新之处不再赘述。
152.如图5所示,为本公开实施例提供的一种页面测试装置的示意图,包括:
153.获取模块501,用于获取用户在目标页面中执行的每个目标操作对应的第一行为数据,以及每个目标操作对应的第一操作图片,并存储所述第一行为数据和第一操作图片;
154.复现模块502,用于在确定所述目标页面再次被打开的情况下,基于所述第一行为数据,在所述目标页面中重新执行每个目标操作,并获取每个目标操作重新执行过程中的第二操作图片;
155.确定模块503,用于基于所述第一操作图片和第二操作图片,确定所述目标页面的测试结果。
156.在一种可能的实施方式中,所述获取模块501,用于确定用户在目标页面中执行的每一个目标操作的操作类型、目标名称和第一操作位置;
157.基于每个所述目标操作的第一操作位置,确定每个所述目标操作对应的第一操作路径信息;
158.基于每个所述目标操作的操作类型、每个所述目标操作对应的第一操作路径信息、每个所述目标操作对应的目标名称,生成每个所述目标操作对应的第一行为数据。
159.在一种可能的实施方式中,所述获取模块501,用于从执行所述目标操作过程中所述目标页面对应的页面图像中,截取与所述目标操作的第一操作位置的距离小于预设距离的位置点所对应的子图像,并将所述子图像作为所述第一操作图片;其中,所述子图像中包括所述目标操作所作用的第一目标控件的控件图像。
160.在一种可能的实施方式中,所述获取模块501,用于确定每个所述目标操作对应的操作时间,基于每个所述目标操作对应的操作时间,将执行每个所述目标操作的过程中、目标页面的页面图像存入预设的数据生成队列;
161.按照操作时间的时间先后顺序,利用所述数据生成队列,依次生成每个所述目标操作对应的第一操作图片。
162.在一种可能的实施方式中,所述获取模块501,还用于在所述复现模块重新执行每个所述目标操作之后,获取重新执行每个目标操作对应的第二行为数据;
163.所述确定模块503,还用于基于所述第一行为数据和所述第二行为数据,确定所述目标页面的测试结果。
164.在一种可能的实施方式中,所述确定模块503,用于针对每个第二行为数据,基于该第二行为数据对应的第二操作路径信息,确定该第二行为数据对应的第二目标控件;
165.确定与该第二行为数据相匹配的第一行为数据,并确定该第一行为数据对应的第一目标控件;
166.基于所述第一目标控件和所述第二目标控件,确定所述目标页面的测试结果。
167.在一种可能的实施方式中,所述复现模块502,还用于在重新执行每个目标操作的过程中,针对重新执行的每个目标操作,在确定重新执行该目标操作的执行失败次数大于预设失败阈值时,停止执行该目标操作,并执行该目标操作的下一目标操作。
168.在一种可能的实施方式中,所述复现模块502,还用于在重新执行每个目标操作的过程中,展示每个所述目标操作对应的目标名称。
169.关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
170.本公开实施例还提供了一种计算机设备,如图6所示,为本公开实施例提供的一种计算机设备结构示意图,包括:
171.处理器61和存储器62;所述存储器62存储有处理器61可执行的机器可读指令,处理器61用于执行存储器62中存储的机器可读指令,所述机器可读指令被处理器61执行时,处理器61执行下述步骤:s101:获取用户在目标页面中执行的每个目标操作对应的第一行为数据,以及每个目标操作对应的第一操作图片,并存储第一行为数据和第一操作图片;s102:在确定目标页面再次被打开的情况下,基于第一行为数据,在目标页面中重新执行每个目标操作,并获取每个目标操作重新执行过程中的第二操作图片以及s103:基于第一操作图片和第二操作图片,确定目标页面的测试结果。
172.上述存储器62包括内存621和外部存储器622;这里的内存621也称内存储器,用于暂时存放处理器61中的运算数据,以及与硬盘等外部存储器622交换的数据,处理器61通过内存621与外部存储器622进行数据交换。
173.上述指令的具体执行过程可以参考本公开实施例中所述的页面测试方法的步骤,此处不再赘述。
174.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的页面测试方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
175.本公开实施例所提供的页面测试方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的页面测试方法的步骤,具体可参见上述方法实施例,在此不再赘述。
176.该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
177.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开
所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
178.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
179.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
180.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
181.最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献