一种监控页面死链和js错误的方法及系统的制作方法

文档序号:6362518阅读:257来源:国知局
专利名称:一种监控页面死链和js错误的方法及系统的制作方法
技术领域
本发明涉及页面质量监控领域,具体地说涉及一种监控页面死链和js错误的方法及系统。
背景技术
随着互联网技术的发展,涌现出越来越多的网站,各个网站又提供了越来越多的网页。以前的网页功能大部分是为了提供给用户一些资讯,用户通过浏览网页内容可以获取所需的信息;随着用户需求的提高,仅获取文字信息已经不能满足大部分用户的需求,因此现在的网页中又通过一些脚本程序实现了 一些交互性的功能。页面的数量越来越多,复杂度越来越高,对页面质量的准确监控也就越发重要和困难。对页面质量的监控通常是指分析指定网页中的链接,判断该链接是否为死链。目前,将死链分为两种,第一种是url对应的页面根本不存在;第二种是通过js跳转的页面不存在。传统的网页监控方式有两种:一种方式是通过抓取页面的方式验证是否存在死链。采用这种方式可以有效分析出url所对应的页面是否存在,但是该方法的最大局限性在于,若链接通过js跳转而非指定的URL实现,则该方法无法检测此类型的链接是否为死链。另一种方式是通过浏览器触发js错误,以截图的方式捕获js报错,进而实现自动化页面监控。该方法在浏览器中截取可能的js执行错误的图像,将该图像用于验证是否存在JS错误。采用这种通过截图方式捕获js报错,技术实现难度较高,精确度不高,出现误报的概率较高。因此,目前急需一种能够高效、准确监控页面死链和js错误的页面监控方法。

发明内容
本发明提供一种监控页面死链和js错误的方法,用于自动化实现对线上页面死链和js错误进行监控。根据本发明的一个方面,提供一种监控页面死链和js错误的方法,其特征在于,包括以下步骤:a)响应于客户端获取页面的请求,从提供所述页面的服务器获取所述页面;b)向所述页面中注入检错代码,生成新页面,并将所述新页面发送至所述客户端,所述检错代码用于检测所述客户端执行所述新页面时是否会出现错误,当出现错误时,向错误收集服务器发送报错信息。根据本发明的另一个方面,提供一种用于监控页面死链和js错误的系统,其特征在于,包括:获取装置,用于响应于客户端获取页面的请求,从提供所述页面的服务器获取所述页面;生成装置,用于向所述页面中注入检错代码,生成新页面,并将所述新页面发送至所述客户端,所述检错代码用于检测所述客户端执行所述新页面时是否会出现错误,当出现错误时,向错误收集服务器发送报错信息。本发明提供的一种监控页面死链和js错误的方法及系统,通过使原始页面通过转发代理,并在转发代理中加入用于检测和报错的代码,生成发送至客户端的页面,在保持原有页面内容的前提下,可有效解决监控js跳转后页面是否存在的难题;通过提供的各种触发js事件的接口,提高了测试覆盖率。采取转发代理的方式能够准确获取错误异常,实现自动化监控js跳转错误。


