网页数据的测试方法及装置与流程

文档序号:11918198阅读:201来源:国知局
网页数据的测试方法及装置与流程

本申请涉及互联网领域,具体而言,涉及一种网页数据的测试方法及装置。



背景技术:

目前,主流网页分析工具使用布置在网页上的采集程序(例如:JavaScript Tracker)在网页端收集访问者访问行为和系统信息数据,发送至数据仓库服务器。通过JavaScript Tracker采集到网页数据后,发送至互联网信息服务器(Internet Information Services,简称IIS服务器),IIS服务器通过Log Reader程序对接收到的网页数据进行读取和解析,存入数据库中。然而整个过程容易出错,为了验证IIS服务器在对网页数据进行解析后网页数据的正确性,相关技术中构建JavaScript Tracker的自动化端到端集成测试,在进行集成测试时,需要在IIS服务器端进行日志的存储、读取、解析。IIS服务器为了减少磁盘读写次数设计了缓存机制,如果使用传统的文件系统方式存储日志,需要在所有访问结束后手动关闭IIS服务器以迫使其存储日志,降低自动化程度;同时文件系统读写速度较慢,影响执行性能,即在JavaScript Tracker的集成测试中对日志的读写效率较低,导致在对网页上采集程序的集成测试中测试效率低。

针对相关技术中在对网页上采集程序的集成测试中测试效率低的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请的主要目的在于提供一种网页数据的测试方法及装置,以解决相关技术中在对网页上采集程序的集成测试中测试效率低的问题。

为了实现上述目的,根据本申请的一个方面,提供了一种网页数据的测试方法。该方法包括:接收请求信息,其中,请求信息为对测试网页数据的请求信息,测试网页数据为采集程序在测试网页上采集到的数据;创建与请求信息对应的请求信息对象;将请求信息对象存入队列中;以及遍历队列中的请求信息对象,测试队列中请求信息对象对应的请求信息中测试网页数据的正确性。

进一步地,创建与请求信息对应的请求信息对象包括:分别判断接收到的每个请求信息的路径中是否包含预设文件信息;以及获取包含预设文件信息的请求信息的路径,并根据包含预设文件信息的请求信息的路径创建相应的请求信息对象。

进一步地,在接收请求信息之前,该方法还包括:构造服务程序,其中,服务程序用于接收对测试网页数据的请求信息;在测试网页上部署采集程序,测试网页与服务程序配置在同一设备上;以及启动第一预设程序对部署有采集程序的测试网页进行访问,利用采集程序采集测试网页数据。

进一步地,第一预设程序为Selenium测试工具中的FirefoxDriver程序。

进一步地,测试队列中请求信息对象对应的请求信息中测试网页数据的正确性包括:对队列中的请求信息对象进行解析;获取解析后队列中的测试网页数据;以及调用第二预设程序验证解析后队列中请求信息对象对应的请求信息中测试网页数据的正确性。

为了实现上述目的,根据本申请的另一方面,提供了一种网页数据的测试装置。该装置包括:接收单元,用于接收请求信息,其中,请求信息为对测试网页数据的请求信息,测试网页数据为采集程序在测试网页上采集到的数据;第一创建单元,用于创建与请求信息对应的请求信息对象;存储单元,用于将请求信息对象存入队列中;以及测试单元,用于遍历队列中的请求信息对象,测试队列中请求信息对象对应的请求信息中测试网页数据的正确性。

进一步地,第一创建单元包括:判断模块,用于分别判断接收到的每个请求信息的路径中是否包含预设文件信息;以及第一获取模块,用于获取包含预设文件信息的请求信息的路径,并根据包含预设文件信息的请求信息的路径创建相应的请求信息对象。

进一步地,该装置还包括:第二创建单元,用于构造服务程序,其中,服务程序用于接收对测试网页数据的请求信息;第三创建单元,用于在测试网页上部署采集程序,测试网页与服务程序配置在同一设备上;以及采集单元,用于启动第一预设程序对部署有采集程序的测试网页进行访问,利用采集程序采集测试网页数据。

进一步地,第一预设程序为Selenium测试工具中的FirefoxDriver程序。

进一步地,测试单元包括:解析模块,用于对队列中的请求信息对象进行解析;第二获取模块,用于获取解析后队列中的测试网页数据;以及验证模块,用于调用第二预设程序验证解析后队列中请求信息对象对应的请求信息中测试网页数据的正确性。

通过本申请,采用以下步骤:接收请求信息,其中,请求信息为对测试网页数据的请求信息,测试网页数据为采集程序在测试网页上采集到的数据;创建与请求信息对应的请求信息对象;将请求信息对象存入队列中;以及遍历队列中的请求信息对象,测试队列中请求信息对象对应的请求信息中测试网页数据的正确性,解决了相关技术中在对网页上采集程序的集成测试中测试效率低的问题,通过将请求信息对象及时的 存入队列中,快速的从队列中读取请求信息对象,然后验证队列中请求信息对象对应的请求信息中测试网页数据的正确性,从而提升了对网页上采集程序的集成测试中测试效率的效果。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的网页数据的测试方法的流程图;以及

