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

一种页面测试的方法、相关装置及设备与流程

2023-02-19 06:02:09 来源:中国专利 TAG:


1.本技术实施例涉及数据处理技术领域,尤其涉及一种页面测试的方法、相关装置及设备。


背景技术:

2.随着信息技术的发展,应用程序的使用也越来越广泛,但是应用程序的每个功能在上线之前,都需要通过开发、测试人员的开发和验证之后才能投入使用,通常可以是通过ab实验来进行开发或验证,以利用测试的效果来预估上线后的效果。
3.但是,由于开发、测试人员在进行拥有ab实验的功能模块进行开发、验证时,通常是需要通过抓包工具mock后端返回的ab实验数据来进行功能模块的验证的,而抓包工具mock后端返回的ab实验数据在验证的过程中不一定是能够直接使用的,以及在进行二级页面数据测试时,还需要经过人工根据ab实验数据对二级页面数据进行基础数据的修改后才能投入验证,以及对验证得到的展示的页面还需要通过人工截图进行获取,才能将验证截图上传至服务器,需要耗费大量的人力成本和时间成本,从而导致页面测试的效率不高。


技术实现要素:

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.图1是本技术实施例中页面控制系统的一个架构示意图;
46.图2是本技术实施例中页面测试的方法的一个实施例示意图;
47.图3是本技术实施例中页面测试的方法的另一个实施例示意图;
48.图4是本技术实施例中页面测试的方法的另一个实施例示意图;
49.图5是本技术实施例中页面测试的方法的另一个实施例示意图;
50.图6是本技术实施例中页面测试的方法的另一个实施例示意图;
51.图7是本技术实施例中页面测试的方法的另一个实施例示意图;
52.图8是本技术实施例中页面测试的方法的另一个实施例示意图;
53.图9是本技术实施例中页面测试的方法的一个原理流程图;
54.图10(a)是本技术实施例中页面测试的方法的一个页面示意图;
55.图10(b)是本技术实施例中页面测试的方法的另一个页面示意图;
56.图11是本技术实施例中页面测试的方法的一个页面测试数据示意图;
57.图12是本技术实施例中页面测试的方法的另一个页面测试数据示意图;
58.图13是本技术实施例中页面测试的装置的一个实施例示意图;
59.图14是本技术实施例中计算机设备的一个实施例示意图。
具体实施方式
60.本技术实施例提供了一种页面测试的方法、相关装置及设备,用于通过页面测试数据,渲染一级页面数据来得到目标一级页面,并能够自动截取目标一级页面的第一截图,然后可以通过目标一级页面跳转的目标二级页面,自动截取目标二级页面的第二截图,并将包括第一截图以及第二截图的页面截图测试结果自动上传至服务器,无需投入大量的人力成本和时间成本进行页面测试数据的修改和测试页面的截图,从而提高页面测试的效率。
61.本技术的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
62.应理解,本技术提供的页面测试的方法可以应用于通过页面测试数据完成页面测试的场景中,作为示例,例如通过视频页面测试数据对视频应用程序的视频首页图片轮播功能进行页面测试。作为另一个示例,例如通过网站页面测试数据对一网站首页的广告展示功能进行页面测试。作为再一示例,例如通过页面测试数据对一打车应用程序的搜索功能的搜索页面进行页面测试。在上述种种场景中,为了完成页面测试,现有技术中提供的解决方案为,通过抓包工具mock后端返回的ab实验数据来进行功能模块的验证的,而抓包工具mock后端返回的ab实验数据在验证的过程中不一定是能够直接使用的,以及在进行二级页面数据测试时,还需要经过人工根据ab实验数据对二级页面数据进行基础数据的修改后才能投入验证等,需要耗费大量的人力成本和时间成本,从而导致页面测试的效率不高。
63.为了解决上述问题,本技术提出了一种页面测试的方法,该方法应用于图1所示的页面控制系统,请参阅图1,图1为本技术实施例中页面控制系统的一个架构示意图,如图所示,客户端通过接收服务器发送的包含有用于描述一级页面数据的样式以及与一级页面数据预跳转的二级页面数据的基础字段,用于描述一级页面数据以及二级页面数据的待显示资源内容的资源字段,以及用于描述一级页面数据与二级页面数据之间调用关系的转换字段的页面测试数据,并根据页面测试数据,对一级页面数据进行渲染,以获取目标一级页面,并对目标一级页面进行截图处理,以得到第一截图,然后,从目标一级页面跳转至目标
二级页面,对目标二级页面进行截图处理,以得到第二截图,并向服务器发送包括第一截图以及第二截图的页面截图测试结果。通过上述方式,实现了通过页面测试数据,渲染一级页面数据来得到目标一级页面,并能够自动截取目标一级页面的第一截图,然后可以通过目标一级页面跳转的目标二级页面,自动截取目标二级页面的第二截图,并将包括第一截图以及第二截图的页面截图测试结果自动上传至服务器,能够避免需要通过投入大量的人力成本在页面测试的过程中对页面测试数据进行修改才能渲染一级页面或二级页面的情况,且无需对一级页面或二级页面进行人工截图,能够有效减少人力成本和时间成本的投入,从而提高页面测试的效率。
64.可以理解的是,客户端欲服务器之间通信连接,图1中仅示出了一种客户端,在实际场景中可以由更多种类的终端设备参与到页面测试的过程中,例如个人电脑(personal computer,pc),具体数量和种类因实际场景而定,具体此处不做限定。另外,图1中示出了一个服务器,但在实际场景中,也可以有多个服务器的参与,特别是在多模型训练交互的场景中,服务器的数量因实际场景而定,具体此处不做限定。
65.需要注意的是,本实施例中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。客户端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
66.为了解决上述问题,本技术提出了一种页面测试的方法,该方法一般由服务器或终端设备执行,相应地,应用于页面测试的装置一般设置于服务器或终端设备中。
67.下面将对本技术中页面测试的方法进行介绍,请参阅图2以及图9,本技术实施例中页面测试的方法一个实施例包括:
68.在步骤s101中,接收服务器发送的页面测试数据,其中,页面测试数据包括基础字段、资源字段以及转换字段,基础字段用于描述一级页面数据的样式以及一级页面数据预跳转的二级页面数据,资源字段用于描述一级页面数据以及二级页面数据的待显示资源内容,转换字段用于描述一级页面数据与二级页面数据之间调用关系;
69.在本实施例中,当开发或测试等工作人员预对页面中的某一个功能进行开发或测试时,可以通过向服务器发送网络请求,如一视频应用程序的首页广告轮播图的页面展示测试请求,具体可以是通过预先构建的开关软件开发工具(switch software development kit,switchsdk)库,其中,该switchsdk库可以用于在启动时获取页面测试数据并分类解析,以及在相应的功能模块进行页面测试如ab实验的地方,可以提供接口来实现获取页面测试数据的取值或回调页面测试数据等功能。
70.其中,页面测试数据具体可以表现为ab实验数据,或者其他测试数据,此处不做具体限制。ab实验数据是当网页或应用程序的页面每新增一种功能,需要有多种(一般是两种)呈现形式时,用于展现不用的形式的测试数据,其中,ab实验数据包括a组实验数据和b组实验数据,还可以包括a组实验数据下的c组实验数据,或b组实验数据下的d组实验数据等,其中,a组实验数据和b组实验数据都包含有多个开关语句,同理,c组实验数据以及d组实验数据也可以包含有多个开关语句。
71.例如,需要优化一视频应用程序的首页广告轮播图的大小这一功能,假设该功能的页面测试数据为一ab实验数据,该ab实验数据包括a组实验数据为用于手机尾号为单数的轮播图大小的测试数据,能够通过a组实验数据进行测试,得到如图10(a)所示的页面a,为假设测试该功能的ab实验数据还包括b组实验数据为用于手机尾号为双数的轮播图大小的测试数据,得到如图10(b)所示的页面b,可以理解的是,如图10(a)以及如图10(b)所示,a1具体可以表现为相对于b1尺寸较大的广告轮播图,a2以及a3具体可以表现为相对于b2以及b3尺寸较小的广告轮播图,其中,a5至a9,以及b4和b5均为页面图标的显示,如首页、会员中心或个人中心等,此处不作具体限制。
72.例如,如图11所示,ab实验数据可以包括开关版本号如“1.2.1”、应用程序名称如“w视频”、应用程序版本号如“9.1.1”、开关值适用的平台如“安卓”、基础字段、资源字段以及转换字段等。
73.其中,如图12所示,基础字段具体可以表现为基础(base)结点的开关字段值,base结点主要是用于描述一级页面数据的样式、二级页面数据或其他基础能力的开关,例如,一级页面数据的样式通过“feed_extend_type”字段描述,该字段的取值为2,可以表示feed视频流页面显示的样式为type2。一级页面数据具体可以表现为描述网页或应用程序的首页的页面数据,也可以是其他页面数据,此处不做具体限制,二级页面数据是一级页面数据的下一级页面数据,具体可以表现为落地页的页面数据,其中,落地页不是访问者最终访问的目标页,而只是引导访问者到目标页的一个中间页面,是通过访问者点击一级页面上的广告等元素后到达的第一个页面,通常在这个页面上只有外出链接,能够让访问者通过一级页面上的广告等元素链接到或跳转到相应的网站或应用程序中,可以理解的是,落地页只是一个网站或应用程序中的其中一页。
74.进一步地,如图12所示,资源字段具体可以表现为资源(resource)结点的开关字段值,用于描述一级页面数据以及二级页面数据的待显示资源内容,其中,待显示资源内容具体可以表现为资源地址或加载的地址,如首页资源地址为“http://xxxx.cc.ccc”、供应流为“xxxx.zip”或背景图标为“xxx.jpg”等。可以理解的是,由于线上环境中针对不同的用户群体服务器下发的页面测试数据中的取值可能会不一样,因此可以通过资源字段的变更来验证资源字段对应的资源是否能够在页面中正常显示,或资源字段对应的资源错误程序是否能够正常运行且生成相应的的错误提示等。
75.进一步地,如图12所示,转换字段具体可以表现为普通开关(switchs)结点的字段值,用于描述一级页面数据与二级页面数据之间调用关系,其中,该调用关系具体可以表现为二级页面数据的开关值与一级页面数据的开关值之间的依赖关系,如switchs结点中用于描述二级页面数据的每个子结点,可以有依赖的用于描述一级页面数据的base开关字段值,使得在测试过程中可以在二级页面数据中,根据switchs结点中包含的base子结点来间接索引到用于描述一级页面数据的base开关字段的取值,可以用于一级页面数据的更新等操作,从而能够通过转换字段使得页面测试数据中的开关语句的分类以及依赖关系更加明确,其中,开关值包括开关和开关字段值。
76.具体地,如图9所示,当开发或测试等工作人员需要对顶部搜索栏、顶部导航栏或整体背景色等功能进行测试时,可以通过启动switchsdk库,并调用获取开关数据(getswitchdatas)接口,向服务器发送页面测试请求,以使服务器通过开关数据接口进行
下发页面测试数据,以使后续能够根据获取到的页面测试数据对一级页面数据以及二级页面数据进行渲染,以快速获取渲染结果,从而在一定程度上提高页面测试的效率。
77.在步骤s102中,根据页面测试数据,对一级页面数据进行渲染,得到目标一级页面,并对目标一级页面进行截图处理,得到第一截图;
78.在本实施例中,在获取到页面测试数据后,可以对页面测试数据中的一级页面数据进行读取,可以得到创建一个一级页面对象需要的多个开关以及开关字段值,然后,可以采用图形上下文(coregraphics)绘图引擎对包含了多个开关以及开关字段值的一级页面数据进行渲染,并对渲染得到目标一级页面进行自动截图,以获取第一截图,无需耗费大量的人力成本对目标一级页面进行截图,从而可以在一定程度上提高页面测试的效率。
79.其中,coregraphics是扩特兹(quartz 2d)开源项目中的一个高级绘图引擎,可用于与多种应用程序平台的图形绘制应用开发。coregraphics是对底层c语言的一个简单封装,其中提供大量的低层次,轻量级的2d渲染应用程序(application programming interface,api)接口。core graphicsapi简单易于使用,并且提供了强大的功能访问,如透明层,基于路径的涂层绘制,屏幕外呈现,高级色彩管理,抗锯齿以及pdf文档的生成解析等操作功能。
80.具体地,如图9所示,当获取到页面测试数据后,可以通过读取(read)接口,从页面测试数据中,快速读取包含有多个开关以及开关字段值的一级页面数据,进而,通过调用coregraphics中的提供的基于路径的涂层绘制,屏幕外呈现,高级色彩管理等api,对读取到的一级页面数据进行渲染,然后,在渲染得到的目标一级页面展现完成后,再通过coregraphics中的提供的截图api对目标一级页面进行自动截图,具体可以是调用uiimagepngrepresentation函数以及imagewithdata函数,来将目标一级页面生成uiimage对象,即得到第一截图,不仅能够快速准确地获取到第一截图,还能够由于对一级页面测试数据的渲染以及对目标一级页面的自动截图的操作,都可以通过coregraphics启动的子线程中进行,不会影响页面测试的操作页面或测试页面等,以避免因需要对大量的一级页面数据进行加载而导致操作页面或测试页面卡顿的情况,从而能够在一定程度上提高页面测试的效率。
81.在步骤s103中,从目标一级页面跳转至目标二级页面,并对目标二级页面进行截图处理,得到第二截图,其中,目标二级页面为根据页面测试数据,对二级页面数据进行渲染得到的;
82.在本实施例中,在获取到页面测试数据后,可以从对页面测试数据中分别读取一级页面数据以及二级页面数据,可以得到一个一级页面对象需要的多个开关以及开关字段值,以及创建一个二级页面对象需要的多个开关以及开关字段值,进而,可以调用面向对象操作线程(nsthread)技术中的“initwithtarget”方法,以及传入目标(target)和方法地址来开启不同的子线程,然后,在不同的子线程中通过coregraphics绘图引擎,分别对一级页面数据以及二级页面数据进行同步渲染,来得到目标一级页面以及目标二级页面,能够避免将太耗时的渲染操作放在主线程中执行,易造成主线程堵塞,导致运行卡顿的现象,以及能够避免需要先通过人工查找到一级页面数据,再根据一级页面数据修改二级页面数据的基础数据后,才能对二级页面数据进行渲染的情况,能够减少人力成本的消耗,从而在一定程度上提高页面测试的效率。
83.其中,nsthread技术基于线程使用的,轻量级的多线程编程方法,其中,一个nsthread对象代表一个线程,可以通过管理线程的生命周期,来处理线程同步等问题。
84.进一步地,在通过coregraphics提供的api对目标一级页面截图得到第一截图后,可以直接从目标一级页面跳转至目标二级页面对该目标二级页面进行自动截图,以快速获取第二截图,无需再调用一次coregraphics提供的api来对目标二级页面进行截图,且耗费大量的人力成本对目标二级页面进行截图,从而可以在一定程度上提高页面测试的效率。
85.具体地,如图9所示,当获取到页面测试数据后,可以通过read接口,若页面测试数据中存在有依赖的一级页面数据以及二级页面数据,如存在有依赖的ab实验值,则可以分别读取页面测试数据中的一级页面数据以及二级页面数据,如获取ab依赖值,进而通过调用nsthread技术开启不同的子线程,并在不同的子线程中,通过coregraphics绘图引擎分别对一级页面数据以及二级页面数据进行同步渲染,如分别加载ab实验取值对应的页面,能够得到目标一级页面以及目标二级页面,然后,在使用coregraphics提供的截图api对目标一级页面截图得到第一截图后,可以直接从目标一级页面跳转至目标二级页面对该目标二级页面进行自动截图,以快速获取第二截图,能够通过多个子线程对不同的页面数据进行同步渲染,来避免运行卡顿的现象,以及无需耗费大量的人力成本对目标一级页面以及目标二级页面进行截图,从而可以在一定程度上提高页面测试的效率。
86.在步骤s104中,向服务器发送包括第一截图以及第二截图的页面截图测试结果。
87.具体地,在获取到第一截图以及第二截图后,可以将第一截图以及第二截图写入日志数据中保存为页面截图测试结果,具体可以是通过将生成的第一截图以及第二截图写入switchsdk库管理的沙盒目录中,然后,可以按照预设时机将日志数据中的页面测试结果上传到服务器中,其中,预设时机是根据实际应用需求进行设置,通常可以设置为下一次接收到服务器发送的页面测试数据时,还可以是其他时间,此处不做具体限制。
88.在本技术实施例中,提供了一种页面测试的方法,通过上述方式,实现了通过页面测试数据,渲染一级页面数据来得到目标一级页面,并能够自动截取目标一级页面的第一截图,然后可以通过目标一级页面跳转的目标二级页面,自动截取目标二级页面的第二截图,并将包括第一截图以及第二截图的页面截图测试结果自动上传至服务器,能够避免需要通过投入大量的人力成本在页面测试的过程中对页面测试数据进行修改才能渲染一级页面或二级页面的情况,且无需对一级页面或二级页面进行人工截图,能够有效减少人力成本和时间成本的投入,从而提高页面测试的效率。
89.可选地,在上述图2对应的实施例的基础上,本技术实施例提供的页面测试的方法另一个可选实施例中,如图3所示,该方法还包括:
90.在步骤s301中,将页面测试数据解析为一级页面对象和二级页面对象,其中,一级页面对象包括多个一级页面键值对,二级页面对象包括多个二级页面键值对,多个一级页面键值对和多个二级页面键值对分别与基础字段、资源字段以及转换字段具有对应关系;
91.在步骤s302中,将多个一级页面数据键值对和多个二级页面数据键值进行保存,其中,多个一级页面数据键值对和多个二级页面数据键值对之间具有映射关系。
92.在本实施例中,在获取到页面测试数据后,可以通过预设的数据格式来将页面测试数据,转换为统一数据格式的包含有多个一级页面键值对的一级页面对象以及包含有多个二级页面键值对二级页面对象,然后,可以将多个一级页面键值对和多个二级页面键值
对进行对应保存,使得多个一级页面数据键值对和多个二级页面数据键值对之间具有映射关系,以便于计算机的能够对页面测试数据进行快速读取和存储,从而能够在一定程度上提高页面测试的效率,其中,预设的数据格式具体可以表现为对象标记(javascript object notation,json)数据格式,还可以是其他数据格式,此处不做具体限制。
93.其中,由于某些一级页面数据可能是由多个开关以及开关值共同决定的,因此多个一级页面键值对可以是用于表示一级页面数据存在的多个开关以及开关字段值。例如,假设一级页面a需要开关m、n、k才能确定显示哪种样式,那么对应的一级页面对象中就可能包含了对m、n、k取值的描述,同理,多个二级页面键值对是用于表示二级页面数据存在的多个开关以及开关字段值。
94.其中,多个一级页面数据键值对或多个二级页面数据键值对具体可以表现为键名称以及键值形式,如键名称为“key:k_pagetitleclass”,与其对应的键值为“value:0或1”,其中,0可以表示蓝色,1可以表示黑色,具体可以根据实际应用需求进行设置,此处不做具体限制。
95.具体地,当获取到页面测试数据后,可以按照json数据格式,将页面测试数据中一级页面数据以及二级页面数据,对应转换为数据格式统一且便于传输和读取的包含有多个一级页面键值对的一级页面对象,以及包含有多个二级页面键值对的二级页面对象,然后,可以调用轻量级本地数据库(nsuserdefaults)类方法,通过nsuserdefaults类中的“objectforkey:”方法以及“setobject:forkey:”方法来把将多个一级页面键值对和多个二级页面键值对进行对应保存,并通过nsuserdefaults类中的“dictionaryforkey”方法建立多个一级页面键值对和多个二级页面键值对之间的映射关系,以使后续需要获取一级页面对象和二级页面对象中的取值时,可以如同读取字符串一样,通过nsuserdefaults类直接读取所需键值对,无需通过人工查找数据存储文件,再对文件进行取值读取,能够减少读取数据的时间,从而在一定程度上提高页面测试的效率。
96.需要说明的是,为了防止外部用户对多个一级页面键值对和多个二级页面键值对中的key值的修改,导致页面测试出现错误或失败,本实施例可以对key进行类名和下划线的前缀拼接,来获取唯一的key值,以维护key值不易被修改。
97.例如,key值“key:k_pagetitleclass”就是将页面标题的类名“pagetitleclass”与下划线的前缀“k”进行拼接得到的。
98.可选地,在上述图3对应的实施例的基础上,本技术实施例提供的页面测试的方法另一个可选实施例中,如图4所示,根据页面测试数据,对一级页面数据进行渲染,得到目标一级页面数据,包括:
99.在步骤s401中,读取多个一级页面数据键值对;
100.在步骤s402中,根据多个一级页面数据键值对生成一级页面数据;
101.在步骤s403中,对一级页面数据进行渲染,得到目标一级页面。
102.在本实施例中,在将获取到页面测试数据解析为多个一级页面键值对和多个二级页面键值对,并将多个一级页面键值对和多个二级页面键值对进行对应保存后,可以switchsdk库中提供的枚举值,如base、resource、switch等字段名称来直接读取多个一级页面数据键值对,进而,可以通过读取到的多个一级页面数据键值对来生成能够用于创建一级页面的一级页面数据,然后,可以通过nsthread技术开启一个子线程,在子线程中调用
coregraphics绘图引擎来对一级页面数据进行渲染,从而得到目标一级页面。
103.其中,nsthread技术中的每个线程都维护了一个键值对的字典,该字典可以在线程里面的任何地方被访问,能够使得在整个线程的执行过程中字典中的信息都保持不变。
104.具体地,如图9所示,当将获取到页面测试数据解析为多个一级页面键值对和多个二级页面键值对,并将多个一级页面键值对和多个二级页面键值对进行对应保存后,可以通过读取(read)接口,按照switchsdk库中提供的base、resource、switch等字段名称,从nsuserdefaults类中直接查找到与这些字段名称相匹配的key值,并直接读取匹配到的key对应的键值,来生成能够用于创建一级页面的一级页面数据,然后,由于可以使用nsthread技术来开启一个子线程,并能够在子线程中调用coregraphics绘图引擎将一级页面数据渲染得到目标一级页面,能够通过预设的枚举值的字段名称从nsuserdefaults类中快速准确地读取到创建一级页面所需的取值来生成一级页面数据,能够节约读取数据的时间,且能够通过单独的子线程来对一级页面数据进渲染,避免运行卡顿,从而能够在一定程度上提高页面测试的效率。
105.可选地,在上述图4对应的实施例的基础上,本技术实施例提供的页面测试的方法另一个可选实施例中,如图5所示,对一级页面数据进行渲染,得到目标一级页面,包括:
106.在步骤s501中,对一级页面数据中的每个页面元素进行初始化渲染,得到每个页面元素对应的上下文栈对象;
107.在步骤s502中,对上下文栈对象进行坐标绘制,得到上下文栈对象的静态坐标数据;
108.在步骤s503中,若页面元素存在动态属性参数,则对静态坐标数据以及动态属性参数进行加载,得到目标一级页面。
109.在本实施例中,在获取到一级页面数据后,可以通过调用nsthread技术开启的子线程对一级页面数据进行截图绘制操作,具体可以是通过coregraphics绘图引擎对一级页面数据中的每个页面元素进行初始化渲染,可以获取每个页面元素形成的上下文栈对象(context),然后,可以对上下文栈对象进行坐标绘制,来获取能够用于确定一级页面数据中的每个页面元素的大小和坐标的静态坐标数据,如长、宽、高等数据,进而,如果页面元素对应的上下文栈对象,经过绘制后能够得到动态属性参数,如旋转或缩放等,则可以结合动态属性参数以及该页面元素对应的静态坐标数据进行渲染操作,可以得到该一级页面数据对应的目标一级页面。
110.具体地,当获取到一级页面数据后,可以在开启的子线程中通过调用coregraphics绘图引擎中的uigraphicsgetcurrentcontext()函数,来对获取的一级页面数据中的每个页面元素的渲染环境进行初始化,能够得到该一级页面数据的当前渲染环境的上下文context,即每个页面元素对应的上下文栈对象,进而,通过调用cgcontextsavegstate函数来生成一级页面数据的当前渲染环境的一个状态机,该状态机能够用于保存该一级页面数据的当前渲染环境的上下文,再通过调用cgcontexttranslatectm函数,可以对一级页面数据的每个页面元素进行元素信息的计算和生成,得到每个页面元素(如按钮、图片、文字、输入框等页面元素)的横坐标值x、纵坐标值y、宽以及高等信息,然后,可以调用cgcontextconcatctm来执行存在动态属性参数的页面元素的动效,如某些页面元素或弹窗出现会显示动画效果,并通过调用renderincontext
函数,能够在一级页面数据的当前渲染环境的状态机下进行渲染操作,得到目标一级页面。
111.可以理解的是,对二级页面数据进行渲染得到目标二级页面的方式,与步骤s501至步骤s503中对一级页面数据进行渲染,得到目标一级页面的方式相似,此处不再赘余。
112.可选地,在上述图3对应的实施例的基础上,本技术实施例提供的页面测试的方法另一个可选实施例中,如图6所示,该方法还包括:
113.在步骤s601中,若二级页面数据键值存在定时更新键值对,则根据一级页面数据键值对和二级页面数据键值之间的映射关系确定目标一级页面中的待更新一级页面键值对;
114.在步骤s602中,根据定时更新键值对索引至待更新一级页面键值,并根据待更新一级页面键值对,对目标一级页面数据进行重新渲染,得到重新渲染后的目标一级页面;
115.在步骤s603中,对重新渲染后的目标一级页面进行截图,得到第三截图;
116.在步骤s604中,向服务器发送包括第三截图的页面截图测试结果。
117.在本实施例中,当在渲染二级页面数据的过程中,如果二级页面数据中的二级页面数据键值存在定时更新键值对,其中,定时更新键值对具体可以通过如图12所示的“home_page_reload_timer”开关结点下包含的“base:feed_extend_type”以及“reloadtime:10”等字段值解析得到,进而,可以根据一级页面数据键值对和二级页面数据键值之间的映射关系,确定目标一级页面中的待更新一级页面键值对,其中,待更新一级页面键值对具体可以是通过如图12所示的“base”开关结点包含的“feed_extend_type:2”解析得到,然后,可以根据定时更新键值中的定时取值,定时从定时更新键值对索引至待更新一级页面键值,并可以根据该待更新一级页面键值对,对目标一级页面数据进行重新渲染,来得到重新渲染后的目标一级页面,能够实现对目标一级页面的定时更新,然后,可以对更新后目标一级页面进行截图,并将截取到的第三截图包含在页面截图测试结果中上传至服务器,以使后续能够通过第三截图来进一步验证重新渲染后的目标一级页面中的资源是否能够在页面中正常显示,从而在一定程度上提高页面测试的可靠性以及准确性。
118.具体地,当对二级页面数据进行渲染得到目标二级页面时,如果目标二级页面产生了某些事件需要更新目标一级页面,则可通过reloadtime字段解析得到定时更新键值对来对目标一级页面进行定时更新,具体可以是通过reloadtime字段设置的时间段内,如10s或10min等,具体可以根据实际应用需求进行设置,此处不做具体限制,根据定时更新键值对索引至待更新一级页面键值,例如,通过reloadtime对应的“feed_extend_type”的字段值先索引到目标一级页面对应的取值如“feed_extend_type:2”,然后,可以调用coregraphics绘图引擎根据该取值对目标一级页面进行重新渲染,可以得到重新渲染后的目标一级页面,然后,将目标一级页面转化为uiimage对象,得到第三截图,进而可以将包含有第三截图的页面截图测试结果发送至服务器,能够通过定时更新键值对来实现对目标一级页面的定时更新、渲染以及截图等,来充分获取到目标一级页面的页面截图测试结果,能够提高目标一级页面测试的准确性,从而在一定程度上提高页面测试的可靠性。
119.可选地,在上述图2对应的实施例的基础上,本技术实施例提供的页面测试的方法另一个可选实施例中,如图7所示,该方法还包括:
120.在步骤s701中,对一级页面数据进行渲染时间统计,得到第一渲染时间,并对二级页面数据的进行渲染时间统计,得的第二渲染时间;
121.在步骤s702中,向服务器发送包括第一渲染时间、第二渲染时间、第一截图以及第二截图的页面截图测试结果。
122.在本实施例中,在获取到一级页面数据以及二级页面数据后,在通过nsthread技术开启不同的子线程,分别对一级页面数据以及二级页面数据进行渲染的同时,本实施例还可以分别对一级页面数据以及二级页面数据的渲染时间进行统计,能够相应的第一渲染时间以及第二渲染时间,然后,能够将第一渲染时间、第二渲染时间与第一截图以及第二截图包含于页面截图测试结果中上传至服务器,以使后续能够通过第一渲染时间以及第二渲染时间的时长来直观准确地反映目标一级页面以及目标二级页面的页面测试效率,有助于开发或测试的工作人员准确获取页面测试效果。
123.具体地,当通过nsthread技术开启不同的子线程,并在不同的子线程中通过coregraphics绘图引擎分别对获取到的一级页面数据以及二级页面数据进行渲染的同时,还能够switchsdk库提供的时间统计工具,分别对一级页面数据以及二级页面数据的渲染时间进行加载时间的统计,可以理解的是,如图9所示,在目标一级页面以及目标二级页面渲染完成后,可以调用回调(complete)接口,来表示目标一级页面以及目标二级页面加载完成,从而可以准确统计到第一渲染时间以及第二渲染时间,然后,可以将包含有第一渲染时间、第二渲染时间、第一截图以及第二截图的页面截图测试结果发送至服务器。
124.可选地,在上述图2对应的实施例的基础上,本技术实施例提供的页面测试的方法另一个可选实施例中,如图8所示,该方法还包括:
125.在步骤s801中,若检测到目标一级页面或目标二级页面中存在页面元素显示失败,则根据显示失败的页面元素生成错误提示;
126.在步骤s802中,向服务器发送包括错误提示、第一截图以及第二截图的页面截图测试结果。
127.在本实施例中,在获取到目标一级页面以及目标二级页面后,可以通过资源错误程序中预设的一级页面图像以及预设的二级页面图像,分别与第一截图以及第二截图进行比对,如果存在显示不一致的页面元素,或无法显示的页面元素等,则可以确定该页面元素显示失败,则可以通过该资源错误程序,根据显示失败的页面元素生成错误提示,能够用于反映资源错误程序是否能够正常运行,然后,可以将错误提示、第一截图以及第二截图包含于页面截图测试结果中,并上传至服务器,以使后续可以根据错误提示及时提醒开发或测试等工作人员及时对页面测试数据进行修改和维护,从而能够在一定程度上提高页面测试的效率。
128.具体地,当获取到目标一级页面以及目标二级页面,并通过coregraphics绘图引擎得到第一截图以及第二截图后,可以通过switchsdk库提供的资源错误程序,来检测目标一级页面或目标二级页面中存在页面元素显示失败,具体可以是通过将第一截图以及第二截图分别与预设的一级页面图像以及预设的二级页面图像进行比对,其中,预设的一级页面图像以及预设的二级页面图像是根据实际应用需求进行绘制的,此处不做具体限制,当第一截图以及第二截图中的页面元素均能够显示,且与预设的一级页面图像以及预设的二级页面图像中的显示效果一致,则可以理解为第一截图以及第二截图中的页面元素,无资源错误,或者,当第一截图以及第二截图中的页面元素存在与预设的一级页面图像以及预设的二级页面图像中页面元素的显示效果不一致,如大小不一致或位置不一致等,或无法
显示的页面元素等,则可以理解为该页面元素,进而,可以根据页面元素,通过资源错误程序生成相应的错误提示,然后,将将包含有错误提示、第一截图以及第二截图的页面截图测试结果上传至服务器。
129.下面对本技术中的页面测试的装置进行详细描述,请参阅图13,图13为本技术实施例中页面测试的装置的一个实施例示意图,页面测试的装置20包括:
130.获取单元201,用于接收服务器发送的页面测试数据,其中,页面测试数据包括基础字段、资源字段以及转换字段,基础字段用于描述一级页面数据的样式以及一级页面数据预跳转的二级页面数据,资源字段用于描述一级页面数据以及二级页面数据的待显示资源内容,转换字段用于描述一级页面数据与二级页面数据之间调用关系;
131.处理单元202,用于根据页面测试数据,对一级页面数据进行渲染,得到目标一级页面,并对目标一级页面进行截图处理,得到第一截图;
132.处理单元202,还用于从目标一级页面跳转至目标二级页面,并对目标二级页面进行截图处理,得到第二截图,其中,目标二级页面为根据页面测试数据,对二级页面数据进行渲染得到的;
133.发送单元203,用于向服务器发送包括第一截图以及第二截图的页面截图测试结果。
134.可选地,在上述图13对应的实施例的基础上,本技术实施例提供的页面测试的装置的另一实施例中,
135.处理单元202,还用于将页面测试数据解析为一级页面对象和二级页面对象,其中,一级页面对象包括多个一级页面键值对,二级页面对象包括多个二级页面键值对,多个一级页面键值对和多个二级页面键值对分别与基础字段、资源字段以及转换字段具有对应关系;
136.存储单元204,用于将多个一级页面数据键值对和多个二级页面数据键值对进行保存,其中,多个一级页面数据键值对和多个二级页面数据键值对之间具有映射关系。
137.可选地,在上述图13对应的实施例的基础上,本技术实施例提供的页面测试的装置的另一实施例中,处理单元202具体可以用于:
138.读取多个一级页面数据键值对;
139.根据多个一级页面数据键值对生成一级页面数据;
140.对一级页面数据进行渲染,得到目标一级页面。
141.可选地,在上述图13对应的实施例的基础上,本技术实施例提供的页面测试的装置的另一实施例中,处理单元202具体可以用于:
142.对一级页面数据中的每个页面元素进行初始化渲染,得到每个页面元素对应的上下文栈对象;
143.对上下文栈对象进行坐标绘制,得到上下文栈对象的静态坐标数据;
144.若页面元素存在动态属性参数,则对静态坐标数据以及动态属性参数进行加载,得到目标一级页面。
145.可选地,在上述图13对应的实施例的基础上,本技术实施例提供的页面测试的装置的另一实施例中,
146.确定单元205,用于若二级页面数据键值存在定时更新键值对,则根据一级页面数
据键值对和二级页面数据键值对之间的映射关系确定目标一级页面中的待更新一级页面键值对;
147.处理单元202,还用于根据定时更新键值对索引至待更新一级页面键值对,并根据待更新一级页面键值对,对目标一级页面数据进行重新渲染,得到重新渲染后的目标一级页面;
148.处理单元202,还用于对重新渲染后的目标一级页面进行截图,得到第三截图;
149.发送单元203,还用于向服务器发送包括第三截图的页面截图测试结果。
150.可选地,在上述图13对应的实施例的基础上,本技术实施例提供的页面测试的装置的另一实施例中,
151.处理单元202,还用于对一级页面数据进行渲染时间统计,得到第一渲染时间,并对二级页面数据的进行渲染时间统计,得的第二渲染时间;
152.处理单元202具体可以用于:向服务器发送包括第一渲染时间、第二渲染时间、第一截图以及第二截图的页面截图测试结果。
153.可选地,在上述图13对应的实施例的基础上,本技术实施例提供的页面测试的装置的另一实施例中,
154.处理单元202,还用于若检测到目标一级页面或目标二级页面中存在页面元素显示失败,则根据显示失败的页面元素生成错误提示;
155.处理单元202具体可以用于:向服务器发送包括错误提示、第一截图以及第二截图的页面截图测试结果。
156.本技术另一方面提供了另一种计算机设备示意图,如图14所示,图14是本技术实施例提供的一种计算机设备结构示意图,该计算机设备300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)310(例如,一个或一个以上处理器)和存储器320,一个或一个以上存储应用程序331或数据332的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器320和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备300中的一系列指令操作。更进一步地,中央处理器310可以设置为与存储介质330通信,在计算机设备300上执行存储介质330中的一系列指令操作。
157.计算机设备300还可以包括一个或一个以上电源340,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口360,和/或,一个或一个以上操作系统333,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
,freebsd
tm
等等。
158.上述计算机设备300还用于执行如图2至图8对应的实施例中的步骤。
159.本技术的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如图2至图8所示实施例描述的方法中的步骤。
160.本技术的另一方面提供了一种包含指令的计算机程序产品当其在计算机或处理器上运行时,使得所述计算机或处理器执行如图2至图8所示实施例描述的方法中的步骤。
161.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
162.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
163.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
164.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
165.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
166.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献