通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:图1示出根据本发明一种监控页面死链和js错误的方法的一种具体实施方式
的流程示意图;图2示出根据本发明一种监控页面死链和js错误的方法及系统的架构示意图;图3示出根据本发明一种监控页面死链和js错误的系统的一种具体实施方式
的结构示意图;图4示出根据本发明一种监控页面死链和js错误的系统的另一种具体实施方式
的结构示意图。附图中相同或相似的附图标记代表相同或相似的部件。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施例作详细描述。下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。如图1所示,图1为根据本发明提供的一种监控页面死链和js错误的方法的一个具体实施方式
的流程示意图,包括步骤SlOl S102,下面结合具体的实施例对图1所示的方法进行说明。步骤S101,响应于客户端获取页面的请求,从提供所述页面的服务器获取所述页面。随着互联网技术的发展,用户可以从网络中获得越来越多的资讯,或执行各种各样的应用功能。因此,网络页面包含的信息量越来越多,也越来越复杂。浏览器作为一种客户端软件,是用户访问互联网必不可少的工具,通过浏览器浏览网页对用户而言是最便捷的方式。
因此,上述客户端优选为装置于各种终端的浏览器。所述终端包括但不限于PC、笔记本电脑、PDA(个人掌上电脑)、手机、平板电脑等具有可访问互联网功能的终端。所述服务器为可提供页面的服务商。例如,搜狐、百度、新浪等网页的提供服务者。例如,当装置于智能手机中的360浏览器想要访问百度首页时,需要发送一个获取百度首页的请求。当系统接收到所述获取百度首页的请求,就会对该请求做出响应,进一步从提供百度首页的服务器获取该页面。又如,当装置于台式机上的百度浏览器要访问百度地图时,需要发送一个获取百度地图的请求。当系统接收到所述获取百度地图的请求,就会对该请求做出响应,进一步从提供百度地图的服务器获取该页面。当获取到客户端请求的页面时,进一步执行步骤S102,向所述页面中注入检错代码,生成新页面,并将所述新页面发送至所述客户端,所述检错代码用于检测所述客户端执行所述新页面时是否会出现错误,当出现错误时,向错误收集服务器发送报错信息。如,当获取到百度首页之后,解析出百度首页的源代码,在源代码的基础上增加检错代码,生成新页面。由于检错代码只是用于检测页面加载是否有错,并进行错误提交操作,并不会影响原页面本身的文字、图片、链接等内容和效果。因此,将上述新页面发送给360浏览器,并不会对在该浏览器上打开百度首页并进行浏览的智能手机用户造成影响。又如,当获取到百度地图之后,解析出百度地图的源代码,在源代码的基础上增加检错代码,生成新页面。同样,由于检错代码只是用于检测页面加载是否有错,并进行错误提交操作,并不会影响原页面本身的文字、图片、链接等内容和效果。因此,将上述新页面发送给百度浏览器,并不会对在该浏览器上打开百度地图并进行浏览的台式机用户造成影响。为了使检错和报错过程更加清晰、完善,优选的,所述检错代码又分为检验代码和错误提交代码两种。检验代码用于检测所述客户端执行所述新页面时是否会出现错误。进一步地,检验代码用于监控网页中js脚本执行时是否出错,所述检验代码可采用js脚本编码实现。错误提交代码则用于当出现错误时,向所述错误收集服务器发送报错信息。为了能够正确判断js跳转后的页面能否正确访问、页面加载js是否有错误或者页面CSS加载是否有错误,需要进一步封装selenium-sever,以能够为各种触发事件提供接口。在现有技术中,selenium-server用于提供多种点击事件的接口,但是这些接口的功能并不能准确用于触发js事件。因此在本发明中,需要对selenium-server进行重新封装,并丰富其内容,调用其接口即可实现触发js事件的功能,并能准确验证页面的各种js事件是否正确。可选的,所述触发事件包括但不限于:点击、长按、划动、圈选、打钩、画叉、涂抹或其他在页面上进行操作的方式。除了能够高覆盖率地验证各种js事件的加载情况,通过调用封装好的selenium-server还可以类似地验证css的加载正确性。另外,使用该方法还可以通过使客户端执行新页面,而验证url页面是否存在。具体地,当客户端加载被注入检验代码和错误提交代码的页面时,如果加载失败,检验代码中封装的selenium-server的接口会通过错误提交代码向错误收集服务器发送报错消息。通过这种方法,可以很简单地监控通过js跳转后的页面是否存在或者js、css执行异常等问题。参考图2,图2示出根据本发明一种监控页面死链和js错误的方法及系统的架构示意图。系统10获取到装载于各种终端中的客户端20的获取也面的请求,从提供所述页面的服务器30中获取所述页面。当获取到所述页面后,系统10向所述页面中注入检错代码,以生成新页面,并将新页面发送至终端20。系统10注入的检错代码用于检测客户端20在执行所述新页面时是否会出现错误,当出错时,会向错误收集服务器40发送报错消息。图3示出根据本发明一种监控页面死链和js错误的系统10的一种具体实施方式
的结构示意图。系统10包括:获取装置11和生成装置12。获取装置11用于响应于客户端20获取页面的请求,从提供所述页面的服务器30获取所述页面。随着互联网技术的发展,用户可以从网络中获得越来越多的资讯,或执行各种各样的应用功能。因此,网络页面包含的信息量越来越多,也越来越复杂。浏览器作为一种客户端软件,是用户访问互联网必不可少的工具,通过浏览器浏览网页对用户而言是最便捷的方式。因此,上述客户端20优选为装置于各种终端的浏览器。所述终端包括但不限于PC、笔记本电脑、PDA(个人掌上电脑)、手机、平板电脑等具有可访问互联网功能的终端。所述服务器30为可提供页面的服务者。例如,搜狐、百度、新浪等网页的提供服务者。例如,当装置于智能手机中的360浏览器20i想要访问百度首页时,需要发送一个获取百度首页的请求。当系统10接收到所述获取百度首页的请求,就会对该请求做出响应,进一步从提供百度首页的服务器30获取该页面。又如,当装置于台式机上的百度浏览器202要访问百度地图时,需要发送一个获取百度地图的请求。当系统10接收到所述获取百度地图的请求,就会对该请求做出响应,进一步从提供百度地图的服务器30获取该页面。当系统10获取到客户端20请求的页面时,由生成装置12向所述页面中注入检错代码,生成新页面,并将所述新页面发送至所述客户端20,所述检错代码用于检测所述客户端20执行所述新页面时是否会出现错误,当出现错误时,向错误收集服务器40发送报错信
肩、O如,当获取到百度首页之后,生成装置12解析出百度首页的源代码,在源代码的基础上增加检错代码,生成新页面。由于检错代码只是用于检测页面加载是否有错,并进行错误提交操作,并不会影响原页面本身的文字、图片、链接等内容和效果。因此,将上述新页面发送给360浏览器20i,并不会对在该浏览器上打开百度首页并进行浏览的智能手机用户造成影响。又如,当获取到百度地图之后,生成装置12解析出百度地图的源代码,在源代码的基础上增加检错代码,生成新页面。同样,由于检错代码只是用于检测页面加载是否有错,并进行错误提交操作,并不会影响原页面本身的文字、图片、链接等内容和效果。因此,将上述新页面发送给百度浏览器202,并不会对在该浏览器上打开百度地图并进行浏览的台式机用户造成影响。为了使检错和报错过程更加清晰、完善,优选的,所述检错代码又分为检验代码和错误提交代码两种。检验代码用于检测所述客户端20执行所述新页面时是否会出现错误。进一步地,检验代码用于监控网页中js脚本执行时是否出错,所述检验代码可采用js脚本编码实现。错误提交代码则用于当出现错误时,向所述错误收集服务器40发送报错信息。参考图4,优选的,为了能够正确判断js跳转后的页面能否正确访问、页面加载js是否有错误或者页面CSS加载是否有错误,需要封装装置13进一步封装selenium-sever,以能够为各种触发事件提供接口。在现有技术中,selenium-server用于提供多种点击事件的接口,但是这些接口的功能并不能准确用于触发js事件。因此在本发明中,需要封装装置13对selenium-server进行重新封装,并丰富其内容,调用其接口即可实现触发js事件的功能,并能准确验证页面的各种js事件是否正确。可选的,所述触发事件包括但不限于:点击、长按、划动、圈选、打钩、画叉、涂抹或其他在页面上进行操作的方式。除了能够高覆盖率地验证各种js事件的加载情况,通过调用封装好的selenium-server还可以类似地验证css的加载正确性。另外,使用该方法还可以通过使客户端20执行新页面,而验证url页面是否存在。具体地,当客户端20加载被注入检验代码和错误提交代码的页面时,如果加载失败,检验代码中封装的selenium-server的接口会通过错误提交代码向错误收集服务器40发送报错消息。通过这种方法,可以很简单地监控通过js跳转后的页面是否存在或者js、css执行异常等问题。通过本发明的方法以及系统,解决了监控js跳转后页面是否存在的难题,实现了自动化j s监控监控。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此夕卜,显然“包括” 一词不排除其他模块或步骤,单数不排除复数。
权利要求
1.一种监控页面死链和js错误的方法,其特征在于,包括以下步骤: a)响应于客户端获取页面的请求,从提供所述页面的服务器获取所述页面; b)向所述页面中注入检错代码,生成新页面,并将所述新页面发送至所述客户端,所述检错代码用于检测所述客户端执行所述新页面时是否会出现错误,当出现错误时,向错误收集服务器发送报错信息。
2.根据权利要求1所述的方法,其特征在于,所述检错代码包括:检验代码和错误提交代码; 所述检验代码用于检测所述客户端执行所述新页面时是否会出现错误; 所述错误提交代码用于,当出现错误时,向所述错误收集服务器发送报错信息。
3.根据权利要求2所述的方法,其特征在于,所述检验代码为js检验代码。
4.根据权利要求3所述的方法,其特征在于,封装selenium-sever,提供多种触发事件的接口给所述js检验代码调用。
5.根据权利要求4所述的方法,所述触发事件包括:点击、长按、划动、圈选、打钩、画叉、涂抹或其他在页面上进行操作的方式。
6.根据权利要求1 5任一项所述的方法,其特征在于,所述客户端执行所述新页面时出现的错误包括:所述页面链接不存在、所述页面加载js失败、所述页面通过js跳转后有错、CSS加载错误。
7.一种用于监控页面死链和js错误的系统,其特征在于,包括: 获取装置,用于响应于客户端获取页面的请求,从提供所述页面的服务器获取所述页面; 生成装置,用于向所述页面中注入检错代码,生成新页面,并将所述新页面发送至所述客户端,所述检错代码用于检测所述客户端执行所述新页面时是否会出现错误,当出现错误时,向错误收集服务器发送报错信息。
8.根据权利要求7所述的系统,其特征在于,所述检错代码包括:检验代码和错误提交代码; 所述检验代码用于检测所述客户端执行所述新页面时是否会出现错误; 所述错误提交代码用于,当出现错误时,向所述错误收集服务器发送报错信息。
9.根据权利要求8所述的系统,其特征在于,所述检验代码为js检验代码。
10.根据权利要求9所述的系统,其特征在于,还包括: 封装装置,用于封装selenium-sever,提供多种触发事件的接口给所述js检验代码调用。
11.根据权利要求10所述的系统,所述触发事件包括:点击、长按、划动、圈选、打钩、画叉、涂抹或其他在页面上进行操作的方式。
12.根据权利要求7 11任一项所述的系统,其特征在于,所述客户端执行所述新页面时出现的错误包括:所述页面链接不存在、所述页面加载js失败、所述页面通过js跳转后有错、CSS加载错误。
全文摘要
本发明提供一种监控页面死链和js错误的方法,包括响应于客户端获取页面的请求,从提供所述页面的服务器获取所述页面;向所述页面中注入检错代码,生成新页面,并将所述新页面发送至所述客户端,所述检错代码用于检测所述客户端执行所述新页面时是否会出现错误,当出现错误时,向错误收集服务器发送报错信息。相应的,本发明还提供一种使用该方法的系统。本发明可以有效监控js跳转后页面的质量,提高了测试覆盖率以及测试效率。
文档编号G06F17/30GK103198062SQ201210001129
公开日2013年7月10日 申请日期2012年1月4日 优先权日2012年1月4日
发明者于云涛, 金敬亭 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1