CN107562600B - 页面检测方法、装置、计算设备以及存储介质 - Google Patents
页面检测方法、装置、计算设备以及存储介质 Download PDFInfo
- Publication number
- CN107562600B CN107562600B CN201710729011.7A CN201710729011A CN107562600B CN 107562600 B CN107562600 B CN 107562600B CN 201710729011 A CN201710729011 A CN 201710729011A CN 107562600 B CN107562600 B CN 107562600B
- Authority
- CN
- China
- Prior art keywords
- page
- information
- dom
- elements
- dom tree
- 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
Images
Abstract
本发明公开了一种页面检测方法、装置、计算设备以及存储介质。其中,分析被测页面以获取当前页面元素信息作为当前元素信息;将当前元素信息与被测页面的基准元素信息相比较;根据当前元素信息与基准元素信息的比较结果,判断被测页面的变化情况。由此,无需通过浏览器完成整个页面访问流程,就可以快速高效地实现被测页面的检测。与现有的页面监控方式相比,本发明的页面检测方案可以视为一种轻量级的页面监控方案。
Description
技术领域
本发明涉及页面监控领域,特别是涉及一种页面检测方法、装置、计算设备以及存储介质。
背景技术
随着信息技术日益趋向网络化发展,人们越来越多地通过网络获取资源。具体可以通过浏览器访问具有特定URL地址的页面获取资源,也可以通过浏览安装在本地客户端设备上的应用软件中提供的页面获取资源。例如,可以通过浏览今日头条、新浪微博等APP提供的页面获取资源。
由于页面提供的资源大多是存在于互联网中的网络资源,而网络资源大多具有一定的时效性。因此,在页面上线后,需要经常对页面进行监控,以检测页面提供的资源是否缺失。
现有的页面监控方式主要是在应用层面通过浏览器访问页面,根据在浏览器上显示的页面访问结果,判断页面提供的资源能否正常使用。这种方式需要针对具体的页面设计具体测试用例,测试过程需要调用浏览器并且最终的测试环节还需要人工参与判断,对人力资源要求较高。
进一步地,为了能够实时向用户提供新的网络资源,网站运营方还需要经常上线新页面。在上线的新页面较多的情况下,使用现有的页面监控方式无法在新页面上线后第一时间实现对所有新页面的监控,导致在新页面上线后存在一定的监控真空期。
有鉴于此,需要提供一种新的页面检测方案,以简单高效地实现页面监控。
发明内容
本发明的主要目的在于提供一种能够简单高效地实现页面监控的页面检测方案。
根据本发明的一个方面,提供了一种页面检测方法,包括:分析被测页面以获取当前页面元素信息作为当前元素信息;将当前元素信息与被测页面的基准元素信息相比较;以及根据当前元素信息与基准元素信息的比较结果,判断被测页面的变化情况。
由此,无需通过浏览器完成整个页面访问流程,仅通过比较被测页面的页面元素信息是否发生变化,就可以快速高效地实现被测页面的检测。
优选地,基准元素信息是被测页面在生成或更新时获取的被测页面的当前页面元素信息。
新生成或新更新的页面一般处于正常状态,因此可以将新生成或新更新的页面的当前页面元素信息作为基准元素信息。
优选地,页面元素信息包含被测页面的元素嵌套关系信息。
由此,在对当前元素信息和被测页面的基准元素信息进行比较时,还可以比较页面元素间的元素嵌套关系是否一致,从而可以进一步提高检测精准度。
优选地,分析被测页面以获取当前页面元素信息作为当前元素信息可以包括:对被测页面进行DOM元素解析;根据DOM元素解析结果生成定制DOM树作为当前页面元素信息,其中定制DOM树包含页面元素层级信息。
由此,被测页面的当前页面元素信息可以用结构化的定制DOM树表征,通过检测定制DOM树是否发生变化,可以确定被测页面是否发生变化。
优选地,根据DOM元素解析结果生成定制DOM树作为当前页面元素信息可以包括:消除DOM元素中的冗余信息,冗余信息包括如下一项或多项:冗余属性信息;冗余元素信息;元素节点中的具体数据内容,以及基于消除了冗余信息的DOM元素解析结果生成定制DOM树。
由此,基于消除了冗余信息的DOM元素解析结果生成的定制DOM树可以表征被测页面当前的框架模型,通过检测被测页面的框架模型是否发生变化可以实现对被测页面的快速检测。并且可以降低检测过程对服务器的资源消耗。
优选地,定制DOM树仅包括有效元素及其层级信息。
优选地,有效元素是包括开始标记和结束标记的页面元素。
优选地,对被测页面进行DOM元素解析包括:找出被测页面中根节点子元素的开始标记;逐层找出根节点子元素中开始和结束标记完整的下级元素;找出根节点子元素的结束标记,以生成与各根节点子元素对应的子树;以及在根节点下合并各子树以得到n叉树,并且根据DOM元素解析结果生成定制DOM树作为当前页面元素信息可以包括:消除n叉树节点中的具体内容数据和冗余属性信息,以生成定制DOM树。
由此,可以得到具有预定层级关系的定制DOM树。
优选地,该方法还可以包括:响应于被测页面发生变化,生成警报通知。由此,相关人员可以根据警报通知及时对发生变化的页面进行处理。
优选地,可以周期性地或是按照检测命令重复页面检测方法。
由此,可以在被测页面上线后,利用本发明的页面检测方法对被测页面进行多次检测。
根据本发明的另一个方面,还提供了一种页面检测装置,包括:分析单元,用于分析被测页面以获取当前页面元素信息作为当前元素信息;比较单元,用于将当前元素信息与被测页面的基准元素信息相比较;以及判断单元,用于根据当前元素信息与基准元素信息的比较结果,判断被测页面的变化情况。
优选地,基准元素信息是分析单元在被测页面生成或更新时获取的当前页面元素信息。
优选地,页面元素信息包含被测页面的元素嵌套关系信息。
优选地,分析单元可以包括:解析单元,用于对被测页面进行DOM元素解析;DOM树生成单元,用于根据DOM元素解析结果生成定制DOM树作为当前页面元素信息,其中定制DOM树包含页面元素层级信息。
优选地,DOM树生成单元还可以用于:消除DOM元素中的冗余信息,冗余信息包括如下一项或多项:冗余属性信息;冗余元素信息;元素节点中的具体数据内容,以及基于消除了冗余信息的DOM元素解析结果生成定制DOM树。
优选地,DOM树生成单元生成仅包括有效元素及其层级信息的定制DOM树。
优选地,有效元素是包括开始标记和结束标记的页面元素。
优选地,解析单元还可以用于:找出被测页面中根节点子元素的开始标记;逐层找出根节点子元素中开始和结束标记完整的下级元素;找出根节点子元素的结束标记,以生成与各根节点子元素对应的子树;以及在根节点下合并各子树以得到n叉树,并且DOM树生成单元还可以用于:消除n叉树节点中的具体内容数据和冗余属性信息,以生成定制DOM树。
优选地,该装置还可以包括:报警装置,响应于被测页面发生变化,生成警报通知。
优选地,页面检测装置周期性地或是按照检测命令重复页面检测。
根据本发明的又一个方面,还提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行上文述及的方法。
根据本发明的再一个方面,还提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行上文述及的方法。
综上,本发明的页面检测方法、装置、计算设备以及存储介质,通过将提取的被测页面上线后的页面元素信息与被测页面的基准页面元素信息进行比对,可以确定被测页面是否发生了变化,具体发生了何种变化。由此,无需通过浏览器完成整个页面访问流程,就可以快速高效地实现被测页面的检测。与现有的页面监控方式相比,本发明的页面检测方案可以视为一种轻量级的页面监控方案。在大量上线新页面时,利用本发明的页面检测方案可以在新页面上线后快速实现对所有新页面的监控,从而可以减少乃至消除新页面上线后的监控真空期。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是示出了根据本发明一个实施例的计算设备的结构的示意性方框图。
图2是示出了根据本发明一实施例的页面检测方法的示意性流程图。
图3是示出了根据本发明一实施例的定制DOM树的生成方法的示意性流程图。
图4是示出了页面中的一种层级关系示意图。
图5是示出了本发明一具体实施例下的页面检测流程图。
图6是示出了根据本发明一实施例的页面检测装置的结构的示意性方框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
随着信息技术日益趋向网络化发展,可供用户访问的页面越来越多。用户可以通过访问页面获取资源。页面在上线前,一般都需要经开发人员测试,以确保新上线的页面能够正常提供资源或功能。由于页面提供的资源大多是存在于互联网中的网络资源,而网络资源大多具有一定的时效性。因此,在页面上线后仍需要对页面进行监控,以检测页面提供的资源是否缺失。以提供书籍在线浏览资源的页面为例,如果在页面上线一段时间后出现书籍过期等异常情况,会导致页面无法正常显示全部的书籍信息,我们称为页面产生了运营数据的丢失。
如背景技术部分所述,现有的页面监控方案对人力资源要求较高,实现起来较为复杂。并且在上线新页面后,无法及时实现对新上线的页面的监控,从而会存在一定的监控真空期。因此,如何简单高效地实现页面的检测,是目前各大网站运营方所需考虑的问题。
有鉴于此,本发明提出了一种新的页面检测方案。通过提取页面上线后的页面元素信息,将提取的页面元素信息与页面的基准页面元素信息进行比较,可以确定被测页面是否发生了变化,并可以进一步确定被测页面具体发生了何种变化。其中,基准页面元素信息是页面可供正常访问时的页面元素信息。由于新生成的页面或新更新的页面一般是正常页面,因此可以将页面刚生成或更新时的当前页面元素信息作为基准元素信息。例如,可以将页面刚上线时的当前页面元素信息作为基准元素信息。
本发明的页面检测方案通过判断页面的页面元素信息是否发生变化,确定被测页面是否发生变化,在页面元素信息没有发生变化的情况下,可以认定被测页面处于正常状态。由此可以较为准确地实现页面的监控,并且整个监控过程对人力资源要求较小。
进一步地,可以由预先设计的接口实现本发明的页面检测方案。在利用接口实现本发明的页面检测方案时,无需调用浏览器完成浏览器的整个访问页面操作,而采用无浏览器的方式可以仅获取被测页面的页面文件,然后由接口提取页面文件中的页面元素信息,将提取的页面元素信息与页面的基准页面元素信息进行比较,从而可以判断被测页面是否发生变化。
举例来说,浏览器访问页面的整个过程可以分为加载、解析、排版、渲染及显示。现有的页面监控方式需要使用浏览器实现页面的整个访问过程。而本发明则可以采用无浏览器的方式通过网络加载页面文件,基于加载得到的页面文件,就可以利用本发明的页面检测方案实现页面的检测。
与现有的页面监控方式相比,本发明的页面检测方案可以视为一种轻量级的页面监控方案。在大量上线新页面时,利用本发明的页面检测方案可以在新页面上线后快速实现对所有新页面的监控,从而可以减少乃至消除新页面上线后的监控真空期。
本发明的页面检测方案还可以与现有的页面监控方式相配合,以实现多层次地页面监控。例如,在上线新页面时,可以配置相应的测试用例以对页面进行监控。在配置测试用例的过程中,可以利用本发明的页面检测方案及时对新上线的页面进行监控,在配置测试用例完成后,可以切换监控方式,通过执行测试用例,对页面进行后续监控。由此,利用本发明的页面检测方案可以有效地弥补测试用例上线前所产生的监控真空期。
本发明实施例所提供的页面检测方案可应用于如图1所示的计算设备。图1是示出了根据本发明一个实施例的计算设备100的结构的示意性方框图。其中,计算设备100可以是可以实施为各种类型的计算机装置,例如台式机、便携式计算机、平板电脑、智能手机、个人数据助理(PDA),或者其他类型的计算机装置,但是不限于任何特定形式。
如图1所示,本发明的计算设备100可以包括处理器110以及存储器120。处理器110可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器110可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器110可以使用定制的电路实现,例如专用集成电路(ASIC)或者现场可编程逻辑门阵列(FPGA)。
存储器120可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM)和永久存储装置。其中,ROM可以存储处理器110或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁盘或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器120可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器120可以包括可读写和/或可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
在本发明实施例中,存储器120上存储有可执行代码,处理器110可以执行存储在存储器120上的可执行代码。当可执行代码被处理器110执行时,可以使处理器110执行本发明的页面检测方案,以实现被测页面的检测。
图2是示出了根据本发明一实施例的页面检测方法的示意性流程图。其中,图2所示的方法可以由图1中的处理器110执行。
参见图2,方法开始于步骤S210,分析被测页面以获取当前页面元素信息作为当前元素信息。
被测页面可以是任何已上线的页面。具体可以是存在于互联网中的绑定了特定URL地址的网页,也可以是安装在终端设备(如手机)上的APP中的页面。例如可以是今日头条、QQ浏览器等资讯类APP中内嵌的页面,也可以是掌阅、书旗小说等阅读类APP中内嵌的页面。
在本发明的一个实施例中,被测页面可以是刚上线的新页面。此处述及的“新页面”可以是新生成的之前未上线过的页面,也可以是对之前上线过的页面进行更新后得到的页面。“上线”是指将新页面设定为可供用户访问的状态。
当前页面元素信息(当前元素信息)是指在对被测页面进行分析时所获取的页面元素信息。所获取的页面元素信息可以包括被测页面中所有的页面元素,也可以包括被测页面中部分页面元素。例如,所获取的页面元素信息可以是被测页面中易于缺失的元素信息,也可以是被测页面主要提供的资源相关的元素信息,还可以是对被测页面的正常显示起主导作用的元素信息。作为示例,在被测页面为向用户提供书籍、音乐、视频等资源页面时,可以主要获取被测页面中用于提供相应资源的页面元素信息。
在得到当前元素信息后,可以执行步骤S120,将当前元素信息与被测页面的基准元素信息相比较。基准元素信息是被测页面在正常情况下应具有的元素信息。新生成或新更新的页面一般是正常页面,因此可以将被测页面刚生成或更新时获取的当前页面元素信息作为基准元素信息。例如,可以将页面刚上线时获取的当前页面元素信息作为基准元素信息。
根据当前元素信息与基准元素信息的比较结果,可以判断被测页面的变化情况(步骤S130)。具体地,在比较结果是当前元素信息与基准元素信息一致的情况下,可以判断被测页面没有发生变化,处于正常状态。在比较结果是当前元素信息与基准元素信息不一致的情况下,可以判断被测页面发生了变化,并且还可以根据当前元素信息与基准元素信息中不一致的页面元素,进一步确定被测页面发生了何种变化。例如,在当前元素信息与基准元素信息相比,缺少了某一页面元素时,可以认定被测页面无法提供该页面元素对应的页面资源。
在实际检测过程中,可以周期性地或是按照检测命令重复执行本发明的检测方法,以实现对被测页面的周期性检测。在检测到被测页面发生变化时,可以生成警报通知以通知相关人员对被测页面进行修复。
作为本发明的一个可选实施例,在执行步骤S210获取页面元素信息的过程中,不仅可以获取被测页面中所包含的页面元素,还可以获取页面元素之间的元素嵌套关系。其中,元素嵌套关系是指页面元素之间的层级关系。以HTML或XML等标记语言编写的页面为例,页面中的页面元素一般是由标签描述的,各标签之间具有一定的层级关系,标签之间的层级关系就可以表征页面元素之间的元素嵌套关系。
由此,在执行步骤S210的比较过程中,不仅可以比较当前元素信息和基准元素信息中页面元素是否相同,还可以比较页面元素的嵌套关系是否一致,如此可以进一步提高检测精准度。
至此,结合图2详细描述了本发明的页面检测方法的基本实现原理。根据上文结合图2的描述可知,本发明的页面检测方法主要是预先获取被测页面的基准元素信息,在测试过程中再次获取被测页面的当前元素信息,通过比较当前元素信息是否和基准元素信息一致,判断被测页面是否发生变化。因此,如何提取被测页面的页面元素信息是实现本发明的关键。
本发明提出,可以对被测页面进行解析,以将被测页面转换为结构化的定制DOM树,定制DOM树中的节点对应于被测页面中的页面元素,节点之间的连线表征页面元素之间的元素嵌套关系。由此,可以通过检测被测页面的定制DOM树是否发生变化,判断被测页面是否发生变化。下面就定制DOM树的生成过程做详细说明。
图3是示出了根据本发明一实施例的定制DOM树的生成方法的示意性流程图。
参见图3,方法开始于步骤S310,对被测页面进行DOM元素解析,以得到DOM元素解析结果。
DOM即文档对象模型(Document Object Model,DOM)。对被测页面进行DOM元素解析,主要是将被测页面解析成对象模型的集合,集合中的每个对象模型就可以称为DOM元素,DOM元素与被测页面中的页面元素相对应。
被测页面中的页面元素之间一般具有一定的元素嵌套关系,因此在对被测页面进行DOM元素解析的过程中,除了可以将页面中的页面元素解析为DOM元素,还可以连同页面元素之间的元素嵌套关系一并解析。也就是说,解析得到的DOM元素解析结果还可以包括DOM元素之间的层级关系,DOM元素之间的层级关系可以表征页面元素之间的元素嵌套关系。
在得到DOM元素解析结果之后,可以执行步骤S320,根据DOM元素解析结果生成定制DOM树。所得到的定制DOM树可以作为被测页面的当前页面元素信息。
下面分别就DOM元素解析过程和定制DOM树生成过程做进一步详细说明。
一、DOM元素解析过程
如本领域技术人员所公知,网站上线的页面或者本地APP中的页面一般是利用HTML、XML等标记语言编写的。基于标记语言编写的页面中的页面元素是通过各种标签进行描述的。换句话说,页面元素可以由标签及具体内容构成。例如,<p>这里是内容</p>可以视为一个页面元素,该页面元素由标签p和具体内容组成,其中,标签p由一个开始标记<p>和一个结束标记</p>组成。
进一步地,用于描述页面元素的标签之间的层级关系可以反映页面元素之间的元素嵌套关系。以HTML语言编写的页面为例,<html></html>、<header></header>、<body></body>这种结构性语言都可以视为标签,且是成对出现的。其中,<body>为body标签的开始标记,</body>为body标签的结束标记。每个标签中可以包括具体的数据内容,并且还可以嵌套其它标签。如图4所示,html标签下包括header标签和body标签。header标签下还嵌套title标签。body标签下嵌套div标签,div标签下还嵌有h1标签和p标签。其中,各标签所代表的具体含义为本领域技术人员所公知,此处不再赘述。
DOM元素解析过程主要是将被测页面中的页面元素映射为DOM树中的节点。根据上文描述可知,页面元素一般是利用各种标签描述的,因此可以通过寻找被测页面中的标签,解析出对应的页面元素。而标签是由成对的开始标记和结束标记组成,因此可以通过寻找成对的开始标记和结束标记,寻找到页面中的标签,进而解析出标签所描述的页面元素。
也就是说,解析过程可以优选地仅解析出具有完整开始标记和结束标记的元素。为了便于描述,具有完整的开始标记和结束标记的元素可以称为有效元素,不具有完整的开始标记和结束标记的元素可以称为冗余元素,或无效元素。冗余元素一般是页面中的非重要数据,且不参与元素层级关系的构建,因此解析过程可以仅解析出有效元素,直接删除无效元素。具体解析过程如下。
1、从被测页面中的根节点子元素开始,首先找出被测页面中根节点子元素的开始标记和结束标记。
根节点子元素是指根节点下的第一层子元素,以HTML语言编写的页面为例,页面文档是从html标签开始的,因此根节点就是html标签,根节点子元素可以是直接嵌套在html标签下的元素。如图4所示,通常html标签包括header标签和body标签,header标签和body标签所描述的元素即可以视为根节点子元素。根节点子元素的开始标记和结束标记就是用于描述根节点子元素的标签的开始标记和结束标记。例如,描述根节点子元素的header标签的开始标记为<header>,结束标记为</header>。
2、逐层找出根节点子元素中开始标记和结束标记完整的下级元素。
下级元素即嵌套在根节点子元素中的元素。可以通过在根节点子元素的开始标记和结束标记的区间内寻找具有完整的开始标记和结束标记的元素,所找到的元素即为根节点子元素的下级元素。
逐层查找下级元素是指,首先在根节点子元素的开始标记和结束标记的区间内查找直接嵌套在根节点子元素下的第一级下级元素,然后在第一级下级元素的开始标记和结束标记的区间内查找直接嵌套在第一级下级元素下的第二级下级元素,以此类推,得到根节点子元素下的所有下级元素以及下级元素之间的层级关系。
作为本发明的一个可选实施例,可以在根节点子元素的开始标记和结束标记的区间内查找其它开始标记,在找到第一个开始标记后,在根节点子元素的区间内查找是否具有与该开始标记对应的结束标记,如没有,则忽略该开始标记,然后查找下一个开始标记。如查找到对应的结束标记,则该开始标记和对应的结束标记之间的内容即为根节点子元素的第一个第一级下级元素。然后可以在第一个第一级下级元素的结束标记和根节点子元素的结束标记的区间内继续查找是否有完整的开始标记和结束标记,即查找是否有第二个第一级下级元素,以此类推,可以得到根节点子元素下的所有第一级下级元素。
在得到根节点子元素下的所有第一级下级元素之后,可以针对每个第一级下级元素,使用上述方法查找第一级下级元素的开始标记和结束标记的区间内查找具有完整标记的所有第二级下级元素。以此类推,可以得到根节点子元素下的所有下级元素以及下级元素之间的层级关系。
3、生成根节点下的n叉树
基于上文所述的下级元素查找方式,可以得到各根节点子元素下的下级元素,如此可以生成与各根节点子元素对应的子树。各根节点子元素都是根节点下的第一级下层元素,属于同一层级。因此可以在根节点下合并各子树,得到n叉树,或者可以称为多叉树。其中,n表示根节点子元素的个数,一般为大于或等于2的正整数。
二、定制DOM树的生成过程
基于DOM元素解析过程得到的n叉树中的节点与被测页面中的页面元素(优选为有效元素)相对应,n叉树中的节点之间的连线可以表征页面元素之间的元素嵌套关系。
在本发明一个实施例中,可以直接将得到的n叉树作为定制DOM树。此时定制DOM树中的节点包括对应的页面元素的具体数据内容和属性信息。由此,在对被测页面进行检查时,需要判断定制DOM树中每个节点的具体数据内容和属性信息是否发生变化,判断过程较为繁琐。
因此,作为本发明的一个优选实施例,可以对得到的n叉树进行进一步地精简,剔除n叉树节点中的具体数据内容和冗余属性信息,瘦身后的n叉树即为定制DOM树。由此,得到的定制DOM树中的节点可以仅包括节点名称,而不包括具体的数据内容和属性信息。其中,节点名称可以优选地是用于描述页面元素的标签名称。如此,在对被测页面进行DOM元素解析时,可以仅解析出被测页面中存在的标签,而忽略标签所描述的页面数据的具体数据内容,解析出的各标签可以视为定制DOM树中的DOM节点。解析出的定制DOM树的结构与图4类似,DOM树中的节点表示DOM元素,节点之间的连线表示DOM元素之间的层级关系。
至此结合图3详细说明了对被测页面进行解析以得到定制DOM树的具体实现过程。在得到定制DOM树后,可以将定制DOM树与基准定制DOM树相比较,其中,基准定制DOM树可以是在页面新生成或完成更新时,利用上文述及的定制DOM树的生成方式得到的DOM树。由此可以根据定制DOM树与基准定制DOM树的比较结果,判断被测页面的变化情况。
在本发明的一个实施例中,定制DOM树和基准定制DOM树均可以是基于消除了冗余信息的DOM元素解析结果生成的。其中,冗余信息可以包括冗余元素信息、有效元素的冗余属性信息、元素节点中的具体数据内容等等。由此,本发明述及的DOM树可以是指被测页面的最基础且最精简的DOM树信息,例如,仅包括有效元素及其嵌套关系的DOM树骨架。基准定制DOM树可以表征被测页面在正常状态时的基准框架模型,定制DOM树为对被测页面进行检查时得到的被测页面的当前框架模型,通过比较定制DOM树和基准定制DOM树,可以得到被测页面的框架结构是否发生变化,在被测页面的框架结构发生变化时,可以认定被测页面发生了变化。由此,可以简单快速地实现以页面数据丢失为检查目的的页面监控方式。
以采用模板拼接方式生成的业务页面为例,负责不同模板的业务人员可以设计不同的样式,并添加不同的数据信息内容。模板样式固定后,业务页面的基准DOM定制树的结构就可以确定。假如某业务人员在其负责的模板内配置了8本书籍显示,但是由于书籍过期或者其它异常情况导致此模板区域只展示5本书籍,此时业务页面就发生了运营数据的丢失。本来8本书的结构变成了5本,业务页面此时的DOM结构就会发生变化,具体表现为DOM树中的节点数量的减少。因此通过检测被测页面的当前定制DOM树是否发生变化,就可以快速排查这类问题。
图5是示出了本发明一具体实施例下的页面检测流程图。
参见图5,首先可以执行步骤S510,对被测页面进行DOM元素解析。
此处述及的被测页面是指刚生成的新页面或者更更新完成的页面,例如可以是新上线的页面。
解析过程即页面元素的寻找过程,解析得到的DOM元素与页面中的页面元素相对应。在解析过程中可以根据页面元素之间的元素嵌套关系确定DOM元素之间的层级关系。并且,解析过程可以优选地仅解析出被测页面中具有完整开始和结束标记的有效元素。
在解析完成后,可以执行步骤S520,基于DOM元素解析结果,生成基准定制DOM树。基准定制DOM树可以表征被测页面正常状态时的框架模型。
在得到基准定制DOM树后,可以执行步骤S530,对被测页面进行解析,以得到被测页面当前的定制DOM树。然后执行步骤S540,将获取的定制DOM树与基准定制DOM树进行比较。
在比较结果一致的情况下,表明被测页面当前处于正常状态,此后可以在预定时间间隔后,或者响应于检测指令,再次返回执行步骤S530、步骤S540,对被测页面进行检测。
在比较结果不一致的情况下,可以发出警报(步骤S550),以通知相关人员处理。在相关人员对被测页面进行修复后,可以直接返回执行步骤S530、步骤S540,对被测页面再次进行检测。
图6是示出了根据本发明一实施例的页面检测装置的结构的示意性方框图。其中,页面检测装置600的功能模块可以由实现本发明原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图6所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
下面仅就页面检测装置可以具有的功能模块以及各功能模块可以执行的操作做简要说明,对于其中涉及的细节部分可以参见上文描述,这里不再赘述。
参见图6,页面检测装置600包括分析单元610、比较单元620以及判断单元630。页面检测装置600可以周期性地或是按照检测命令重复对被测页面进行页面检测。
分析单元610用于分析被测页面以获取当前页面元素信息作为当前元素信息。其中,页面元素信息可以包含被测页面的元素嵌套关系信息。基准元素信息优选地是分析单元610在被测页面生成或更新时获取的当前页面元素信息。
比较单元620用于将当前元素信息与被测页面的基准元素信息相比较。判断单元630用于根据当前元素信息与基准元素信息的比较结果,判断被测页面的变化情况。
如图6所示,作为本发明的一个可选实施例,分析单元610还可以包括图中虚线框所示的解析单元611和DOM树生成单元613。
解析单元611用于对被测页面进行DOM元素解析。DOM树生成单元613用于根据DOM元素解析结果生成定制DOM树作为当前页面元素信息,其中定制DOM树包含页面元素层级信息。
优选地,DOM树生成单元613可以消除DOM元素中的冗余信息,并基于消除了冗余信息的DOM元素解析结果生成定制DOM树。其中,冗余信息可以包括如下一项或多项:冗余属性信息、冗余元素信息、元素节点中的具体数据内容。也就是说,DOM树生成单元613可以生成仅包括有效元素及其层级信息的定制DOM树。其中,有效元素是包括开始标记和结束标记的页面元素,冗余元素是不包含完整的开始标记和结束标记的页面元素。
在本发明的一个实施例中,解析单元611用于找出被测页面中根节点子元素的开始标记,逐层找出根节点子元素中开始和结束标记完整的下级元素,找出根节点子元素的结束标记,以生成与各根节点子元素对应的子树,在根节点下合并各子树以得到n叉树。DOM树生成单元用于消除n叉树节点中的具体内容数据和冗余属性信息,以生成定制DOM树。
如图6所示,作为本发明的一个可选实施例,页面检测装置600还可以包括图中虚线框所示的报警装置640。响应于被测页面发生变化,报警装置640可以生成警报通知,以通知相关人员对被测页面进行相应处理。
综上,本发明的页面检测方案通过分析被测页面的页面元素信息是否发生变化,判断被测页面的变化情况。可以简单快速地实现以运营数据丢失为检查目的的监控方式,并且检测过程对服务器的资源消耗以及带宽流量要求较低。由此可以利用本发明实现对新上线的页面的监控,以减小业务页面上线后所出现的监控真空期。
进一步地,本发明的页面检测方案在检测过程中可以将被测页面的页面元素信息转换为具有层级结构的定制DOM树,通过比较定制DOM树的结构是否发生变化,判断被测页面的变化情况。由此,可以进一步降低资源消耗,提高检测效率。
因此,本发明的页面检测方案作为一种轻量级的页面监控方案,在接口级别和模拟浏览器监控两个层面中得到了另一个维度的有益补充,可以填补在实际页面监控上线前所产生的监控真空期,利用最小的投入力度来实现基本页面监控和检测功能。
更进一步地,本发明的页面检测方案可以与接口级别监控和模拟浏览器监控形成多维度交叉验证体系,提升线上发现问题的能力和线上问题快速反应时间。其中,接口级别监控是指采用标准HTTP请求方式对页面中的资源进行验证,以实现在网络层进行监控和判断。模拟浏览器监控是指调用浏览器完成真实的页面访问流程,根据访问结果实现页面的监控,实现过程需要编写测试用例,对人力资源要求较高。
本发明的页面检测方案可以优选地对静态页面进行监控,而不在页面之间进行跳转监控。其中,在需要监控多个跳转页面时,可以将这些页面配置为一个任务结合,按照顺序逐一执行。
上文中已经参考附图详细描述了根据本发明的页面检测方法、装置及计算设备。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (18)
1.一种无浏览器方式的页面检测方法,包括:
分析被测页面以基于消除了冗余信息的DOM元素解析结果生成的定制DOM树作为当前元素信息;
将所述当前元素信息与所述被测页面的基准元素信息相比较,所述基准元素信息是所述被测页面在生成或更新时分析所述被测页面获取的、基于消除了冗余信息的DOM元素解析结果生成的基准定制DOM树;以及
根据所述当前元素信息与所述基准元素信息的比较结果,判断所述被测页面的变化情况,
其中,所述定制DOM树和所述基准定制DOM树仅包括有效元素及其层级信息。
2.如权利要求1所述的方法,其中,所述有效元素是包括开始标记和结束标记的页面元素。
3.如权利要求1所述的方法,其中,页面元素信息包含所述被测页面的元素嵌套关系信息。
4.如权利要求1所述的方法,其中,分析被测页面以基于消除了冗余信息的DOM元素解析结果生成定制DOM树作为当前元素信息包括:
对所述被测页面进行DOM元素解析;
根据所述DOM元素解析结果生成定制DOM树作为当前页面元素信息,其中所述定制DOM树包含页面元素层级信息。
5.如权利要求4所述的方法,其中,根据所述DOM元素解析结果生成定制DOM树作为当前页面元素信息包括:
消除DOM元素中的冗余信息;以及
基于消除了冗余信息的DOM元素解析结果生成定制DOM树,
其中,所述冗余信息包括如下一项或多项:
冗余属性信息、冗余元素信息、元素节点中的具体数据内容。
6.如权利要求4所述的方法,其中,对所述被测页面进行DOM元素解析包括:
找出所述被测页面中根节点子元素的开始标记;
逐层找出所述根节点子元素中开始和结束标记完整的下级元素;
找出所述根节点子元素的结束标记,以生成与各根节点子元素对应的子树;以及
在根节点下合并各子树以得到n叉树,并且
根据所述DOM元素解析结果生成定制DOM树作为当前页面元素信息包括:
消除所述n叉树的节点中的具体数据内容和冗余属性信息,以生成所述定制DOM树。
7.如权利要求1所述的方法,还包括:
响应于所述被测页面发生变化,生成警报通知。
8.如权利要求1所述的方法,其中,周期性地或是按照检测命令重复所述页面检测方法。
9.一种无浏览器方式的页面检测装置,包括:
分析单元,用于分析被测页面以基于消除了冗余信息的DOM元素解析结果生成的定制DOM树作为当前元素信息;
比较单元,用于将所述当前元素信息与所述被测页面的基准元素信息相比较,所述基准元素信息是所述被测页面在生成或更新时分析所述被测页面获取的、基于消除了冗余信息的DOM元素解析结果生成的基准定制DOM树;以及
判断单元,用于根据所述当前元素信息与所述基准元素信息的比较结果,判断所述被测页面的变化情况,
其中,所述定制DOM树和所述基准定制DOM树仅包括有效元素及其层级信息。
10.如权利要求9所述的装置,其中,所述有效元素是包括开始标记和结束标记的页面元素。
11.如权利要求9所述的装置,其中,页面元素信息包含所述被测页面的元素嵌套关系信息。
12.如权利要求9所述的装置,其中,所述分析单元包括:
解析单元,用于对所述被测页面进行DOM元素解析;
DOM树生成单元,用于根据所述DOM元素解析结果生成定制DOM树作为当前页面元素信息,其中所述定制DOM树包含页面元素层级信息。
13.如权利要求12所述的装置,其中,DOM树生成单元还用于:
消除DOM元素中的冗余信息;以及
基于消除了冗余信息的DOM元素解析结果生成定制DOM树,
其中,所述冗余信息包括如下一项或多项:
冗余属性信息、冗余元素信息、元素节点中的具体数据内容。
14.如权利要求12所述的装置,其中,所述解析单元还用于:
找出所述被测页面中根节点子元素的开始标记;
逐层找出所述根节点子元素中开始和结束标记完整的下级元素;
找出所述根节点子元素的结束标记,以生成与各根节点子元素对应的子树;以及
在根节点下合并各子树以得到n叉树,并且
所述DOM树生成单元还用于:
消除所述n叉树的节点中的具体数据内容和冗余属性信息,以生成所述定制DOM树。
15.如权利要求9所述的装置,还包括:
报警单元,响应于所述被测页面发生变化,生成警报通知。
16.如权利要求9所述的装置,其中,所述页面检测装置周期性地或是按照检测命令重复页面检测。
17.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-8中任一项所述的方法。
18.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710729011.7A CN107562600B (zh) | 2017-08-23 | 2017-08-23 | 页面检测方法、装置、计算设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710729011.7A CN107562600B (zh) | 2017-08-23 | 2017-08-23 | 页面检测方法、装置、计算设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107562600A CN107562600A (zh) | 2018-01-09 |
CN107562600B true CN107562600B (zh) | 2021-12-10 |
Family
ID=60976725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710729011.7A Active CN107562600B (zh) | 2017-08-23 | 2017-08-23 | 页面检测方法、装置、计算设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107562600B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110865843B (zh) * | 2018-08-09 | 2024-03-26 | 阿里巴巴集团控股有限公司 | 页面回溯、信息备份与问题解决方法、系统及设备 |
CN110659188B (zh) * | 2019-08-14 | 2023-03-21 | 平安普惠企业管理有限公司 | 页面画像数据处理方法、装置、计算机设备和存储介质 |
CN112579951A (zh) * | 2019-09-30 | 2021-03-30 | 北京国双科技有限公司 | 页面元素选取方法、装置、存储介质及设备 |
CN111158973B (zh) * | 2019-12-05 | 2021-06-18 | 北京大学 | 一种web应用动态演化监测方法 |
CN112130944A (zh) * | 2020-09-16 | 2020-12-25 | 北京三快在线科技有限公司 | 页面异常的检测方法、装置、设备及存储介质 |
CN113761431A (zh) * | 2020-09-24 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种校验页面完整性的方法和装置 |
CN115062206B (zh) * | 2022-05-30 | 2023-04-07 | 上海弘玑信息技术有限公司 | 一种网页元素的搜索方法和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236713A (zh) * | 2011-07-05 | 2011-11-09 | 广东星海数字家庭产业技术研究院有限公司 | 一种数字电视交互服务页面的信息提取方法及其装置 |
CN103544213A (zh) * | 2013-09-16 | 2014-01-29 | 青岛英网资讯股份有限公司 | 网站内容更新检测评价方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069169B (zh) * | 2015-08-31 | 2019-03-05 | 国家计算机网络与信息安全管理中心 | 一种网站镜像的检测方法及装置 |
CN105354292A (zh) * | 2015-10-30 | 2016-02-24 | 东莞酷派软件技术有限公司 | 一种页面输出方法及装置 |
-
2017
- 2017-08-23 CN CN201710729011.7A patent/CN107562600B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236713A (zh) * | 2011-07-05 | 2011-11-09 | 广东星海数字家庭产业技术研究院有限公司 | 一种数字电视交互服务页面的信息提取方法及其装置 |
CN103544213A (zh) * | 2013-09-16 | 2014-01-29 | 青岛英网资讯股份有限公司 | 网站内容更新检测评价方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107562600A (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562600B (zh) | 页面检测方法、装置、计算设备以及存储介质 | |
CN107729475B (zh) | 网页元素采集方法、装置、终端与计算机可读存储介质 | |
US9348736B2 (en) | System, method, and computer readable medium for universal software testing | |
CN106294658B (zh) | 网页快速展示方法和装置 | |
CN111639287A (zh) | 一种页面处理方法、装置、终端设备及可读存储介质 | |
US20150227276A1 (en) | Method and system for providing an interactive user guide on a webpage | |
CN103605502B (zh) | 表单页面显示方法及服务器 | |
CN104956362A (zh) | 分析web应用程序的结构 | |
US7720814B2 (en) | Repopulating a database with document content | |
CN105868096A (zh) | 用于在浏览器中显示web页面测试结果的方法、装置及设备 | |
US20210103515A1 (en) | Method of detecting user interface layout issues for web applications | |
CN113138757B (zh) | 前端代码自动生成方法、装置、服务器、系统及介质 | |
JP2004362000A (ja) | ウェブアプリケーション開発支援装置、コンポーネント呼び出し監視装置、データ処理方法及びプログラム | |
CN110569371A (zh) | 一种知识图谱构建方法、装置及存储设备 | |
CN113032244A (zh) | 接口测试方法、装置、计算机系统和计算机可读存储介质 | |
CN108241689A (zh) | 页面资源获取方法、装置和客户端设备 | |
CN105824647A (zh) | 一种表单页面生成方法和装置 | |
CN111652658A (zh) | 画像融合方法、装置、电子设备及计算机可读存储介质 | |
CN107451163B (zh) | 一种动画显示方法和装置 | |
CN111159045A (zh) | 一种兼容性问题检测方法、装置及存储介质 | |
CN108809896A (zh) | 一种信息校验方法、装置和电子设备 | |
CN114021042A (zh) | 网页内容的提取方法、装置、计算机设备和存储介质 | |
CN113901169A (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN106156291A (zh) | 基于Localstroage的静态资源的缓存方法及其系统 | |
US8751508B1 (en) | Contextual indexing of applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200710 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 510627 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping radio square B tower 13 floor 03 unit self Applicant before: GUANGZHOU ALIBABA LITERATURE INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |