CN103825783A - 一种测试方法及装置 - Google Patents
一种测试方法及装置 Download PDFInfo
- Publication number
- CN103825783A CN103825783A CN201410086593.8A CN201410086593A CN103825783A CN 103825783 A CN103825783 A CN 103825783A CN 201410086593 A CN201410086593 A CN 201410086593A CN 103825783 A CN103825783 A CN 103825783A
- Authority
- CN
- China
- Prior art keywords
- time
- hook
- testing
- application layer
- tested process
- 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
Images
Abstract
本发明提供了一种测试方法,包括以下步骤:调用操作系统中的钩子安装程序安装应用层钩子;当被测进程向服务器发送请求时,利用应用层钩子拦截交互过程中的协议数据包;分析所述协议数据包并计算被测进程的性能结果。本发明还提供了一种测试装置。采用本发明的技术方案,通过修改应用层钩子模块,采用监控底层数据包的方式进行网页性能测试,直接对传输层数据包进行处理,避开了对HTML、JS、CSS等信息的解析时间消耗的复杂计算。
Description
技术领域
本发明涉及计算机测试技术领域,尤其涉及一种测试方法及装置。
背景技术
目前,对网页加载速度进行测试的方法,一般都是需要先安装浏览器插件,调用现有浏览器提供接口,实现对网页运行过程的监控,来获取网页性能。这样的方式就要求客户端必须有一个浏览器,且该款浏览器必须能够支持插件以及足够多的导出接口。除此之外,这种方式对于一些客户端软件并不适用,比如使用嵌套IE控件的客户端程序。
发明内容
本发明针对上述问题,提出了一种测试方法及装置,通过应用层钩子抓包机制抓取被测进程每个链接的底层数据包,直至不产生数据包为止,通过统计分析即可得到该被测进程的访问性能。
在一个方面,本发明提供了一种测试方法,包括以下步骤:
调用操作系统中的钩子安装程序安装应用层钩子;
当被测进程向服务器发送请求时,利用所述应用层钩子拦截所述被测进程与所述服务器交互过程中的协议数据包;
分析所述协议数据包,计算所述被测进程的性能结果。
利用底层网络隔离驱动对所有除被测进程之外的其他进程的数据包进行拦截,只允许被测进程连接网络。
所述底层网络隔离驱动为TCP/IP协议驱动。
所述协议为文件传输协议、电子邮件传输协议或超文本传输协议。
当所述被测进程为浏览器时,所述应用层钩子拦截所述浏览器发送的HTTP请求,所述HTTP请求中携带有HTTP数据包。
所述HTTP数据包内包括开始请求时间、访问的URL、第一个数据包到达时间、结束下载时间以及下载的字节数。
如果在一段时间内没有收到HTTP数据包且不存在未结束下载的URL,则计算网页打开的性能结果。
根据监控到的所有HTTP数据包计算网页属性的下载顺序、URL响应时间、URL下载时间、完全加载时间和/或下载总流量,作为所述网页打开的性能结果。
在另一个方面,本发明提供了一种测试装置,包括:
钩子设置模块,用于调用操作系统钩子安装程序设置应用层钩子;
数据抓取模块,用于当被测进程向服务器发起请求时,利用所述应用层钩子拦截所述被测进程与所述服务器交互过程中的协议数据包;
测试扩展模块,用于对所述协议数据包进行分析并计算所述被测进程的性能结果。
当被测进程为浏览器时,所述数据抓取模块具体用于利用应用层钩子拦截从请求开始到网页完全加载结束这一段时间内所有的协议数据包。
本发明所提供的技术方案通过设置应用层钩子,采用监控底层数据包的方式进行网页性能测试,对于页面加载结束的判断采用超时机制,利用应用层钩子直接对传输层数据包进行处理,使得性能测试更加方便简单。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1示出了本发明实施例网页测试方法的流程图;
图2示出了本发明实施例网页测试的逻辑架构图;
图3示出了本发明实施例网页测试装置的结构示意图。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。
本发明提供了一种测试方法及装置,主要用于测试网站、B/S结构的各类软件以及嵌套IE控件的客户端程序的页面完全加载性能。为避免受到其他因素的干扰,本发明利用底层网络隔离驱动来拦截系统中所有其他进程的数据包的网络访问,只允许被测进程连接网络。
本发明实施例提供了一种测试方法,主要技术方案如图1所示,具体说明如下:
S101、设置应用层钩子,通过系统调用将应用层钩子挂入系统。
Windows系统是基于消息、建立在事件驱动基础上的操作系统。钩子(Hook)是Microsoft Windows操作系统中一种重要的数据接口,是Windows系统消息处理机制中的一个监视点。它可以截获并处理给应用程序的消息,达到监视程序或完成其他普通程序难以完成的功能。钩子实际上是一个处理消息的程序段,通过系统调用把它挂入系统。为了得到浏览器的更多数据,程序员开始钩浏览器。钩子程序先拦截系统发送给浏览器的消息,然后分析消息内容,根据不同消息内容作出修改后再发给浏览器,这样就完成了一次Hook篡改过程。Hook机制允许应用程序截获消息并进行处理,为实现进程的控制提供了条件。
本发明实施例通过对操作系统设置应用层钩子来监控被测进程的运行,也即加载设置一个应用层钩子程序,调用操作系统中钩子安装程序安装应用层钩子。
一般来说,要拦截Windows下的网络数据包可以在两个层面进行:用户态(user-mode)和内核态(kernel-mode),如图2所示。当应用程序要发送或接收网络数据包的时候,都是通过与协议驱动所提供的接口来进行的。其中,协议驱动包括TCP/IP协议驱动。
Internet的基本协议是TCP/IP协议,而在TCP/IP模型最上层的是应用层(Application Layer),它包含所有高层的协议,比如文件传输协议(FTP,FileTransfer Protocol)、电子邮件传输协议和超文本传输协议(HTTP,HypertextTransfer Protocol)等等。其中,TCP/IP协议为Transmission ControlProtocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。
为了最大限度的减少机器上其他进程的网络访问对被测进程的数据的影响,本发明实施例所提供的测试方法还包括:利用底层网络隔离驱动监控TCP/IP接口,对所有其他进程的数据包进行拦截,只允许被测进程连接网络。
S102、本发明实施例通过应用层钩子抓包机制抓取被测进程每一个链接的底层数据包,监控该被测进程的所有协议数据包。其中,被测进程可以是系统中的应用程序,比如手机助手、浏览器等。
当被测进程向服务器发起请求时,应用层钩子将会拦截被测进程发送的协议请求,该请求中携带有协议数据包。下面分别以浏览器和手机助手类软件进行详细说明:
如果被测进程为浏览器,当利用浏览器打开被测网页时,应用层钩子将拦截浏览器向浏览器服务器发送的超文本传输协议(HTTP,Hyper Text TransferProtocol)请求,请求中携带有HTTP数据包。
其中,HTTP协议是用于从服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证了计算机正确快速地传输超文本文档,还确定传输文档中哪一部分以及哪部分内容首先显示(比如文本先于图形显示)等等。HTTP协议是基于请求/响应模式的,当客户端与服务器建立连接以后,客户端会发送一个请求给服务器。服务器接收到请求后会给予相应的响应信息。在这一过程中,在网络上发送和接收的数据已经被分成一个或多个数据包(packet)。
其中,本发明实施例将HTTP消息分为以下三类:
第一类:开始请求时间、访问的URL;
第二类:第一个数据包到达时间、访问的URL;
第三类:结束下载时间、下载的字节数、访问的URL。
如果被测进程是手机助手类的软件,当手机助手类的软件页面打开时,应用层钩子拦截交互过程的协议数据包。其中,本发明实施例对于手机助手类的软件截获的消息包括:数据量的下载大小、连接错误数、域名系统(DNS,DomainName Systerm)的查询时间、加载完成时间等等。
S103、对于不同的被测进程(或称被测应用程序)可以预先设置不同的测试方案,进行参数设置,根据预先设置的测试方案对被测进程的访问性能进行计算。对于不同类型的应用程序,本发明实施例根据关注点不同自动配置参数,当然也可以对所有参数进行全配置。
依然以上述浏览器和手机助手类的软件进行举例如下:
对于浏览器,进行参数设置时主要关心的是实时的浏览体验。因此,本发明实施例关注访问请求到服务器侧建立连接的时间、请求第一次返回的时间、请求完成的时间等等,以便根据这些属性来改善用户体验。如果连续10秒内均没有收到监控到的HTTP信息并且不存在未结束下载的URL时,判断为网页打开操作结束,进一步计算网页性能结果。
具体地,所要计算的网页性能结果可以参考如下属性:
1)URL下载顺序,主要为网页各属性的下载顺序,如图片、文字等的下载顺序。
2)各URL响应时间(包含DNS解析时间),URL响应时间=第一个数据包到达时间-开始请求时间。
3)各URL下载时间,URL下载时间=结束下载时间-开始请求时间。
4)完全加载时间,完全加载时间=最后一个URL结束下载时间-开始打开请求时间。
5)下载总流量,其中,下载总流量=各URL下载的字节数之和。
当然,本领域技术人员还可以参考其他属性来计算网页性能结果,本发明对此不作限制。
而对于手机助手类的软件,在进行参数配置时由于这类软件大多是异步的网络连接,主要关心的是数据量的下载大小、连接错误数、DNS的查询时间等,还要关注流量和加载完成的时间等属性信息。
本发明所提供的技术方案不仅适用于Windows系统,也适用于Linux系统、Android系统等。
基于同一发明构思,本发明实施例还提供了一种测试装置,如图3所示,包括:
钩子设置模块201,用于对操作系统设置应用层钩子;也即,在操作系统中设置一个应用层钩子程序,调用钩子安装程序安装该应用层钩子。
本发明实施例所提供的测试装置还包括:网络隔离模块204,用于利用底层网络隔离驱动监控TCP/IP接口对除被测进程之外的其他进程的数据包进行拦截,只允许被测进程连接网络。
数据抓取模块202,用于当被测进程发起请求后利用上述应用层钩子的抓包机制对被测进程每一个链接的底层数据包进行抓取,监控该被测进程所有的HTTP数据包。
测试扩展模块203,用于对不同的被测进程预先设置不同的测试方案,根据所截获的协议数据包计算被测进程的性能。
数据抓取模块202具体用于拦截从请求开始到网页完全加载结束这一时间段内所有底层数据包,测试扩展模块203具体用于判断页面是否完全加载,当网页完全加载结束时,计算从请求开始到网页完全加载结束这一过程中所有数据包的页面访问性能。
本发明所提供的技术方案通过设置安装应用层钩子,采用监控底层数据包的方式进行网页性能测试,直接对传输层数据包进行处理,避开了对超文本标记语言HTML、Javascript脚本、级联样式表CSS等信息的解析时间消耗的复杂计算,且测试过程中不需要关心客户端,不依赖其他东西即可对被测进程进行测试,使得性能测试更加方便简单。对于页面加载结束的判断采用超时机制,解决了目前使用异步网页技术的网站加载完成无法判断的问题。
以上实施例仅用以说明本发明的技术方案,而非对其进行限制。因此,在不背离本发明的精神及其实质的情况下,本领域技术人员可作出各种改变、替换和变型。很显然,但这些改变、替换和变型都应涵盖于本发明权利要求的保护范围之内。
Claims (10)
1.一种测试方法,其特征在于,包括以下步骤:
调用操作系统中的钩子安装程序安装应用层钩子;
当被测进程向服务器发送请求时,利用所述应用层钩子拦截所述被测进程与所述服务器交互过程中的协议数据包;
分析所述协议数据包,计算所述被测进程的性能结果。
2.如权利要求1所述的测试方法,其特征在于,还包括:利用底层网络隔离驱动对所有除被测进程之外的其他进程的数据包进行拦截,只允许被测进程连接网络。
3.如权利要求2所述的测试方法,其特征在于,所述底层网络隔离驱动为TCP/IP协议驱动。
4.如权利要求1所述的测试方法,其特征在于,所述协议为文件传输协议、电子邮件传输协议或超文本传输协议。
5.如权利要求1所述的测试方法,其特征在于,当所述被测进程为浏览器时,所述应用层钩子拦截所述浏览器发送的HTTP请求,所述HTTP请求中携带有HTTP数据包。
6.如权利要求5所述的测试方法,其特征在于,所述HTTP数据包内包括开始请求时间、访问的URL、第一个数据包到达时间、结束下载时间以及下载的字节数。
7.如权利要求5所述的测试方法,其特征在于,如果在一段时间内没有收到HTTP数据包且不存在未结束下载的URL,则计算网页打开的性能结果。
8.如权利要求7所述的测试方法,其特征在于,根据监控到的所有HTTP数据包计算网页属性的下载顺序、URL响应时间、URL下载时间、完全加载时间和/或下载总流量,作为所述网页打开的性能结果。
9.一种测试装置,其特征在于,包括:
钩子设置模块,用于调用操作系统钩子安装程序设置应用层钩子;
数据抓取模块,用于当被测进程向服务器发起请求时,利用所述应用层钩子拦截所述被测进程与所述服务器交互过程中的协议数据包;
测试扩展模块,用于对所述协议数据包进行分析并计算所述被测进程的性能结果。
10.如权利要求9所述的测试装置,其特征在于,当被测进程为浏览器时,所述数据抓取模块具体用于利用应用层钩子拦截从请求开始到网页完全加载结束这一段时间内所有的协议数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410086593.8A CN103825783A (zh) | 2014-03-10 | 2014-03-10 | 一种测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410086593.8A CN103825783A (zh) | 2014-03-10 | 2014-03-10 | 一种测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103825783A true CN103825783A (zh) | 2014-05-28 |
Family
ID=50760628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410086593.8A Pending CN103825783A (zh) | 2014-03-10 | 2014-03-10 | 一种测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103825783A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426310A (zh) * | 2015-11-27 | 2016-03-23 | 北京奇虎科技有限公司 | 一种检测目标进程的性能的方法和装置 |
CN106209606A (zh) * | 2016-08-31 | 2016-12-07 | 北京深思数盾科技股份有限公司 | 一种安全使用web邮件的方法、终端和系统 |
CN106598821A (zh) * | 2015-10-14 | 2017-04-26 | 腾讯科技(深圳)有限公司 | 网页加载速度的测试方法及装置 |
CN107608852A (zh) * | 2017-09-01 | 2018-01-19 | 清华大学 | 一种进程监控方法及装置 |
CN108111611A (zh) * | 2017-12-26 | 2018-06-01 | 福建中金在线信息科技有限公司 | 一种客户端检测方法、装置及电子设备 |
CN109857650A (zh) * | 2019-01-14 | 2019-06-07 | 珠海金山网络游戏科技有限公司 | 一种游戏性能监听方法及系统 |
CN109873734A (zh) * | 2018-01-11 | 2019-06-11 | 贵州白山云科技股份有限公司 | 一种底层数据监控方法、介质、设备及装置 |
CN110119350A (zh) * | 2019-04-02 | 2019-08-13 | 深圳市腾讯信息技术有限公司 | 软件开发工具包测试方法、装置和设备及计算机存储介质 |
CN110958153A (zh) * | 2019-11-01 | 2020-04-03 | 上海盈赞通信科技有限公司 | 网络传输速率检测系统、方法及存储介质 |
CN111722979A (zh) * | 2020-06-10 | 2020-09-29 | 北京百度网讯科技有限公司 | 质量监测方法、装置、服务器及存储介质 |
CN112887354A (zh) * | 2019-11-29 | 2021-06-01 | 贵州白山云科技股份有限公司 | 一种性能信息的获取方法和装置 |
CN113489705A (zh) * | 2021-06-30 | 2021-10-08 | 中国银联股份有限公司 | 一种抓取应用程序http通讯数据的方法、装置存储介质 |
CN113765740A (zh) * | 2021-08-03 | 2021-12-07 | 网宿科技股份有限公司 | 一种对Dio网络请求进行监控的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100238820A1 (en) * | 2009-03-17 | 2010-09-23 | Fujitsu Limited | System analysis method, system analysis apparatus, and computer readable storage medium storing system analysis program |
CN102123056A (zh) * | 2010-11-29 | 2011-07-13 | 东北大学 | 端到端Web服务质量监测系统及方法 |
CN102360349A (zh) * | 2011-07-21 | 2012-02-22 | 深圳市万兴软件有限公司 | 一种获取网页中音/视频链接地址的方法及装置 |
-
2014
- 2014-03-10 CN CN201410086593.8A patent/CN103825783A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100238820A1 (en) * | 2009-03-17 | 2010-09-23 | Fujitsu Limited | System analysis method, system analysis apparatus, and computer readable storage medium storing system analysis program |
CN102123056A (zh) * | 2010-11-29 | 2011-07-13 | 东北大学 | 端到端Web服务质量监测系统及方法 |
CN102360349A (zh) * | 2011-07-21 | 2012-02-22 | 深圳市万兴软件有限公司 | 一种获取网页中音/视频链接地址的方法及装置 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598821A (zh) * | 2015-10-14 | 2017-04-26 | 腾讯科技(深圳)有限公司 | 网页加载速度的测试方法及装置 |
CN105426310B (zh) * | 2015-11-27 | 2018-06-26 | 北京奇虎科技有限公司 | 一种检测目标进程的性能的方法和装置 |
CN105426310A (zh) * | 2015-11-27 | 2016-03-23 | 北京奇虎科技有限公司 | 一种检测目标进程的性能的方法和装置 |
CN106209606B (zh) * | 2016-08-31 | 2019-11-12 | 北京深思数盾科技股份有限公司 | 一种安全使用web邮件的方法、终端和系统 |
CN106209606A (zh) * | 2016-08-31 | 2016-12-07 | 北京深思数盾科技股份有限公司 | 一种安全使用web邮件的方法、终端和系统 |
CN107608852A (zh) * | 2017-09-01 | 2018-01-19 | 清华大学 | 一种进程监控方法及装置 |
CN107608852B (zh) * | 2017-09-01 | 2019-11-26 | 清华大学 | 一种进程监控方法及装置 |
CN108111611B (zh) * | 2017-12-26 | 2021-08-24 | 福建中金在线信息科技有限公司 | 一种客户端检测方法、装置及电子设备 |
CN108111611A (zh) * | 2017-12-26 | 2018-06-01 | 福建中金在线信息科技有限公司 | 一种客户端检测方法、装置及电子设备 |
CN109873734A (zh) * | 2018-01-11 | 2019-06-11 | 贵州白山云科技股份有限公司 | 一种底层数据监控方法、介质、设备及装置 |
WO2019137208A1 (zh) * | 2018-01-11 | 2019-07-18 | 贵州白山云科技股份有限公司 | 一种底层数据监控方法、介质、设备及装置 |
CN109857650A (zh) * | 2019-01-14 | 2019-06-07 | 珠海金山网络游戏科技有限公司 | 一种游戏性能监听方法及系统 |
CN109857650B (zh) * | 2019-01-14 | 2022-07-01 | 珠海金山网络游戏科技有限公司 | 一种游戏性能监听方法及系统 |
CN110119350A (zh) * | 2019-04-02 | 2019-08-13 | 深圳市腾讯信息技术有限公司 | 软件开发工具包测试方法、装置和设备及计算机存储介质 |
CN110119350B (zh) * | 2019-04-02 | 2023-02-03 | 深圳市腾讯信息技术有限公司 | 软件开发工具包测试方法、装置和设备及计算机存储介质 |
CN110958153A (zh) * | 2019-11-01 | 2020-04-03 | 上海盈赞通信科技有限公司 | 网络传输速率检测系统、方法及存储介质 |
CN112887354A (zh) * | 2019-11-29 | 2021-06-01 | 贵州白山云科技股份有限公司 | 一种性能信息的获取方法和装置 |
CN111722979A (zh) * | 2020-06-10 | 2020-09-29 | 北京百度网讯科技有限公司 | 质量监测方法、装置、服务器及存储介质 |
CN111722979B (zh) * | 2020-06-10 | 2024-02-13 | 北京百度网讯科技有限公司 | 质量监测方法、装置、服务器及存储介质 |
CN113489705A (zh) * | 2021-06-30 | 2021-10-08 | 中国银联股份有限公司 | 一种抓取应用程序http通讯数据的方法、装置存储介质 |
CN113765740A (zh) * | 2021-08-03 | 2021-12-07 | 网宿科技股份有限公司 | 一种对Dio网络请求进行监控的方法和装置 |
WO2023010814A1 (zh) * | 2021-08-03 | 2023-02-09 | 网宿科技股份有限公司 | 一种对Dio网络请求进行监控的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103825783A (zh) | 一种测试方法及装置 | |
US10567407B2 (en) | Method and system for detecting malicious web addresses | |
CN103124263B (zh) | 一种广告推送系统及广告推送设备、广告服务器 | |
CN107133180B (zh) | 动态页面的测试方法、测试装置及存储介质 | |
US9961129B2 (en) | Business transaction correlation with client request monitoring data | |
CN104750471A (zh) | 一种基于浏览器的web页面性能检测与采集分析插件以及方法 | |
CN109688280A (zh) | 请求处理方法、请求处理设备、浏览器及存储介质 | |
CN104426985B (zh) | 显示网页的方法、装置及系统 | |
CN110730196B (zh) | 一种网络资源访问方法、计算机设备、存储介质 | |
US10404568B2 (en) | Agent manager for distributed transaction monitoring system | |
CN109739711B (zh) | 一种接口测试方法、装置、设备和存储介质 | |
CN110011875A (zh) | 拨测方法、装置、设备及计算机可读存储介质 | |
CN111447170A (zh) | 数据处理方法及其系统、计算机系统及计算机可读介质 | |
CN112994982A (zh) | 一种云真机的抓包控制方法、装置、系统及存储介质 | |
CN106445809A (zh) | 一种获取网页加载首屏时延方法 | |
JP2011043924A (ja) | Web行動履歴取得システム、Web行動履歴取得方法、ゲートウェイ装置、及びプログラム | |
CN108512889B (zh) | 一种基于http的应用响应推送方法及代理服务器 | |
CN104615597A (zh) | 浏览器中清除缓存文件的方法、装置和系统 | |
CN112256557B (zh) | 程序回归测试方法、装置、系统、计算机设备及存储介质 | |
CN104796929B (zh) | 网络调试方法及装置 | |
CN107888451A (zh) | 一种Web服务器的测试方法及装置 | |
CN109327530B (zh) | 一种信息处理方法、装置、电子设备和存储介质 | |
CN105095070B (zh) | 基于浏览器测试组件的qq群数据获取方法与系统 | |
CN107104997A (zh) | 一种重定向方法、终端及系统 | |
CN112559278B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140528 |