CN103198062B - 一种监控页面死链和js错误的方法及系统 - Google Patents
一种监控页面死链和js错误的方法及系统 Download PDFInfo
- Publication number
- CN103198062B CN103198062B CN201210001129.5A CN201210001129A CN103198062B CN 103198062 B CN103198062 B CN 103198062B CN 201210001129 A CN201210001129 A CN 201210001129A CN 103198062 B CN103198062 B CN 103198062B
- Authority
- CN
- China
- Prior art keywords
- page
- code
- mistake
- error
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种监控页面死链和js错误的方法,包括:响应于客户端获取页面的请求,从提供所述页面的服务器获取所述页面;向所述页面中注入检错代码,生成新页面,并将所述新页面发送至所述客户端,所述检错代码用于检测所述客户端执行所述新页面时是否会出现错误,当出现错误时,向错误收集服务器发送报错信息。相应的,本发明还提供一种使用该方法的系统。本发明可以有效监控js跳转后页面的质量,提高了测试覆盖率以及测试效率。
Description
技术领域
本发明涉及页面质量监控领域,具体地说涉及一种监控页面死链和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错误的方法的一个具体实施方式的流程示意图,包括步骤S101~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浏览器201想要访问百度首页时,需要发送一个获取百度首页的请求。当系统10接收到所述获取百度首页的请求,就会对该请求做出响应,进一步从提供百度首页的服务器30获取该页面。
又如,当装置于台式机上的百度浏览器202要访问百度地图时,需要发送一个获取百度地图的请求。当系统10接收到所述获取百度地图的请求,就会对该请求做出响应,进一步从提供百度地图的服务器30获取该页面。
当系统10获取到客户端20请求的页面时,由生成装置12向所述页面中注入检错代码,生成新页面,并将所述新页面发送至所述客户端20,所述检错代码用于检测所述客户端20执行所述新页面时是否会出现错误,当出现错误时,向错误收集服务器40发送报错信息。
如,当获取到百度首页之后,生成装置12解析出百度首页的源代码,在源代码的基础上增加检错代码,生成新页面。由于检错代码只是用于检测页面加载是否有错,并进行错误提交操作,并不会影响原页面本身的文字、图片、链接等内容和效果。因此,将上述新页面发送给360浏览器201,并不会对在该浏览器上打开百度首页并进行浏览的智能手机用户造成影响。
又如,当获取到百度地图之后,生成装置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跳转后页面是否存在的难题,实现了自动化js监控监控。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他模块或步骤,单数不排除复数。
Claims (10)
1.一种监控页面死链和js错误的方法,其特征在于,包括以下步骤:
a)响应于客户端获取页面的请求,从提供所述页面的服务器获取所述页面;
b)向所述页面中注入检错代码,生成新页面,并将所述新页面发送至所述客户端,所述检错代码用于检测所述客户端执行所述新页面时是否会出现错误,当出现错误时,向错误收集服务器发送报错信息;
其中,所述检错代码包括:检验代码和错误提交代码;
所述检验代码用于检测所述客户端执行所述新页面时是否会出现错误;
所述错误提交代码用于,当出现错误时,向所述错误收集服务器发送报错信息。
2.根据权利要求1所述的方法,其特征在于,所述检验代码为js检验代码。
3.根据权利要求2所述的方法,其特征在于,封装selenium-sever,提供多种触发事件的接口给所述js检验代码调用。
4.根据权利要求3所述的方法,所述触发事件包括:点击、长按、划动、圈选、打钩、画叉、涂抹或其他在页面上进行操作的方式。
5.根据权利要求1~4任一项所述的方法,其特征在于,所述客户端执行所述新页面时出现的错误包括:所述页面链接不存在、所述页面加载js失败、所述页面通过js跳转后有错、css加载错误。
6.一种用于监控页面死链和js错误的系统,其特征在于,包括:
获取装置,用于响应于客户端获取页面的请求,从提供所述页面的服务器获取所述页面;
生成装置,用于向所述页面中注入检错代码,生成新页面,并将所述新页面发送至所述客户端,所述检错代码用于检测所述客户端执行所述新页面时是否会出现错误,当出现错误时,向错误收集服务器发送报错信息;
其中,所述检错代码包括:检验代码和错误提交代码;
所述检验代码用于检测所述客户端执行所述新页面时是否会出现错误;
所述错误提交代码用于,当出现错误时,向所述错误收集服务器发送报错信息。
7.根据权利要求6所述的系统,其特征在于,所述检验代码为js检验代码。
8.根据权利要求7所述的系统,其特征在于,还包括:
封装装置,用于封装selenium-sever,提供多种触发事件的接口给所述js检验代码调用。
9.根据权利要求8所述的系统,所述触发事件包括:点击、长按、划动、圈选、打钩、画叉、涂抹或其他在页面上进行操作的方式。
10.根据权利要求6~9任一项所述的系统,其特征在于,所述客户端执行所述新页面时出现的错误包括:所述页面链接不存在、所述页面加载js失败、所述页面通过js跳转后有错、css加载错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210001129.5A CN103198062B (zh) | 2012-01-04 | 2012-01-04 | 一种监控页面死链和js错误的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210001129.5A CN103198062B (zh) | 2012-01-04 | 2012-01-04 | 一种监控页面死链和js错误的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103198062A CN103198062A (zh) | 2013-07-10 |
CN103198062B true CN103198062B (zh) | 2017-07-25 |
Family
ID=48720631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210001129.5A Active CN103198062B (zh) | 2012-01-04 | 2012-01-04 | 一种监控页面死链和js错误的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103198062B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796278A (zh) * | 2014-01-21 | 2015-07-22 | 携程计算机技术(上海)有限公司 | 终端设备、Web前端错误的上报系统及方法 |
CN103886015A (zh) * | 2014-02-20 | 2014-06-25 | 新浪网技术(中国)有限公司 | 网站服务器以及基于网页应用的页面错误反馈方法 |
CN104331335B (zh) * | 2014-11-20 | 2018-03-23 | 国家电网公司 | 门户网站的死链检查方法和装置 |
CN105975526A (zh) * | 2016-04-29 | 2016-09-28 | 国家计算机网络与信息安全管理中心 | 一种url链接有效性的验证方法 |
CN108304402A (zh) * | 2017-01-12 | 2018-07-20 | 广州市动景计算机科技有限公司 | 外链可用性监控方法和监控装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040205076A1 (en) * | 2001-03-06 | 2004-10-14 | International Business Machines Corporation | System and method to automate the management of hypertext link information in a Web site |
CN1949259B (zh) * | 2006-01-28 | 2011-04-06 | 商助科技(北京)有限公司 | 通过在网页中嵌入代码来采集网页的点击信息的方法 |
CN101075909A (zh) * | 2006-09-18 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 网站访问信息统计系统以及网站访问信息统计方法 |
US20080228862A1 (en) * | 2007-03-12 | 2008-09-18 | Timothy Mackey | Systems and Methods for End-User Experience Monitoring |
US7739551B2 (en) * | 2007-06-20 | 2010-06-15 | Microsoft Corporation | Web page error reporting |
CN101242307A (zh) * | 2008-02-01 | 2008-08-13 | 刘峰 | 用嵌入代码代理日志实现网站访问分析系统与方法 |
US20100131588A1 (en) * | 2008-11-26 | 2010-05-27 | Linkgraph Limited | Error processing methods to provide a user with the desired web page responsive to an error 404 |
CN101620630A (zh) * | 2009-06-29 | 2010-01-06 | 北京黑米天成科技有限公司 | 一种基于js脚本的web行为数据采集模型 |
CN102236654A (zh) * | 2010-04-26 | 2011-11-09 | 广东开普互联信息科技有限公司 | 基于内容相关性的Web无效链接过滤方法 |
CN102314455A (zh) * | 2010-06-30 | 2012-01-11 | 百度在线网络技术(北京)有限公司 | 计算网页点击流量的方法及系统 |
CN102025559B (zh) * | 2010-11-09 | 2013-07-03 | 百度在线网络技术(北京)有限公司 | 用于基于分级来进行死链检测和处理的方法和网络设备 |
-
2012
- 2012-01-04 CN CN201210001129.5A patent/CN103198062B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103198062A (zh) | 2013-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106503134B (zh) | 浏览器跳转至应用程序的数据同步方法及装置 | |
CN103198062B (zh) | 一种监控页面死链和js错误的方法及系统 | |
EP3534263A1 (en) | Systems and methods for web analytics testing and web development | |
CN110768872B (zh) | 巡检方法、系统、装置、计算机设备和存储介质 | |
CN104573520B (zh) | 检测常驻式跨站脚本漏洞的方法和装置 | |
CN103970760B (zh) | 一种网页请求处理方法及装置 | |
CN107632920A (zh) | 一种输变电设备监测装置深度监控方法 | |
CN110941950B (zh) | 接口文档的生成方法、装置、服务器及存储介质 | |
CN108268332A (zh) | 网页异常监控方法、设备及系统 | |
CN103546330A (zh) | 一种浏览器兼容性检测方法、装置及系统 | |
CN105791261A (zh) | 一种跨站脚本攻击的检测方法和检测设备 | |
CN111309620B (zh) | 一种游戏协议测试方法、装置、电子设备和存储介质 | |
CN104320793B (zh) | 一种手机短信自动化测试方法及系统 | |
CN107861860A (zh) | 同步移动设备的移动应用程序的自动验证 | |
CN103647775B (zh) | 一种在网页中进行登录的方法和装置 | |
CN109428877A (zh) | 一种用于通过用户设备访问业务系统的方法和装置 | |
US10140377B2 (en) | Data processing, data collection | |
CN109510738A (zh) | 一种通信链路的测试方法及设备 | |
CN107844486B (zh) | 一种用于客户端的分析网页问题的方法和系统 | |
CN114006885A (zh) | 一种基于智能设备的数据采集方法、装置及电子设备 | |
CN114491560A (zh) | 一种漏洞检测方法、装置、存储介质及电子设备 | |
CN107729208A (zh) | 一种输变电设备监测装置深度监控系统 | |
CN103856373B (zh) | 基于HTTP协议变异的Web系统健壮性测试方法 | |
CN107026854A (zh) | 漏洞验证方法及装置 | |
CN106383765A (zh) | 一种数据监控方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |