页面打点测试方法和装置与流程

文档序号:12363410阅读:913来源:国知局
页面打点测试方法和装置与流程

本发明涉及网页测试领域,尤其是一种页面打点测试方法和装置。



背景技术:

在互联网的网页测试技术领域中,存在使用打点的方式来拦截页面打点请求并收集用户对网页的各种浏览和操作行为的需求。所述“打点”是指对于web页面(万维网上的一种按照HTML格式组织起来的文件。在通过万维网进行信息查询时,以信息页面的形式出现,它可包括图形、文字、声音和视像等信息。)类型的互联网产品,用户访问页面时,通过数据服务器拦截页面打点请求并收集包含用户行为和页面展示效果的网络请求的数据,从而可以根据产品的关注点的不同,来拦截页面打点请求并收集感兴趣的打点数据。其中,用户行为包括:浏览了哪些页面,点击了哪些元素等;页面展示效果包括:页面展示了哪些元素,元素在页面中的位置等。数据服务器拦截页面打点请求并收集到这些打点数据后,通过一定的方式聚合,分析产生出数据报表,例如页面展示次数,有多少用户看到过这个页面,页面元素点击次数、点击率、点击产生的交易量,用户的地理位置分布和年龄层分布等。这些报表可以为页面样式,产品发展方向,营销活动等提供重要数据支持,为决策人提供直观的决策依据,同时对网站拦截页面打点请求并收集用户信息、用户群体,加强沟通,提高和改进网站建设具有重要意义。

然而,互联网产品的需求日新月异,经常会产生产品测试需求变动,例如新增打点类型,更换打点方式,新增、删除或修改业务功能,页面样式调整等。这些变动都有可能导致页面打点发生一些预料之外的变化,例如页面打点请求发送失败,打点数据没有包含必要的数据,重复打点等,这些变化就会导致数据服务器接收不到打点数据,或者说接收到错误的打点数据,进而影响到产品的数据报表。

目前大多数页面打点测试方案主要在数据拦截页面打点请求并收集以及数据报表的展现方面进行改进,例如目前,国内常用的统计网站有 CNZZ、51la、百度统计、51yes、SiteFlow等,一些大型网站还会开发定制自己的打点数据报表。然而,如果出现打点错误,则只有等到数据报表发生异常变动,例如一个打点指标突然大幅上升或下降时,才能发现问题,而这个时候,有可能正确的打点数据是很难找回的,给打点数据带来了不可修正的误差。



技术实现要素:

针对现有技术的不足,本发明的目的在于提供一种页面打点测试方法和装置,对打点数据进行测试和监控,提高打点测试数据的准确性和可靠性。

为解决上述技术问题,本发明的实施方式公开了一种页面打点测试方法,包括:

响应于针对测试页面或对比页面在埋点处进行的打点操作,生成与所述测试页面对应的测试页面打点请求,或与所述对比页面对应的对比页面打点请求;

拦截所述测试页面打点请求或所述对比页面打点请求;

收集并分别整理所述测试页面打点请求中的打点数据以及所述对比页面打点请求中的打点数据;

比对来自所述测试页面的打点数据以及来自所述对比页面的打点数据的差异生成页面打点测试数据报表。

本发明的实施方式还公开了一种页面打点测试装置,包括:

页面打点请求生成单元,用于响应于针对测试页面或对比页面在埋点处进行的打点操作,生成与所述测试页面对应的测试页面打点请求,或与所述对比页面对应的对比页面打点请求;

页面打点请求拦截单元,用于拦截所述测试页面打点请求或所述对比页面打点请求;

打点数据收集整理单元,用于收集并分别整理所述测试页面打点请求中的打点数据以及所述对比页面打点请求中的打点数据;

打点测试数据比对单元,用于比对来自所述测试页面的打点数据以及来自所述对比页面的打点数据的差异生成页面打点测试数据报表。

与现有技术相比,本发明实施方式所述的网页测试方法和装置通过对测试页面和对比页面进行打点操作,测试打点数据的正确性,实现对打点数据进行自动监控和测试,有效保障了打点测试数据的可靠性。

附图说明

图1是本发明第一实施例提供的页面打点测试方法的流程示意图;

图2是本发明第二实施例提供的页面打点测试方法的流程示意图;

图3是本发明第三实施例提供的页面打点测试装置的结构示意图;

图4是本发明第四实施例提供的页面打点测试装置的结构示意图;

图5是本发明的一个优选实例提供的页面打点测试系统;

图6是根据图5所示的本发明提供的一个优选实例的页面打点测试系统进行新增打点Case的配置的界面效果图;

图7是根据图5所示的本发明提供的一个优选实例的页面打点测试系统执行打点Case的过程的界面效果图;

图8是根据图5所示的本发明提供的一个优选实例的页面打点测试系统查看打点结果的界面效果图。

具体实施方式

在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。本申请涉及的测试页面是指尚未正式发布的网页页面,例如处于开发阶段的网页页面或者预发布的网页页面。而对比页面是指处于生产环境的页面。其中,生产环境是指网页页面发布后,与网页页面相关的软件运行的软件和硬件环境,生产环境可以处理用户对网页页面发出的请求。

参见图1,图1是本发明第一实施例提供的页面打点测试方法的流程示意图。图1示出的页面打点测试方法包括步骤S101-S104。

在步骤S101中,响应于针对测试页面或对比页面在埋点处进行的打点操作,生成与所述测试页面对应的测试页面打点请求,或与所述对比页面对应的对比页面打点请求。

其中,打点操作是指用户对网页的操作,包括但不限于打开一个网页页面、点击网页页面中的一个页面元素等。在本发明的一个实例中,通过在网页测试服务器上运行的程序代码调用Selenium Web Driver自动打开浏览器客户端,Selenium Web Driver是一套能用于模拟打开浏览器客户端的web应用程序测试工具,可以提供模拟浏览器行为的方法供开发者调用,例如可以模拟用于浏览网页页面、点击网页页面元素等操作的开源框架。根据所述测试页面或所述对比页面的访问地址生成至少一个唯一标示符设置到浏览器客户端的页面的cookie(通常指网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据)中,访问所述测试页面或所述对比页面,然后,浏览器客户端根据开发者(例如:前端工程师)预设的打点规则模拟执行打点操作,具体可以是使用Web Driver程序代码自动点击指定的Xpath,分别对测试页面和对比页面执行指定的行为,预设的打点规则在配置打点测试用例时定义好。具体地,在打开所述测试页面和所述对比页面之前,程序会调用Web Driver将cookie设置到测试页面和对比页面,测试页面和对比页面分别对应一个cookie,且分别只有一个cookie。Xpath是指html页面上元素的坐标,一个Xpath能定位到一个唯一的元素(例如一个按钮),点击Xpath就是指点击一个页面元素(例如点击某个按钮)。

其中,埋点是指由开发者根据预定数据格式在例如html页面上预先设置的需要自动发送打点请求的位置。所述预定数据格式是http请求协议中固有的。当在页面上的某个打点操作(例如点击一个页面上的按钮或展示一些页面元素)触发了一个埋点时,则自动生成与该页面对应的打点http请求,该http请求包含了所述打点操作信息,即指定的行为信息。例如浏览器客户端可以通过脚本(JS)异步发出打点http请求。

在步骤S102中,拦截所述测试页面打点请求或所述对比页面打点请求。

具体地,网页测试服务器伪装成数据服务器拦截所述测试页面打点请求或所述对比页面打点请求。网页测试服务器通过绑定打点请求主机的方 式将自己伪装成数据服务器(例如一个埋点发出的http请求是http://www.abc.com?click=1&v=2...,测试服务器绑定www.abc.com,将其指向测试服务器127.0.0.1,这样所有发给www.abc.com的请求都会发给测试服务器,测试服务器就可以拦截到这个埋点发出的数据了)。所述数据服务器是预先设置埋点时指定的打点请求的主机地址。这样,原本发送给数据服务器的数据发送给了伪装成的数据服务器,即网页测试服务器。

在步骤S103中,收集并分别整理所述测试页面打点请求中的打点数据以及与所述对比页面打点请求中的打点数据;

其中,打点请求中的打点数据包括页面点击的位置,点击的元素,页面版本,浏览器版本等等一系列数据。

在本发明的一个优选实施例中,在所述网页测试服务器中整理拦截到的测试页面打点请求或对比页面打点请求中的打点数据。

在本发明的一个实例中,根据步骤S101中设置的页面打点请求中的页面的cookie值区分打点数据是来自所述测试页面还是所述对比页面,收集并分别整理那些在步骤S102中拦截到的来自所述测试页面的打点数据以及来自所述对比页面的打点数据。cookie值是打开页面之前由程序代码设置到页面中的,这个cookie值用来区分打点测试的测试用例和打点页面的。例如,打点Case A要测试两个页面,一个对比页面,指处于生产环境的页面,一个是测试页面,指处于开发阶段的页面或者位于预发布服务器的页面。这个时候,打开生产环境的页面时设置的cookie值是origin:1(origin:表示生产环境,1表示Case A的ID),打开测试环境的页面时设置的cookie值是compare:1。这个cookie值在发出打点http请求的时候,会带在http请求的信息中。这样,打点测试服务器收到打点数据之后就可以根据cookie值的不同,整理和过滤出是哪个测试用例的哪个页面发出了这个页面打点请求,然后对收到的属于同一个测试用例中的同一个页面的打点数据做合并,分别整理成测试页面打点数据包以及对比页面打点数据包。可以理解为:有两个池子,一个池子是放来自测试页面的打点数据的,一个池子是放来自对比页面的打点数据的。当一个打点请求被测试服务器拦截到之后,服务器根据cookie来把打点 数据放到它对应的池子里去。都放完之后,就可以把两个池子里的数据拿出来对比。

在本发明的一个优选实例中,一个测试用例包括两种页面,一种是测试页面,一种是对比页面。做数据合并是指合并测试页面或对比页面执行完指定的行为(点击xpath)之后的数据。当指定的xpath是一个链接时,这时点击xpath会打开另一个页面,也就是说在执行过程可能会打开多于一个页面。例如一个测试用例配置了两个页面A(测试页面)和α(对比页面),配置的xpath是一个链接,A页面点击这个xpath会去到B页面,α页面点击这个xpath会去到β页面,那么数据收集合并的情况就是:

A页面->点击xpath->B页面,这个过程中发出的所有的打点数据收集起来合并之后即为这个测试用例的测试页面发出的打点数据,将其整理成测试页面打点数据包。

α页面–>点击xpath->β页面,这个过程中发出的所有的打点数据收集起来合并之后即为这个测试用例的对比页面发出的打点数据,将其整理成对比页面打点数据包。

在步骤S104中,比对来自所述测试页面的打点数据以及来自所述对比页面的打点数据的差异生成页面打点测试数据报表。

具体地,首先逐条比对分别来自所述测试页面与来自所述对比页面的打点数据,判断所述打点数据的访问请求参数是否相同,所述访问请求参数指打点http请求的数据,包括http请求的url,参数个数,参数类型。如果相同,则确认来自所述测试页面的打点数据与来自所述对比页面的打点数据是来自同一埋点的页面打点请求,如果不相同,则确认来自所述测试页面的打点数据与来自所述对比页面的打点数据是来自不同埋点的页面打点请求。然后,比对来自所述测试页面的打点数据与来自所述对比页面的打点数据是来自同一埋点的页面打点请求的打点数据的差异。最后,记录所述差异以生成页面打点测试数据报表。

在本发明的一个实例中,步骤S103生成的测试页面打点数据包与对比页面打点数据包分别是两个集合。例如测试页面发出了15个打点请求(集合A),对比页面发出了16个打点请求(集合B)。首先取A在B中的相对补集,找 到对比页面有而测试页面没有的打点,然后取B在A中的相对补集,找到测试页面有而对比页面没有的打点。如果这两个补集有一个不为空,或者都不为空,那么则判定为两次打点数据不一致,不一致的打点数据即为差异。最后,记录这些差异的打点数据以生成页面打点测试数据报表。

根据本发明第一实施例提供的页面打点测试方法,当用户配置好测试用例后可实现自动对页面进行打点测试,并且对打点数据进行自动监控。一方面大大减少了人工校验测试数据而产生的误差风险,另一方面减少了测试人力成本。

参见图2,图2是本发明第二实施例提供的页面打点测试方法的流程示意图。本申请的第二实施例包括步骤S201-步骤S204。其中,步骤S201与第一实施例中的步骤S101相同,步骤S203、S204分别与第一实施例中的步骤S103、S104相同,此处均不再进行赘述,仅步骤S102与步骤S202不同。

在步骤S202中,拦截所述测试页面打点请求或所述对比页面打点请求。

监听并拦截网页测试服务器的网卡发出的网络传输数据包,所述网络传输数据包中包含与所述测试页面对应的包含打点数据的测试页面打点请求,或与所述对比页面对应的包含打点数据的对比页面打点请求。例如,可以使用Jpcap(一套开源的用Java编写的网络数据包捕获应用程序,提供抓取流过网卡网络数据包的方法供开发者调用)监听并拦截网卡发出的TCP/IP数据包。

根据本发明第二实施例提供的页面打点测试方法,通过监听并拦截网页测试服务器的网卡发出的网络传输数据包来获得包含打点数据的测试页面打点请求以及对比页面打点请求。第二实施例与第一实施例的唯一不同在于:拦截和收集打点数据的方式不同,其他的都是相同的,在此不做赘述。调用Web Driver自动打开浏览器,模拟浏览页面,点击页面元素,触发埋点等操作都是测试服务器完成的。在拦截和收集打点数据时:第一实施例是通过上述讲到的,在测试服务器上绑定数据服务器的主机地址,将自己伪装成打点服务器,拦截所有发给数据服务器的http请求的方式来实现的。第二实施例是通过监听测试服务器的网卡数据包来实现的。具体地,每一个网络请求都会经过计算机的网卡,打点请求是一个http请求,自然也会经过网卡。Jpcap 可以拦截到所有经过网卡的数据包,从拦截到的数据包里过滤出所有的打点数据包即可以收集到所有的打点请求了。

在本发明的一个优选实施例中,例如第一次对网页进行打点测试,或者网页中的元素发生了变化的情况下,在响应于分别针对测试页面和对比页面进行的打点操作,生成对应的页面打点请求的步骤之前,需要对测试环境进行配置。这些配置包括但不限于设置测试页面和对比页面的访问地址和元素标引,以及打点操作的行为。例如,在一些实例当中,可以通过设置Xpath标引网页中的元素。Xpath是一种超文本文件(HTML)网页元素的定位符号,可以看作一个元素在页面上的坐标,通过Xpath可以找到页面上对应的元素。这样,可以在测试页面或对比页面中模拟点击Xpath后,浏览器可以根据Xpath对应的元素进行操作,发出相应的http请求。另外,打点操作的行为也可以是多种类型的,例如将鼠标滚轮滚动到页面2/3的位置,移动页面等。

在本发明的一个优选实施例中,在生成页面打点测试数据报表之后将记录有差异的页面打点测试数据报表发送给相应的用户进行处理。例如,打点测试数据报表可以列出打点数据不一致的地方,通过邮件通知相关用户进行处理或网页代码修复。

在本发明的另一个优选实施例中,用户需要对测试页面和对比页面进行测试,首先用户根据需求配置测试用例,然后基于所述的测试用例针对测试页面和对比页面执行本发明的方法。用户的预期是:在没有对测试页面的埋点做修改的前提下,测试页面和对比页面的在同一个埋点发出的打点请求应该是一致的,如果不一致,则需要知道测试页面和对比页面的打点数据的差异在哪里。执行本优选实施例提供的页面打点测试方法即可自动得到测试页面和对比页面的打点数据的差异结果,生成页面打点测试数据报表。

此外,在本发明的另一个优选实例中,生成的测试数据报表还可以包括直接从所述测试页面打点数据包与所述对比页面打点数据包中提取的打点请求以及打点数据。测试数据报表可以展示出多种内容,例如页面展示次数,有多少用户看到过这个页面,页面元素点击次数、点击率、点击产生的交易量,用户的地理位置分布和年龄层分布等。这些报表可以为页面样式,产品发展方向,营销活动等提供重要数据支持,为决策人提供直观的决策依据, 同时对网站拦截页面打点请求并收集用户信息、用户群体,加强沟通,提高和改进网站建设具有重要意义。

此外,在本发明的一些其他实施例中,还可以设置打点测试数据异常报警机制,当在打点测试数据中发现打点错误的时候进行自动报警,可大大降低打点数据丢失的风险。

本发明还提供一种页面打点测试装置。参见图3,图3是本发明第三实施例提供的页面打点测试装置的结构示意图。在第三实施例中,该页面打点测试装置包括:

页面打点请求生成单元310,用于响应于针对测试页面或对比页面在埋点处进行的打点操作,生成与所述测试页面对应的测试页面打点请求,或与所述对比页面对应的对比页面打点请求;

页面打点请求拦截单元320,用于拦截所述测试页面打点请求或所述对比页面打点请求;

打点数据收集整理单元330,用于收集并分别整理所述测试页面打点请求中的打点数据以及所述对比页面打点请求中的打点数据;

打点测试数据比对单元340,用于比对来自所述测试页面的打点数据以及来自所述对比页面的打点数据的差异生成页面打点测试数据报表。

在本发明的一个优选实施例当中,所述页面打点测试装置还包括:

测试用例配置单元350,用于配置测试用例。

打点操作执行单元360,用于访问所述测试页面或所述对比页面,根据预设的打点规则执行打点操作。

在本发明的一个优选实施例当中,所述测试用例配置单元350包括:

第一子单元351,配置所述测试页面或所述对比页面的访问地址;

第二子单元352,配置所述测试页面或所述对比页面的预设的打点规则;

第三子单元353,配置所述测试页面或所述对比页面的埋点。

在本发明的一个优选实施例当中,所述页面打点请求拦截单元320包括:

第四子单元321,用于伪装成数据服务器拦截所述测试页面打点请求或所述对比页面打点请求;和/或

第五子单元322,用于监听并拦截所在客户端的网卡发出的网络传输数据包,所述网络传输数据包中包含所述测试页面打点请求或所述对比页面打点请求。

参见图4,图4是本发明第四实施例提供的页面打点测试装置的结构示意图。在第四实施例中,除了页面打点请求生成单元310、页面打点请求拦截单元320、打点数据收集整理单元330、打点测试数据比对单元340,所述页面打点测试装置还包括:

页面标识生成单元370,用于根据所述测试页面或所述对比页面的访问地址生成至少一页面唯一标示符设置到页面的cookie中。

在本发明的一个优选实施例中,所述打点测试数据比对单元340还包括:

打点数据判断单元341,用于逐条比对分别来自所述测试页面的打点数据以及来自所述对比页面的打点数据,判断所述打点数据的访问请求参数是否相同;

打点数据确认单元342,用于当打点数据判断单元判断相同时确认来自所述测试页面的打点数据与来自所述对比页面的打点数据是来自同一埋点的页面打点请求,当不相同时确认来自所述测试页面的打点数据与来自所述对比页面的打点数据是来自不同埋点的页面打点请求。

在本发明的一个优选实施例中,打点测试数据比对单元340还包括:

打点数据差异确认单元343,用于比对所述测试页面的打点数据与所述对比页面的打点数据是来自同一埋点的页面打点请求的打点数据差异;

打点测试数据报表生成单元344,用于记录所述差异以生成页面打点测试数据报表。

参见图5,根据本发明的一个优选实例提供的页面打点测试系统,其中主要包括:

1、Case管理模块:用于管理打点Case。用户收集打点Case,对打点Case做编辑,管理员记录等。

2、运行系统模块:用于Web Driver的管理,打点Host的维护。Case的运行主要包含模拟浏览器行为,伪装打点服务器两部分。

3、Case执行模块:主要包括Case的并发执行,与Case绑定的cookie设置,任务调度,以及Case失败后的重试,Case的拦截和收集。

4、打点结果分析模块:用于生成可视化数据报表。记录页面发出了哪些打点,对比页面发出了哪些打点,其中这两个页面打点的对比有哪些不同。

5、定时任务模块:用于定时执行Case。以指定的时间为维度(每日/每周等),来执行打点Case,并且对比打点数据。

在本实例提供的页面打点测试系统上运行本发明提供的页面打点测试方法,按照如图6进行新增打点Case的配置,如图7所示为执行打点Case的过程,并在如图8所示的界面查看打点结果。

可见,在图5所示的优选实例提供的页面打点测试系统中除了实现本发明技术方案的页面打点测试装置所需的各模块外还包括定时任务模块,用于定时执行Case。以指定的时间为维度(每日/每周等),来执行打点Case,并且对比打点数据。进而还可以根据用户的事先配置将所述的对比结果发送到用户的邮箱以便于用户的查看和对测试页面的进一步测试和调试。

根据本发明各实施例提供的页面打点测试方法,页面打点测试前配置简单,通用性强,一次配置可多次使用,对于web页面的前后端有任何改动时可以及时进行回归测试(指修改了软件后,重新进行测试以确认修改没有引入新的错误)。

本发明提供的页面打点测试方法、装置、系统在以下计算机系统环境中实施将达到最佳的实施效果:

硬件:64位服务器;

软件:linux操作系统,java运行环境,Firefox31.0,Selenium2.44.0,Jpcap语言:Java。

本发明提供的各实施例均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable Array Logic,简称“PAL”)、 随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。

需要说明的是,本发明各设备实施方式中提到的各单元都是逻辑单元,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施方式并不存在其它的单元。

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

虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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