CN106371987A - 测试方法和装置 - Google Patents
测试方法和装置 Download PDFInfo
- Publication number
- CN106371987A CN106371987A CN201510441344.0A CN201510441344A CN106371987A CN 106371987 A CN106371987 A CN 106371987A CN 201510441344 A CN201510441344 A CN 201510441344A CN 106371987 A CN106371987 A CN 106371987A
- Authority
- CN
- China
- Prior art keywords
- url
- target url
- server
- analysis result
- web data
- 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.)
- Pending
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种测试方法和装置,其中的方法具体包括:模拟浏览器获取待测试统一资源定位符URL的网页数据;解析所述网页数据,得到相应的解析结果;从所述解析结果中提取对应的目标URL;模拟浏览器向服务器发送所述目标URL对应的访问请求,并根据所述服务器的响应码确定所述目标URL的连通性。本发明实施例能够降低测试时间、以及能够提高测试效率。
Description
技术领域
本发明涉及测试技术领域,特别是涉及一种测试方法和一种测试装置。
背景技术
随着互联网技术的飞速发展,人们的生活与互联网的关系日益紧密,人们对网页的要求越来越高,例如网页的排版、网页内容的实时更新等等,因此需要开发者及时地更新网页。在网站更新网页之后,为了保证网页的质量,需要对网页中URL(统一资源定位符,Uniform Resource Locator)的连通性进行测试。
现有的测试方法可通过浏览器加载并渲染网页数据,并将网页数据的渲染结果绘制在屏幕上,以实现对屏幕上显示内容中URL的测试。然而,在网站包含URL的数目较多时,上述测试方法具有测试时间长、测试效率低等缺点。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的测试方法和相应的测试装置。
依据本发明的一个方面,提供了一种测试方法,包括:
模拟浏览器获取待测试统一资源定位符URL的网页数据;
解析所述网页数据,得到相应的解析结果;
从所述解析结果中提取对应的目标URL;
模拟浏览器向服务器发送所述目标URL对应的访问请求,并根据所述服务器的响应码确定所述目标URL的连通性。
可选地,所述解析所述网页数据,得到相应的解析结果的步骤,包括:
利用开源的网页解析方法解析所述网页数据,得到相应的解析结果。
可选地,所述利用开源的网页解析方法解析所述网页数据,得到相应的解析结果的步骤,包括:利用开源的网页解析方法解析所述网页数据,得到对应的文件对象模型DOM树;
所述从所述解析结果中提取对应的目标URL的步骤,包括:遍历所述DOM树以获取所述DOM树中包含的静态URL和动态URL。
可选地,所述遍历所述DOM树以获取所述网页中包含的静态URL和动态URL的步骤包括:
依据所述DOM树上的标签的属性获取所述静态URL;
通过触发所述DOM树上的标签的事件并执行与所述事件绑定的事件处理代码,以挂钩方式截获作为执行所述事件处理代码的结果所访问的网页的动态URL。
可选地,所述根据所述服务器的响应码确定所述目标URL的连通性的步骤,包括:
在所述服务器的响应码为预置状态码时,确定所述目标URL的连通性为连通;
在所述服务器的响应码不为预置状态码时,确定所述目标URL的连通性为不连通。
可选地,所述方法还包括:
在所述目标URL的连通性为连通时,判断所述目标URL是否为所述待测试URL对应主域名相关联的子域名;
在所述目标URL为所述待测试URL对应主域名相关联的子域名时,将所述目标URL作为待测试URL,并执行所述获取待测试URL的网页数据的步骤。
可选地,所述方法还包括:
显示所述目标URL的连通性。
根据本发明的另一方面,提供了一种测试装置,包括:
获取模块,用于模拟浏览器获取待测试统一资源定位符URL的网页数据;
解析模块,用于解析所述网页数据,得到相应的解析结果;
提取模块,用于从所述解析结果中提取对应的目标URL;及
确定模块,用于模拟浏览器向服务器发送所述目标URL对应的访问请求,并根据所述服务器的响应码确定所述目标URL的连通性。
可选地,所述解析模块,具体用于利用开源的网页解析方法解析所述网页数据,得到相应的解析结果。
可选地,所述解析模块,包括:DOM解析子模块,用于利用开源的网页解析方法解析所述网页数据,得到对应的文件对象模型DOM树;
所述提取模块,包括:遍历子模块,用于遍历所述DOM树以获取所述DOM树中包含的静态URL和动态URL。
可选地,所述遍历子模块,包括:
静态获取单元,用于依据所述DOM树上的标签的属性获取所述静态URL;
动态获取单元,用于通过触发所述DOM树上的标签的事件并执行与所述事件绑定的事件处理代码,以挂钩方式截获作为执行所述事件处理代码的结果所访问的网页的动态URL。
可选地,所述确定模块,包括:
第一确定子模块,用于在所述服务器的响应码为预置状态码时,确定所述目标URL的连通性为连通;
第二确定子模块,用于在所述服务器的响应码不为预置状态码时,确定所述目标URL的连通性为不连通。
可选地,所述装置还包括:
判断模块,用于在所述目标URL的连通性为连通时,判断所述目标URL是否为所述待测试URL对应主域名相关联的子域名;
输入模块,用于在所述目标URL为所述待测试URL对应主域名相关联的子域名时,将所述目标URL作为待测试URL输入所述获取模块。
可选地,所述装置还包括:
显示模块,用于显示所述目标URL的连通性。
根据本发明的一种测试方法和装置,可以不通过浏览器测试URL的连通性,具体地,可以模拟浏览器获取待测试URL的网页数据,解析该网页数据和从解析结果中提取目标URL,进而模拟浏览器向服务器发送所述目标URL对应的访问请求,并根据所述服务器的响应码确定所述目标URL的连通性;相对于现有方案,由于本发明实施例可以不渲染和不显示URL的网页数据,因此,能够节省在渲染和显示方面所花费的运算量,从而能够降低测试时间、以及能够提高测试效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种测试方法实施例的步骤流程图;
图2示出了根据本发明一个实施例的一种测试方法实施例的步骤流程图;
图3示出了根据本发明一个实施例的一种测试装置实施例的结构框图;以及
图4示出了根据本发明一个实施例的一种测试装置实施例的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本发明一个实施例的一种测试方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101、模拟浏览器获取待测试URL的网页数据;
本发明实施例可以应用于各种网站的测试流程中,用于测试网站的各网页中URL的连通性。
现有方案通过浏览器测试URL的连通性,通常浏览器加载并渲染网页数据的流程是一体和紧凑的流程,这个一体和紧凑的流程具体可以包括:浏览器通过服务器获取待测试URL的网页数据,加载并渲染该网页数据,并将网页数据的渲染结果绘制在屏幕上,以实现对屏幕上显示内容中URL的测试。
为了提高测试效率,本发明实施例可以不通过浏览器测试URL的连通性,具体地,可以模拟浏览器获取待测试URL的网页数据,解析该网页数据和从解析结果中提取目标URL,进而模拟浏览器向服务器发送所述目标URL对应的访问请求,并根据所述服务器的响应码确定所述目标URL的连通性;相对于现有方案,由于本发明实施例可以不渲染和不显示URL的网页数据,因此,能够节省在渲染和显示方面所花费的运算量,从而能够降低测试时间、以及能够提高测试效率。
在本发明的一种应用示例中,上述待测试URL可以为网站的主域名对应的URL,如http://hao.360.cn/;上述待测试URL还可以为上述主域名相关联的子域名对应的URL,其中,上述子域名可以为一级域名、二级域名等;本发明实施例对于具体的待测试URL不加以限制。
在本发明的一种实施例中,上述模拟浏览器获取待测试URL的网页数据的步骤具体可以包括:模拟浏览器基于预定的通信协议(例如HTTP(超文本传送协议,Hypertext transfer protocol))向服务器发出所述待测试URL所对应网页的访问请求,其中所述访问请求中可以包含所述待测试URL,以使所述服务器针对上述访问请求做出响应,所述响应的内容具体可以包括:响应码、响应头、以及所述待测试URL所对应网页的源代码文件;这里的源代码文件可以作为上述网页数据。
在本发明的一种应用示例中,可以通过webBrowser1.Navigate(URL)向服务器发送访问请求,以将指定的URL所指示的位置上的文档加载到WebBrowser控件中,并从WebBrowser空间获取该URL对应的网页数据。
在本发明的另一种应用示例中,可以通过HttpWebRequest hwr=WebRequest.Create(URL)向服务器发送访问请求,以为指定的URL初始化新的WebRequest实例,并依据该新的WebRequest实例获取该URL对应的网页数据。可以理解,本发明实施例对于模拟浏览器获取待测试URL的网页数据的具体过程不加以限制。
在实际应用中,响应码是指由三位十进制数字组成、出现在由服务器发送的响应的第一行的状态码。响应头允许服务器传递不能放在状态行的附加信息,主要用来描述服务器的信息和Request-URI进一步的信息。
本领域技术人员可以理解的是,当发出的访问请求没有被服务器接成功接收、理解、并接受时,服务器可以仅仅返回响应码和响应头,而不会返回请求访问的URL所对应网页的源代码文件。
例如,当上述待测试URL为错误的URL时,服务器可以返回响应码“404”,表明请求失败,请求所希望得到的资源未在服务器上发现。此时,Web服务器可以不将请求访问的URL所对应网页的源代码文件发送到浏览器内核。
又如,当被请求的资源已永久移动到新位置时,服务器可以返回响应码“301”,并在响应头“Location”中指明新的URL地址。例如,响应头Location:www.baidu.com,其含义为该网页需要跳转到www.baidu.com,需要跟随跳转才能得到真正的页面。
步骤102、利用开源的网页解析方法解析所述网页数据,得到相应的解析结果;
步骤103、从所述解析结果中提取对应的目标URL;
在本发明的一种可选实施例中,所述解析所述网页数据,得到相应的解析结果的步骤,具体可以包括:利用开源的网页解析方法解析所述网页数据,得到相应的解析结果。其中,上述开源的网页解析方法可以与浏览器所使用网页解析方法相同或者不同,本发明实施例对于具体的开源的网页解析方法不加以限制。
在实际应用中,上述开源的网页解析方法可以解析一个文档,将其转换成具有一定意义的结构;解析结果通常是表达文档结构的节点树,该节点树可称为解析树或语法树。
在本发明的一种应用示例中,上述利用开源的网页解析方法解析所述网页数据,得到相应的解析结果具体可以包括:词法分析和语法分析;
其中,上述词法分析具体可以包括:将输入内容分割成大量标记,例如,常用的HTML标记具体可以包括:<html>、<body>、<div>等。
上述语法分析具体可以包括:根据语法规则分析文档的结构,构建解析树。常见的HTML语法规则具体可以包括:图片、表格、链接等,这些语法规则可用来表示比“文本”更丰富的意义。
在本发明的另一种可选实施例中,上述利用开源的网页解析方法解析所述网页数据,得到相应的解析结果的步骤,具体可以包括:
步骤S11、利用开源的网页解析方法解析所述网页数据,得到对应的文件对象模型DOM树;
网页的源代码文件等网页数据通常采用标记语言描述,其中HTML(超文本标记语言,Hypertext Markup Language)语言是一种典型的标记语言。HTML文档可由若干个标签组成,HTML文档中的每个元素、属性、文本等由DOM(Document Object Model,文档对象模型)树中的一个节点来表示。DOM树起始于文档节点,并由此继续伸出枝条,直到处于这棵树最低级别的所有文本节点为止。故在本发明的一种应用示例中,可以解析HTML文档并把其中的标签转换成DOM树中的DOM节点。
则所述从所述解析结果中提取对应的目标URL的步骤,具体可以包括:
步骤S21、遍历所述DOM树以获取所述DOM树中包含的静态URL和动态URL。
根据网页中是否含有浏览器端执行的脚本,可以将网页分为动态页面和静态页面。静态页面中的URL直接以超文本标记语言(HTML)超链接的方式嵌在HTML文档中,一般将这种URL称为静态URL,而动态页面中除了静态URL,还含有大量必须通过执行浏览器端脚本才能得到的动态URL。目前常用的浏览器端脚本语言是JavaScript语言。
在本发明的一种可选实施例中,所述遍历所述DOM树以获取所述网页中包含的静态URL和动态URL的步骤,具体可以包括:
步骤S211、依据所述DOM树上的标签的属性获取所述静态URL;
在具体实现中,可以从所述DOM树上的标签的属性获取所述网页中包含的静态URL。例如,DOM树上A标签(节点)的href属性用于放置超链接的目标地址,遍历DOM树时若发现A标签,则可从其href属性的值获取网页中包含的静态URL。
步骤S212、通过触发所述DOM树上的标签的事件并执行与所述事件绑定的事件处理代码,以挂钩方式截获作为执行所述事件处理代码的结果所访问的网页的动态URL。
步骤S212通过触发所生成的DOM树上的标签的事件并执行与所述事件绑定的事件处理代码,从而可以HOOK(挂钩)方式截获作为执行所述事件处理代码的结果所访问的网页的动态URL。具体地,当访问模块发起URL访问请求时,可以使用该访问模块提供的API(应用程序编程接口,Application Program Interface)函数截获该请求,从而获取模拟的浏览器内核发起的URL访问请求信息;其中,该访问模块可用于表示当触发所述DOM树上的标签的事件时,向服务器发送访问请求的模块,其可以位于浏览器,或者不位于浏览器,本发明实施例对于具体的访问模块不加以限制。
可以理解,当用户在网页上执行操作时会触发某个事件,例如常见的鼠标点击事件OnClick。当用户点击网页的元素时会触发OnClick事件,一旦触发了OnClick事件,与该事件绑定的JavaScript函数就会被调用。而在没有用户参与的情况下,需要触发OnClick事件以调用其对应的JavaScript函数时,此种情况下可以基于模拟事件通过HOOK方式把该事件劫持住,并直接调用该事件进行触发。
以上对解析所述网页数据、及从所述解析结果中提取对应的目标URL的过程进行了详细介绍,可以理解,本领域技术人员可以采用其它的解析所述网页数据、及从所述解析结果中提取对应的目标URL的过程,例如,可以采用其它的HTML解析方法对HTML文档进行解析等。
步骤104、模拟浏览器向服务器发送所述目标URL对应的访问请求,并根据所述服务器的响应码确定所述目标URL的连通性。
在实际应用中,可以模拟浏览器基于HTTP协议向服务器发出所述目标URL所对应的访问请求,其中所述访问请求中可以包含所述目标URL,以使所述服务器针对上述访问请求做出响应,所述响应的内容具体可以包括:响应码。
在本发明的一种可选实施例中,所述根据所述服务器的响应码确定所述目标URL的连通性的步骤,具体可以包括:
在所述服务器的响应码为预置状态码时,确定所述目标URL的连通性为连通;
在所述服务器的响应码不为预置状态码时,确定所述目标URL的连通性为不连通。
以HTTP协议为例,上述预置状态码可以为200,在所述服务器的响应码为除了200外的响应码时,可以确定所述目标URL的连通性为不连通。
在本发明的一种应用示例中,假设待测试URL的网页上4个目标URL,分别为Link1、Link2、Link3和Link4,假设Link1和Link3对应的响应码均为404,Link2和link4对应的响应码均为200,则Link1和Link3是不连通的,Link2和link4是连通的有效链接。
在本发明的另一种可选实施例中,上述方法还可以包括:显示所述目标URL的连通性。上述目标URL的连通性的显示可向用户提供当前待测试URL的测试结果,其中,在上述目标URL的连通性为不连通时,可使得开发人员对当前待测试URL对应网页进行修改和改进,从而可以提高网站和网页的质量。
综上,本发明实施例解析待测试URL的网页数据,得到相应的解析结果,并从所述解析结果中提取对应的目标URL,进而依据所述目标URL向服务器发送请求,并根据所述服务器的响应码确定所述目标URL的连通性;相对于现有方案通过浏览器测试URL的连通性,由于本发明实施例可以解析网页数据和从解析结果中提取目标URL,而可以不渲染和不显示URL的网页数据,因此,相对于现有方案,本发明实施例能够节省在渲染和显示方面所花费的运算量,从而能够降低测试时间、以及能够提高测试效率。
参照图2,示出了根据本发明一个实施例的一种测试方法实施例的步骤流程图,具体可以包括如下步骤:
步骤201、模拟浏览器获取待测试URL的网页数据;
步骤202、解析所述网页数据,得到相应的解析结果;
步骤203、从所述解析结果中提取对应的目标URL;
步骤204、模拟浏览器向服务器发送所述目标URL对应的访问请求,并根据所述服务器的响应码确定所述目标URL的连通性;
步骤205、在所述目标URL的连通性为连通时,判断所述目标URL是否为所述待测试URL对应主域名相关联的子域名;
步骤206、在所述目标URL为所述待测试URL对应主域名相关联的子域名时,将所述目标URL作为待测试URL,并重新执行所述获取待测试URL的网页数据的步骤201。
相对于图1所示实施例,本实施例还可以在所述目标URL的连通性为连通时,判断所述目标URL是否为所述待测试URL对应主域名相关联的子域名,并在所述目标URL为所述待测试URL对应主域名相关联的子域名时,将所述目标URL作为待测试URL,并执行所述获取待测试URL的网页数据的步骤201。
假设初始的待测试URL为网站的主域名,则可以获取该主域名对应网页中的一级域名URL,确定所有一级域名URL的连通性;并且,还可以将连通的一级域名URL作为待测试URL进行测试,获取该一级域名URL对应网页中的二级域名URL,确定所有二级域名URL的连通性;并且,还可以将连通的二级域名URL作为待测试URL进行测试,获取该二级域名URL对应网页中的三级域名URL,确定所有三级域名URL的连通性。以此类推,本发明实施例可以实现通过循环测试实现整个网站的连通性测试。
在本发明的一种实施例中,可以预先存储主域名URL与各级域名URL的映射关系,这样,判断所述目标URL是否为所述待测试URL对应主域名相关联的子域名的具体过程可以为:分别依据主域名URL与各级域名URL的映射关系,查找得到所述目标URL对应的第一主域名URL、及所属待测试URL对应的第二主域名URL,若第一主域名URL与第二主域名相同,则所述目标URL为所述待测试URL对应主域名相关联的子域名。当然,上述只是作为示例,本发明实施例对于判断所述目标URL是否为所述待测试URL对应主域名相关联的子域名的具体过程不加以限制。
可以理解,在所述目标URL不为所述待测试URL对应主域名相关联的子域名时,可以不将所述目标URL作为待测试URL。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了根据本发明一个实施例的一种测试装置实施例的结构框图,具体可以包括如下模块:
获取模块301,用于模拟浏览器获取待测试统一资源定位符URL的网页数据;
解析模块302,用于解析所述网页数据,得到相应的解析结果;
提取模块303,用于从所述解析结果中提取对应的目标URL;及
确定模块304,用于模拟浏览器向服务器发送所述目标URL对应的访问请求,并根据所述服务器的响应码确定所述目标URL的连通性。
在本发明的一种可选实施例中,所述解析模块302,可具体用于利用开源的网页解析方法解析所述网页数据,得到相应的解析结果。
在本发明的一种可选实施例中,所述解析模块302,具体可以包括:DOM解析子模块,用于利用开源的网页解析方法解析所述网页数据,得到对应的文件对象模型DOM树;
所述提取模块303,具体可以包括:遍历子模块,用于遍历所述DOM树以获取所述DOM树中包含的静态URL和动态URL。
在本发明的另一种可选实施例中,所述遍历子模块,具体可以包括:
静态获取单元,用于依据所述DOM树上的标签的属性获取所述静态URL;
动态获取单元,用于通过触发所述DOM树上的标签的事件并执行与所述事件绑定的事件处理代码,以挂钩方式截获作为执行所述事件处理代码的结果所访问的网页的动态URL。
在本发明的再一种可选实施例中,所述确定模块304,具体可以包括:
第一确定子模块,用于在所述服务器的响应码为预置状态码时,确定所述目标URL的连通性为连通;
第二确定子模块,用于在所述服务器的响应码不为预置状态码时,确定所述目标URL的连通性为不连通。
在本发明的又一种可选实施例中,所述装置还可以包括:
显示模块,用于显示所述目标URL的连通性。
参照图4,示出了根据本发明一个实施例的一种测试装置实施例的结构框图,具体可以包括如下模块:
获取模块401,用于模拟浏览器获取待测试统一资源定位符URL的网页数据;
解析模块402,用于解析所述网页数据,得到相应的解析结果;
提取模块403,用于从所述解析结果中提取对应的目标URL;
确定模块404,用于模拟浏览器向服务器发送所述目标URL对应的访问请求,并根据所述服务器的响应码确定所述目标URL的连通性;
判断模块405,用于在所述目标URL的连通性为连通时,判断所述目标URL是否为所述待测试URL对应主域名相关联的子域名;
输入模块406,用于在所述目标URL为所述待测试URL对应主域名相关联的子域名时,将所述目标URL作为待测试URL输入所述获取模块。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的测试方法和装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种测试方法,包括:
模拟浏览器获取待测试统一资源定位符URL的网页数据;
解析所述网页数据,得到相应的解析结果;
从所述解析结果中提取对应的目标URL;
模拟浏览器向服务器发送所述目标URL对应的访问请求,并根据所述服务器的响应码确定所述目标URL的连通性。
A2、如A1所述的方法,所述解析所述网页数据,得到相应的解析结果的步骤,包括:
利用开源的网页解析方法解析所述网页数据,得到相应的解析结果。
A3、如A2所述的方法,所述利用开源的网页解析方法解析所述网页数据,得到相应的解析结果的步骤,包括:利用开源的网页解析方法解析所述网页数据,得到对应的文件对象模型DOM树;
所述从所述解析结果中提取对应的目标URL的步骤,包括:遍历所述DOM树以获取所述DOM树中包含的静态URL和动态URL。
A4、如A3所述的方法,所述遍历所述DOM树以获取所述网页中包含的静态URL和动态URL的步骤包括:
依据所述DOM树上的标签的属性获取所述静态URL;
通过触发所述DOM树上的标签的事件并执行与所述事件绑定的事件处理代码,以挂钩方式截获作为执行所述事件处理代码的结果所访问的网页的动态URL。
A5、如A1所述的方法,所述根据所述服务器的响应码确定所述目标URL的连通性的步骤,包括:
在所述服务器的响应码为预置状态码时,确定所述目标URL的连通性为连通;
在所述服务器的响应码不为预置状态码时,确定所述目标URL的连通性为不连通。
A6、如A1所述的方法,所述方法还包括:
在所述目标URL的连通性为连通时,判断所述目标URL是否为所述待测试URL对应主域名相关联的子域名;
在所述目标URL为所述待测试URL对应主域名相关联的子域名时,将所述目标URL作为待测试URL,并执行所述获取待测试URL的网页数据的步骤。
A7、如A1至A6中任一所述的方法,所述方法还包括:
显示所述目标URL的连通性。
本发明还公开了B8、一种测试装置,包括:
获取模块,用于模拟浏览器获取待测试统一资源定位符URL的网页数据;
解析模块,用于解析所述网页数据,得到相应的解析结果;
提取模块,用于从所述解析结果中提取对应的目标URL;及
确定模块,用于模拟浏览器向服务器发送所述目标URL对应的访问请求,并根据所述服务器的响应码确定所述目标URL的连通性。
B9、如B8所述的装置,所述解析模块,具体用于利用开源的网页解析方法解析所述网页数据,得到相应的解析结果。
B10、如B9所述的装置,所述解析模块,包括:DOM解析子模块,用于利用开源的网页解析方法解析所述网页数据,得到对应的文件对象模型DOM树;
所述提取模块,包括:遍历子模块,用于遍历所述DOM树以获取所述DOM树中包含的静态URL和动态URL。
B11、如B10所述的装置,所述遍历子模块,包括:
静态获取单元,用于依据所述DOM树上的标签的属性获取所述静态URL;
动态获取单元,用于通过触发所述DOM树上的标签的事件并执行与所述事件绑定的事件处理代码,以挂钩方式截获作为执行所述事件处理代码的结果所访问的网页的动态URL。
B12、如B8所述的装置,所述确定模块,包括:
第一确定子模块,用于在所述服务器的响应码为预置状态码时,确定所述目标URL的连通性为连通;
第二确定子模块,用于在所述服务器的响应码不为预置状态码时,确定所述目标URL的连通性为不连通。
B13、如B8所述的装置,所述装置还包括:
判断模块,用于在所述目标URL的连通性为连通时,判断所述目标URL是否为所述待测试URL对应主域名相关联的子域名;
输入模块,用于在所述目标URL为所述待测试URL对应主域名相关联的子域名时,将所述目标URL作为待测试URL输入所述获取模块。
B14、如B8至B13中任一所述的装置,所述装置还包括:
显示模块,用于显示所述目标URL的连通性。
Claims (10)
1.一种测试方法,包括:
模拟浏览器获取待测试统一资源定位符URL的网页数据;
解析所述网页数据,得到相应的解析结果;
从所述解析结果中提取对应的目标URL;
模拟浏览器向服务器发送所述目标URL对应的访问请求,并根据所述服务器的响应码确定所述目标URL的连通性。
2.如权利要求1所述的方法,其特征在于,所述解析所述网页数据,得到相应的解析结果的步骤,包括:
利用开源的网页解析方法解析所述网页数据,得到相应的解析结果。
3.如权利要求2所述的方法,其特征在于,所述利用开源的网页解析方法解析所述网页数据,得到相应的解析结果的步骤,包括:利用开源的网页解析方法解析所述网页数据,得到对应的文件对象模型DOM树;
所述从所述解析结果中提取对应的目标URL的步骤,包括:遍历所述DOM树以获取所述DOM树中包含的静态URL和动态URL。
4.如权利要求3所述的方法,其特征在于,所述遍历所述DOM树以获取所述网页中包含的静态URL和动态URL的步骤包括:
依据所述DOM树上的标签的属性获取所述静态URL;
通过触发所述DOM树上的标签的事件并执行与所述事件绑定的事件处理代码,以挂钩方式截获作为执行所述事件处理代码的结果所访问的网页的动态URL。
5.如权利要求1所述的方法,其特征在于,所述根据所述服务器的响应码确定所述目标URL的连通性的步骤,包括:
在所述服务器的响应码为预置状态码时,确定所述目标URL的连通性为连通;
在所述服务器的响应码不为预置状态码时,确定所述目标URL的连通性为不连通。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标URL的连通性为连通时,判断所述目标URL是否为所述待测试URL对应主域名相关联的子域名;
在所述目标URL为所述待测试URL对应主域名相关联的子域名时,将所述目标URL作为待测试URL,并执行所述获取待测试URL的网页数据的步骤。
7.如权利要求1至6中任一所述的方法,其特征在于,所述方法还包括:
显示所述目标URL的连通性。
8.一种测试装置,包括:
获取模块,用于模拟浏览器获取待测试统一资源定位符URL的网页数据;
解析模块,用于解析所述网页数据,得到相应的解析结果;
提取模块,用于从所述解析结果中提取对应的目标URL;及
确定模块,用于模拟浏览器向服务器发送所述目标URL对应的访问请求,并根据所述服务器的响应码确定所述目标URL的连通性。
9.如权利要求8所述的装置,其特征在于,所述解析模块,具体用于利用开源的网页解析方法解析所述网页数据,得到相应的解析结果。
10.如权利要求9所述的装置,其特征在于,所述解析模块,包括:DOM解析子模块,用于利用开源的网页解析方法解析所述网页数据,得到对应的文件对象模型DOM树;
所述提取模块,包括:遍历子模块,用于遍历所述DOM树以获取所述DOM树中包含的静态URL和动态URL。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510441344.0A CN106371987A (zh) | 2015-07-24 | 2015-07-24 | 测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510441344.0A CN106371987A (zh) | 2015-07-24 | 2015-07-24 | 测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106371987A true CN106371987A (zh) | 2017-02-01 |
Family
ID=57881003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510441344.0A Pending CN106371987A (zh) | 2015-07-24 | 2015-07-24 | 测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106371987A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861875A (zh) * | 2017-11-15 | 2018-03-30 | 北京中电普华信息技术有限公司 | 一种混合移动应用的模拟方法及系统 |
CN109067853A (zh) * | 2018-07-16 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种Web动态网页源码自动化尝试获取方法 |
CN111130993A (zh) * | 2019-11-22 | 2020-05-08 | 北京知道创宇信息技术股份有限公司 | 一种信息提取的方法及装置、可读存储介质 |
CN111708963A (zh) * | 2020-05-22 | 2020-09-25 | 北京百度网讯科技有限公司 | 页面请求的处理方法、装置、电子设备和存储介质 |
CN112052163A (zh) * | 2020-08-19 | 2020-12-08 | 北京天融信网络安全技术有限公司 | 高并发网页压力测试方法、装置、电子设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089856A (zh) * | 2007-07-20 | 2007-12-19 | 李沫南 | 一种提取网页数据的方法和Web爬虫系统 |
US20080154949A1 (en) * | 2006-12-26 | 2008-06-26 | Brooks David A | Method and system for social bookmarking of resources exposed in web pages that don't follow the representational state transfer architectural style (rest) |
CN103577427A (zh) * | 2012-07-25 | 2014-02-12 | 中国移动通信集团公司 | 基于浏览器内核的网页爬取方法、装置及包含该装置的浏览器 |
CN104182412A (zh) * | 2013-05-24 | 2014-12-03 | 中国移动通信集团安徽有限公司 | 一种网页爬取方法及系统 |
CN104239206A (zh) * | 2014-09-17 | 2014-12-24 | 可牛网络技术(北京)有限公司 | 网页测试方法和装置 |
-
2015
- 2015-07-24 CN CN201510441344.0A patent/CN106371987A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080154949A1 (en) * | 2006-12-26 | 2008-06-26 | Brooks David A | Method and system for social bookmarking of resources exposed in web pages that don't follow the representational state transfer architectural style (rest) |
CN101089856A (zh) * | 2007-07-20 | 2007-12-19 | 李沫南 | 一种提取网页数据的方法和Web爬虫系统 |
CN103577427A (zh) * | 2012-07-25 | 2014-02-12 | 中国移动通信集团公司 | 基于浏览器内核的网页爬取方法、装置及包含该装置的浏览器 |
CN104182412A (zh) * | 2013-05-24 | 2014-12-03 | 中国移动通信集团安徽有限公司 | 一种网页爬取方法及系统 |
CN104239206A (zh) * | 2014-09-17 | 2014-12-24 | 可牛网络技术(北京)有限公司 | 网页测试方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861875A (zh) * | 2017-11-15 | 2018-03-30 | 北京中电普华信息技术有限公司 | 一种混合移动应用的模拟方法及系统 |
CN109067853A (zh) * | 2018-07-16 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种Web动态网页源码自动化尝试获取方法 |
CN109067853B (zh) * | 2018-07-16 | 2021-07-30 | 郑州云海信息技术有限公司 | 一种Web动态网页源码自动化尝试获取方法 |
CN111130993A (zh) * | 2019-11-22 | 2020-05-08 | 北京知道创宇信息技术股份有限公司 | 一种信息提取的方法及装置、可读存储介质 |
CN111130993B (zh) * | 2019-11-22 | 2022-03-29 | 北京知道创宇信息技术股份有限公司 | 一种信息提取的方法及装置、可读存储介质 |
CN111708963A (zh) * | 2020-05-22 | 2020-09-25 | 北京百度网讯科技有限公司 | 页面请求的处理方法、装置、电子设备和存储介质 |
CN111708963B (zh) * | 2020-05-22 | 2023-09-29 | 北京百度网讯科技有限公司 | 页面请求的处理方法、装置、电子设备和存储介质 |
CN112052163A (zh) * | 2020-08-19 | 2020-12-08 | 北京天融信网络安全技术有限公司 | 高并发网页压力测试方法、装置、电子设备以及存储介质 |
CN112052163B (zh) * | 2020-08-19 | 2023-11-10 | 北京天融信网络安全技术有限公司 | 高并发网页压力测试方法、装置、电子设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9767082B2 (en) | Method and system of retrieving ajax web page content | |
US8683319B2 (en) | Shared script files in multi-tab browser | |
CN105335404B (zh) | 页面信息加载方法和装置 | |
US10534512B2 (en) | System and method for identifying web elements present on a web-page | |
US9471704B2 (en) | Shared script files in multi-tab browser | |
CN106371987A (zh) | 测试方法和装置 | |
CN105868096B (zh) | 用于在浏览器中显示web页面测试结果的方法、装置及设备 | |
WO2011035944A1 (en) | Managing application state information by means of a uniform resource identifier (uri) | |
US9182953B2 (en) | Hybrid dynamic code compiling device, method, and service system thereof | |
CN102693323B (zh) | 级联样式表解析方法及解析器、网页展示方法及服务器 | |
CN104881608A (zh) | 一种基于模拟浏览器行为的xss漏洞检测方法 | |
CN107015839B (zh) | 一种实现前端事件代理的方法及装置 | |
CN104168250B (zh) | 基于cgi框架的业务流程控制方法及装置 | |
CN104881607A (zh) | 一种基于模拟浏览器行为的xss漏洞检测系统 | |
US10169037B2 (en) | Identifying equivalent JavaScript events | |
CN108595468A (zh) | 一种网页数据的获取方法、装置、服务器、终端和系统 | |
CN103577427A (zh) | 基于浏览器内核的网页爬取方法、装置及包含该装置的浏览器 | |
CN105528369B (zh) | 网页转码方法、装置以及服务器 | |
Nederlof et al. | Software engineering for the web: the state of the practice | |
CN113032244A (zh) | 接口测试方法、装置、计算机系统和计算机可读存储介质 | |
CN105373533B (zh) | 一种页面链接地址的检测方法、客户端及装置 | |
CN103544271B (zh) | 一种浏览器中加载图片处理窗口的方法和装置 | |
CN114491560A (zh) | 一种漏洞检测方法、装置、存储介质及电子设备 | |
CN110321510A (zh) | 页面渲染方法和系统 | |
CN110719344B (zh) | 域名获取方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170201 |
|
RJ01 | Rejection of invention patent application after publication |