图2是根据本申请实施例的网页数据的测试装置的示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为了便于描述,以下对本申请实施例涉及的几个术语进行说明:

JavaScript:一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言。

Tracker:追踪器,为一小段JavaScript代码,在网页端收集访问者的访问行为和系统信息数据,发送至数据仓库服务器。

IIS:Internet Information Services,互联网信息服务。一种互联网服务器。

Log Reader:日志读取器,负责读取和解析服务器的日志,存入数据库中。

集成测试:也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。一些局部反映不出来的问题,在全局上很可能暴露出来。

根据本申请的实施例,提供了一种网页数据的测试方法。

图1是根据本申请实施例的网页数据的测试方法的流程图。如图1所示,该方法包括以下步骤:

步骤S101,接收请求信息,其中,请求信息为对测试网页数据的请求信息,测试网页数据为采集程序在测试网页上采集到的数据。

可选地,在本申请实施例提供的网页数据的测试方法中,在接收请求信息之前,该方法还包括:构造服务程序,其中,服务程序用于接收对测试网页数据的请求信息;在测试网页上部署采集程序,测试网页与服务程序配置在同一设备上;以及启动第一预设程序对部署有采集程序的测试网页进行访问,利用采集程序采集测试网页数据。

其中,需要说明的是,服务程序能够运行测试、在内存中写数据,并可以在测试完成后关闭。

可选地,在本申请实施例提供的网页数据的测试方法中,第一预设程序为Selenium测试工具中的FirefoxDriver程序。

需要说明的是,本申请中涉及的采集程序为JavaScript Tracker代码程序,具体地,调用一系列Asp.Net5框架提供的函数完成创建一个服务程序,使用Selenium的FirefoxDriver自动化地依次访问该服务程序上部署了JavaScript Tracker代码的若干个网页。通过启动浏览器、打开指定url对应的网页、点击网页中的链接到达另一个网页、关闭浏览器等一系列过程对网页进行访问,利用部署在测试网页上的JavaScript Tracker代码采集到测试网页数据。根据采集到的测试网页数据生成请求信息发送至服务程序,服务程序接收请求消息。

测试网页为实际网页的模拟网页,为了在测试时不影响实际网页的正常功能,会依照实际网页在服务程序所在设备上配置测试网页,之后在测试网页中部署采集程序,并利用第一预设程序来模拟浏览器上的操作,例如打开测试网页、浏览测试网页内容、对测试网页中的链接进行点击、关闭浏览器等操纵。通过将测试网页与服务程序配置在同一设备上,可以使测试不依赖于网络,避免测试中由网络因素带来的影响。

步骤S102,创建与请求信息对应的请求信息对象。

可选地,在本申请实施例提供的网页数据的测试方法中,创建与请求信息对应的请求信息对象包括:分别判断接收到的每个请求信息的路径中是否包含预设文件信息;以及获取包含预设文件信息的请求信息的路径,并根据包含预设文件信息的请求信息的路径创建相应的请求信息对象。

预设文件信息用于标记采集程序发送的请求消息,如果请求消息的路径中包含预设文件信息,那么可以确定该请求信息为采集程序发送来的,需要进行后续的解析测试,如果请求消息的路径中没有包含预设文件信息,那么可以确定该请求信息不是采集程序发送的(例如浏览器自动发送的数据而不是采集程序发送的数据),那么对于这种请求信息就不需要解析测试了。

例如,服务器接收到多条请求消息,多条请求消息的路径分别为:http://127.0.0.1:8080/a.html;http://127.0.0.1:8080/b.html;http://127.0.0.1:8080/gs.gif?gsver=3.3.0.0&gsc md=spv&gssrvid=GWD-123456,预设文件信息为"gs.GIF",判断出http://127.0.0.1:8080/gs.gif?gsver=3.3.0.0&gscmd=spv&gssrvid=GWD-123456中包含"gs.GIF",根据该请求信息构造(创建)一个包含请求信息的对象,例如:通过以下代码创建一个包含请求信息的对象:

private LiteRequestInfo CreateLiteRequestInfo(HttpContext context)

{return new LiteRequestInfo(LogParserSetting,DateTime.Now,

context.Request.QueryString.ToString().Substring(1),

context.Connection.RemoteIpAddress.ToString(),

context.Request.Headers.Get("User-Agent"),context.Request.Method);

},

通过以上代码返回包含请求信息的对象。

步骤S103,将请求信息对象存入队列中。

将上述返回的包含请求信息的对象存入ConcurrentQueue中。这里的队列位于服务程序所在设备的内存中,由此使用内存空间中的数据结构替代文件存储日志数据。

步骤S104,遍历队列中的请求信息对象,测试队列中的网页数据的正确性。

可选地,在本申请实施例提供的网页数据的测试方法中,在测试队列中的网页数据的正确性包括:对队列中的请求信息对象进行解析;获取解析后队列中的网页数据;以及调用第二预设程序验证解析后队列中的网页数据是否正确。

遍历ConcurrentQueue中的每个对象,并进行解析,然后验证解析后队列中的网 页数据是否正确,具体地,通过调用Assert函数,针对上述http://127.0.0.1:8080/gs.gi f?gsver=3.3.0.0&gscmd=spv&gssrvid=GWD-123456请求消息的路径采用形如:Assert.Equal(123456,obj.ProfileID);Assert.Equal("GWD-123456",obj.ServiceID);Assert.Equal(8,o bj.TimeZone);Assert.Equal("3.3.0.0",obj.Version.ToString())的方式验证队列中的网页数据是否正确。

通过以上步骤,本申请实施例提供的网页数据的测试方法能够使用内存空间中的数据结构替代文件存储日志数据,从而提升对数据的读写(即存储和读取)的速度,避免了由于IIS服务器为了减少磁盘读写次数设计了缓存机制,如果使用传统的文件系统方式存储日志,需要在所有访问结束后手动关闭IIS服务器以迫使其存储日志等问题,通过将请求信息对象及时的存入队列中,快速的从队列中读取请求信息对象,然后验证队列中请求信息对象对应的请求信息中测试网页数据的正确性,从而提升了对网页上采集程序的集成测试中测试效率的效果。

本申请实施例提供的网页数据的测试方法,通过接收请求信息,其中,请求信息为对测试网页数据的请求信息,测试网页数据为采集程序在测试网页上采集到的数据;创建与请求信息对应的请求信息对象;将请求信息对象存入队列中;以及遍历队列中的请求信息对象,测试队列中请求信息对象对应的请求信息中测试网页数据的正确性,解决了相关技术中在对网页上采集程序的集成测试中测试效率低的问题,通过将请求信息对象及时的存入队列中,快速的从队列中读取请求信息对象,然后验证队列中请求信息对象对应的请求信息中测试网页数据的正确性,从而提升了对网页上采集程序的集成测试中测试效率的效果。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例还提供了一种网页数据的测试装置,需要说明的是,本申请实施例的网页数据的测试装置可以用于执行本申请实施例所提供的用于网页数据的测试方法。以下对本申请实施例提供的网页数据的测试装置进行介绍。

图2是根据本申请实施例的网页数据的测试装置的示意图。如图2所示,该装置包括:接收单元10、第一创建单元20、存储单元30和测试单元40。

接收单元10,用于接收请求信息,其中,请求信息为对测试网页数据的请求信息,测试网页数据为采集程序在测试网页上采集到的数据。

第一创建单元20,用于创建与请求信息对应的请求信息对象。

存储单元30,用于将请求信息对象存入队列中。

测试单元40,用于遍历队列中的请求信息对象,测试队列中请求信息对象对应的请求信息中测试网页数据的正确性。

本申请实施例提供的网页数据的测试装置,通过接收单元10接收请求信息,其中,请求信息为对测试网页数据的请求信息,测试网页数据为采集程序在测试网页上采集到的数据;第一创建单元20创建与请求信息对应的请求信息对象;存储单元30将请求信息对象存入队列中;以及测试单元40遍历队列中的请求信息对象,测试队列中请求信息对象对应的请求信息中测试网页数据的正确性,解决了相关技术中在对网页上采集程序的集成测试中测试效率低的问题。通过存储单元30将请求信息对象及时的存入队列中,测试单元40快速的从队列中读取请求信息对象,然后验证队列中请求信息对象对应的请求信息中测试网页数据的正确性,从而提升了对网页上采集程序的集成测试中测试效率的效果。

可选地,在本申请实施例提供的网页数据的测试装置中,第一创建单元20包括:判断模块,用于分别判断接收到的每个请求信息的路径中是否包含预设文件信息;以及第一获取模块,用于获取包含预设文件信息的请求信息的路径,并根据包含预设文件信息的请求信息的路径创建相应的请求信息对象。

可选地,在本申请实施例提供的网页数据的测试装置中,该装置还包括:第二创建单元,用于构造服务程序,其中,服务程序用于接收对测试网页数据的请求信息;第三创建单元,用于在测试网页上部署采集程序,测试网页与服务程序配置在同一设备上;以及采集单元,用于启动第一预设程序对部署有采集程序的测试网页进行访问,利用采集程序采集测试网页数据。

可选地,在本申请实施例提供的网页数据的测试装置中,第一预设程序为Selenium测试工具中的FirefoxDriver程序。

可选地,在本申请实施例提供的网页数据的测试装置中,测试单元40包括:解析模块,用于对队列中的请求信息对象进行解析;第二获取模块,用于获取解析后队列中的测试网页数据;以及验证模块,用于调用第二预设程序验证解析后队列中请求信息对象对应的请求信息中测试网页数据的正确性。

所述网页数据的测试装置包括处理器和存储器,上述接收单元、第一创建单元、存储单元和测试单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元实现相应功能。上述第一预设程序、第二预设程序都可以存储在存储器中。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数测试网页数据。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:接收请求信息,其中,请求信息为对测试网页数据的请求信息,测试网页数据为采集程序在测试网页上采集到的数据;创建与请求信息对应的请求信息对象;将请求信息对象存入队列中;以及遍历队列中的请求信息对象,测试队列中请求信息对象对应的请求信息中测试网页数据的正确性。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。

以上所述仅为本申请的优选实施例,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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