CN103795762B - 一种反向代理的测试方法及*** - Google Patents
一种反向代理的测试方法及*** Download PDFInfo
- Publication number
- CN103795762B CN103795762B CN201210431552.9A CN201210431552A CN103795762B CN 103795762 B CN103795762 B CN 103795762B CN 201210431552 A CN201210431552 A CN 201210431552A CN 103795762 B CN103795762 B CN 103795762B
- Authority
- CN
- China
- Prior art keywords
- request
- response
- http request
- response information
- processor
- 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
- 238000010998 test method Methods 0.000 title abstract description 4
- 230000004044 response Effects 0.000 claims abstract description 309
- 238000012360 testing method Methods 0.000 claims abstract description 61
- 238000000034 method Methods 0.000 claims description 41
- 230000002159 abnormal effect Effects 0.000 claims description 19
- 239000000284 extract Substances 0.000 claims description 4
- 238000011990 functional testing Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 6
- 235000014510 cooky Nutrition 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种反向代理的测试方法,包括:请求加载处理器将预先生成的http请求发送给反向代理服务器;所述反向代理服务器将收到的http请求转发给应答回放处理器,并接收所述应答回放处理器在收到http请求后返回的预先录制的response信息,将所述response信息转发给所述请求加载处理器;所述请求加载处理器将从所述反向代理服务器收到的response信息与本地预设的response信息进行比较,依据比较结果得到所述反向代理服务器的测试结果;本发明还提供一种反向代理的测试***。根据本发明提供的技术方案,能够高效地实现反向代理服务器的功能测试。
Description
【技术领域】
本发明涉及互联网领域的测试技术,尤其涉及一种反向代理的测试方法及***。
【背景技术】
反向代理是指用反向代理服务器来接收internet上的连接请求,然后将该请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端。反向代理被广泛应用于各大互联网,主要用于进行流量统计、流量转发以及七层防攻击等。
目前,反向代理的测试过程中需要利用不同的客户端,如手机、计算机、平板电脑等,向反向代理服务器发送不同类型的http请求,同时需要在web服务器构造各种处理不同http请求的服务,用来测试反向代理服务器是否能正常工作。其中,各种不同的http请求以及web服务器上对应的服务都需要测试人员手动构造,因此现有的反向代理的测试过程时间较长,也很难模拟出真实的http请求和应答环境,这样即使反向代理服务器上所有的测试用例都能够通过检验,也不能够保证反向代理服务器能够在线上正常工作,从而导致web服务器不能对外提供正常的服务。
【发明内容】
本发明提供了一种反向代理的测试方法及***,能够高效地实现反向代理服务器的功能测试。
本发明的具体技术方案如下:
根据本发明一优选实施例,一种反向代理的测试方法,包括:
请求加载处理器将预先生成的http请求发送给反向代理服务器;
所述反向代理服务器将收到的http请求转发给应答回放处理器,并接收所述应答回放处理器在收到http请求后返回的预先录制的response信息,将所述response信息转发给所述请求加载处理器;
所述请求加载处理器将从所述反向代理服务器收到的response信息与本地预设的response信息进行比较,依据比较结果得到所述反向代理服务器的测试结果。
上述方法中,所述请求加载处理器预先生成http请求的方法为:
请求加载处理器预先存储web服务器的请求日志文件,所述web服务器的请求日志文件包含web服务器的请求日志信息;
请求加载处理器从所述web服务器的请求日志信息中提取字段;
请求加载处理器利用提取的字段填充预设的http请求模板,生成http请求。
上述方法中,所述请求加载处理器预先生成http请求的方法为:
请求加载处理器接收用户输入的http信息;
请求加载处理器利用用户输入的http信息填充预设的http请求模板,生成http请求。
上述方法中,所述应答回放处理器预先录制response信息的方法为:
应答回放处理器接收并存储请求加载处理器或浏览器发送的http请求;
应答回放处理器将收到的http请求转发给web服务器,并接收所述web服务器返回的对应所述http请求的response信息;
应答回放处理器存储所述response信息及response信息与http请求的对应关系。
上述方法中,请求加载处理器中预设response信息的方法为:
请求加载处理器接收从应答回放处理器拷贝出的response信息及response信息与http请求的对应关系。
上述方法中,所述应答回放处理器在收到http请求后返回预先录制的response信息的方法为:
应答回放处理器依据预设的http请求与response信息的对应关系,找到所述http请求对应的response信息;
应答回放处理器依据预先设置的发送延时固定值或发送延时区间中的随机值,将找到的response信息返回给反向代理服务器。
上述方法中,所述依据比较结果得到所述反向代理服务器的测试结果,具体为:
如果两个response信息中的信息不相同,则判断出反向代理服务器的功能存在异常,将报警邮件发送到预设的用户邮箱;所述报警邮件中包括:从反向代理服务器收到的异常的response信息、异常的response信息对应的http请求、本地预设的所述http请求对应的response信息;
如果两个response信息中的信息相同,则判断出反向代理服务器的功能正常,将测试报告发送到预设的用户邮箱;所述测试报告包括:发送的http请求的数量、每个响应时间段对应的response信息的个数、响应时间的平均值以及收到的response信息中的返回值。
一种反向代理的测试***,包括:请求加载处理器、反向代理服务器、应答回放处理器;其中,
请求加载处理器,用于将预先生成的http请求发送给反向代理服务器;
反向代理服务器,用于将收到的http请求转发给应答回放处理器,并接收所述应答回放处理器在收到http请求后返回的预先录制的response信息,将所述response信息转发给所述请求加载处理器;
请求加载处理器,还用于将从所述反向代理服务器收到的response信息与本地预设的response信息进行比较,依据比较结果得到所述反向代理服务器的测试结果。
上述***中,所述请求加载处理器预先生成http请求,具体为:
预先存储web服务器的请求日志文件,所述web服务器的请求日志文件包含web服务器的请求日志信息;
从所述web服务器的请求日志信息中提取字段;
利用提取的字段填充预设的http请求模板,生成http请求。
上述***中,所述请求加载处理器预先生成http请求,具体为:
接收用户输入的http信息;
利用用户输入的http信息填充预设的http请求模板,生成http请求。
上述***中,所述应答回放处理器预先录制response信息,具体为:
接收并存储请求加载处理器或浏览器发送的http请求;
将收到的http请求转发给web服务器,并接收所述web服务器返回的对应所述http请求的response信息;
存储所述response信息及response信息与http请求的对应关系。
上述***中,在请求加载处理器中预设response信息,具体为:
请求加载处理器接收从应答回放处理器拷贝出的response信息及response信息与http请求的对应关系。
上述***中,所述应答回放处理器在收到http请求后返回预先录制的response信息,具体为:
依据预设的http请求与response信息的对应关系,找到所述http请求对应的response信息;
依据预先设置的发送延时固定值或发送延时区间中的随机值,将找到的response信息返回给反向代理服务器。
上述***中,所述请求加载处理器依据比较结果得到所述反向代理服务器的测试结果,具体为:
如果两个response信息中的信息不相同,则判断出反向代理服务器的功能存在异常,将报警邮件发送到预设的用户邮箱;所述报警邮件中包括:从反向代理服务器收到的异常的response信息、异常的response信息对应的http请求、本地预设的所述http请求对应的response信息;
如果两个response信息中的信息相同,则判断出反向代理服务器的功能正常,将测试报告发送到预设的用户邮箱;所述测试报告包括:发送的http请求的数量、每个响应时间段对应的response信息的个数、响应时间的平均值以及收到的response信息中的返回值。
由以上技术方案可以看出,本发明提供的具有以下有益效果:
通过请求加载处理器、反向代理服务器和应答回放处理器之间的闭环自动交互,实现反向代理服务器的功能测试,不需要在web服务器上搭建复杂的web服务和应答环境,从而大大降低测试的时间,提高反向代理的测试效率。
【附图说明】
图1是本发明实现反向代理的测试***的优选实施例的结构示意图;
图2是本发明实现反向代理的测试方法的优选实施例的流程示意图;
图3是本发明应答回放处理器录制response信息方法的流程示意图;
图4是本发明测试反向代理服务器时的组网示意图。
【具体实施方式】
本发明的基本思想是:请求加载处理器将预先生成的http请求发送给反向代理服务器;所述反向代理服务器将收到的http请求转发给应答回放处理器,并接收所述应答回放处理器在收到http请求后返回的预先录制的response信息,将所述response信息转发给所述请求加载处理器;所述请求加载处理器将从所述反向代理服务器收到的response信息与本地预设的response信息进行比较,依据比较结果得到所述反向代理服务器的测试结果。
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明提供一种反向代理的测试***,图1是本发明实现反向代理的测试***的优选实施例的结构示意图,如图1所示,该***包括:请求加载处理器10、应答回放处理器11和反向代理服务器12。
基于上述***,本发明还提供一种反向代理的测试方法,图2是本发明实现反向代理的测试方法的优选实施例的流程示意图,如图2所示,该优选实施例包括以下步骤:
步骤201,请求加载处理器从web服务器的请求日志信息中提取字段,依据提取的字段和预设的http请求模板生成http请求;或请求加载处理器接收输入的http信息,依据所述http信息和预设的http请求模板生成http请求。
具体的,本优选实施例中,设置有一个以上请求加载处理器,对于每个请求加载处理器,用户都需要预先将web服务器的请求日志文件存储到请求加载处理器中,web服务器的请求日志文件的内容是在用户通过浏览器发送http请求给web服务器时,web服务器依据收到的http请求保存的日志,属于线上真实的http请求日志,该web服务器的请求日志文件中包含一个以上web服务器的请求日志信息,请求加载处理器依据预设的策略从web服务器的请求日志信息中提取多个字段,如请求类型、请求地址、浏览器能够解码的数据编码方式、cookie数据、浏览器类型、源URL、初始URL中的主机和端口等;所述预设的策略可以是提取字符串中引号所引用的字段或提取字符串中空格后的字段;请求加载处理器在从web服务器的请求日志信息中提取出字段后,依据用户预先设置的http请求模板,将提取出的字段填充到http请求模板,生成http请求;这里,请求加载处理器需要依据web服务器的请求日志文件中web服务器的请求日志信息的数量,生成相同数量的http请求,即为每个web服务器的请求日志信息都对应生成一个http请求。
或者,请求加载处理器接收用户输入的http信息,该http信息包括:请求类型、请求地址、浏览器能够解码的数据编码方式、cookie数据、浏览器类型、源URL、初始URL中的主机和端口等;然后,请求加载处理器将用户输入的http信息填充到用户预先设置的http请求模板,生成http请求;这里,请求加载处理器支持用户输入的http信息,可以非常方便的实现构造各种类型的http请求,用于测试反向代理服务器的功能。
例如,有如下一个web服务器的请求日志信息:
61.236.32.126--[05/Mar/2007:00:00:00+0800]″GET/index.php?tn=btplus_cbHTTP/1.1″2001467mod_gzip:54pct.″www.host.com″″www.referer.com″BAIDUID=141550BC0DD29E1F93BFD49836DA40CC″Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1)″
其中,GET为请求类型,替换http请求模板中的method字段;/index.php?tn=btplus_cb HTTP/1.1为请求地址,替换http请求模板中的URL字段;gzip为浏览器能够解码的数据编码方式,替换http请求模板中的Accept-Encoding字段;BAIDUID=141550BC0DD29E1F93BFD49836DA40CC为cookie数据,替换http请求模板中的cookie字段;Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1为浏览器类型,替换http请求模板中的User-Agent字段;www.host.com为初始URL中的主机和端口,替换http请求模板中的Host字段;www.referer.com为源URL,替换http请求模板中的Referer字段;此外,http请求模板中的Accept字段固定为text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8。
依据从上述web服务器的请求日志信息的示例中提取的字段,生成的http请求如下:
″GET//index.php?tn=btplus_cb HTTP/1.1\r\nHost:www.host.com\r\nAccept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Encoding:gzip,deflate\r\nReferer:www.referer.com\r\nCookie:BAIDUID=141550BC0DD29E1F93BFD49836DA40CC;\r\nUser-Agent:Mozilla/4.0(compatible;MSIE6.0;WindowsNT 5.1;SV1)\r\n\r\n″。
例如,请求加载处理器可以接收用户输入的如下http信息:
GET/testbfe.php HTTP/1.1Host:db-testing-oped3001.db01.***.com:8901User-Agent:Mozilla/5.0(windows NT 5.1;rv:3.0)Gecko/20100101FireFox/13.0.1Accept-Encoding:gzip,deflateConnection:keep-aliveCookie:BAIDU=ABEE505768E4367875D6382A71939FEB:FG=1;BDUT=tbjh0EB0DD6C71BB689AC4C1C1307CFDB346138b7d734011;USERID=0cac808c2ebd401391dc4d87;Hm_lvt_t46af353ab5a92ddf70d8368b2529c10=1342609618035;Hm_lvt_e7617bc79ca305e55d9b5d393123de33=1341297466246;6a05b31484fdc3f8a9edb6307d81ef7a=706f5996fac620d8aa113313a034898a0881a5d4%3A4%3A%7Bi%3A0%3Bs%3A5%3A5%3A%22admin%22%3Bi%3A1%3Bs%3A5%3A%22admin%22%3Bi%3A2%3Bi%3A2592000%3Bi%3A3%3Ba3A0%3A%7B%7D%7D;UUAPTGC=TGT-602800-EOC3dchi70EyurqslcFYCKJlzaNuPFImGqsprpFoIB6N7RfbEF-vvap
步骤202,应答回放处理器对收到的http请求进行存储,并转发给web服务器,接收web服务器返回的response信息;应答回放处理器和请求加载处理器存储该response信息及response信息与http请求的对应关系。
具体的,用户在应答回放处理器中预先设置一个开关,该开关用于控制应答回放处理器的工作模式,该开关可以通过设置应答回放处理器的属性实现,例如,将应答回放处理器的属性中status的字段值设置为1时,应答回放处理器的工作模式为录制模式,开启信息录制功能,将应答回放处理器的属性中status的字段值设置为0时,应答回放处理器的工作模式为回放模式,开启信息回放功能。
当应答回放处理器的工作模式被设置为录制模式时,需要进行response信息的录制,如图3所示,response信息的具体录制过程如下:
首先,应答回放处理器接收http请求,该http请求可以是请求加载处理器发送的http请求;其中,可以预先在请求加载处理器中设置应答回放处理器的IP地址和端口,请求加载处理器就可以依据该IP地址和端口,将生成的http请求发送给应答回放处理器,可以多个请求加载处理器依次发送http请求给应答回放处理器,也可以多个请求加载处理器同时发送http请求给应答回放处理器;或者,用户可以通过浏览器发送http请求给应答回放处理器,如此,应答回放处理器接收的http请求是浏览器发送的http请求。
然后,应答回放处理器一方面将收到的http请求保存到本地的request文件中,其中,应答回放处理器在保存收到的http请求时,需要依据接收顺序保存http请求;例如,应答回放处理器收到请求加载处理器A的http请求后,在request文件中保存该http请求,然后收到请求加载处理器B的http请求后,在request文件中保存该http请求,该http请求位于请求加载处理器A的http请求的后面。另一方面应答回放处理器依据用户预设的web服务器的IP地址和端口,并依据http请求的接收顺序将收到的http请求依次发送给该对应的web服务器。
最后,web服务器在收到http请求后,会做出响应,并构造该http请求对应的response信息发送给应答回放处理器;这里,应答回放处理器在向web服务器发送收到的http请求时,是采用串行发送方式,即应答回放处理器发送一个http请求后,就等待接收web服务器返回的response信息,当收到web服务器返回的response信息后,才发送下一个http请求给web服务器,以此类推;如此,能够保证应答回放处理器在发送http请求后,收到的response信息为该http请求对应的response信息,从而应答回放处理器能够建立http请求与response信息的对应关系,并将http请求与response信息的对应关系保存到本地的response文件中;同时,应答回放处理器在response文件中依据接收顺序保存收到的response信息。
当应答回放处理器在发送完所有收到的http请求,且收到所有http请求对应的response信息后,认为应答回放处理器的录制工作完毕,然后依据设置的邮箱,将录制完毕的提示邮件发送给用户,用户就可以将应答回放处理器的属性中status的字段值由1修改为0,将应答回放处理器的工作模式设置为回放模式,同时将应答回放处理器的response文件中保存response信息及http请求与response信息的对应关系拷贝到http请求对应的请求加载处理器中,如此,请求加载处理器就保存有生成的http请求与对应的response信息。
本优选实施例中,应答回放处理器可以只录制一次response信息,后续进行反向代理服务器的测试时,可以直接利用预先录制好的response信息。
需要说明的是,上述的步骤201~步骤202为请求加载处理器生成http请求以及应答回放处理器录制response信息的过程,属于反向代理服务器测试过程中的准备阶段,反向代理服务器的真正测试阶段为下述的步骤203步骤205;可以只进行一次http请求的生成和一次response信息的录制,在进行反向代理服务器的测试时,可以直接利用http请求和response信息,直接执行步骤203。
步骤203,请求加载处理器将预先生成的http请求发送给反向代理服务器。
具体的,用户依据测试需求预先在请求加载处理器上配置http请求的发送频率;在应答回放处理器录制好response信息后,就可以进行反向代理服务器的测试。
如图4所示,在进行反向代理服务器的测试时,每个请求加载处理器都依据预设的http请求的发送频率和本地http请求的生成顺序,将生成的http请求发送给反向代理服务器;这里,本优选实施例中可以有一个以上请求加载处理器,因此在进行反向代理服务器的测试时,可以有一部分请求加载处理器向反向代理服务器发送的http请求是依据web服务器的请求日志信息生成的,其余的请求加载处理器向反向代理服务器发送的http请求是依据用户输入的http信息生成的。
步骤204,反向代理服务器将收到的http请求转发给应答回放处理器,并接收应答回放处理器在收到http请求后返回的预先录制的response信息,将该response信息转发给对应的请求加载处理器。
具体的,如图4所示,反向代理服务器在收到请求加载处理器发送的http请求后,将http请求转发给应答回放处理器,应答回放处理器依据本地保存的http请求与response信息的对应关系,找到收到的http请求对应的response信息,然后将找到的response信息返回给反向代理服务器。这里,反向代理服务器在收到http请求后,为每个http请求都建立一个会话通道,该会话通道作为请求加载处理器、反向代理服务器与应答回放处理器之间的交互通道,通过该会话通道,反向代理服务器可以将接收的http请求转发给应答回放处理器,然后接收应答回放处理器返回的response信息,并将response信息发送给发出该http请求的请求加载处理器;在该http请求和response信息交互的过程中,请求加载处理器与反向代理服务器之间的会话通道、反向代理服务器与应答回放处理器之间的会话通道将一直存在,直到反向代理服务器将应答回放处理器返回的response信息发送到请求加载处理器,即完整的应答会话完成后,反向代理服务器才将为该http请求建立的会话通道释放,建立的不同会话通道之间不会相互影响,从而确保反向代理服务器能够将收到的response信息,转发给该response信息对应的http请求所对应的请求加载处理器。
本优选实施例中,应答回放处理器因为已经预先录制了web服务器上真实的response信息,因此,进行反向代理服务器的测试时,不再需要web服务器向反向代理服务器发送response信息,而是由应答回放处理器替代web服务器的工作,将预先录制的response信息发送给反向代理服务器。
其中,应答回放处理器在向反向代理服务器发送response信息时,可以依据预先设置的发送延时固定值来发送response信息;或者,由于web服务器在不同的请求压力下响应的速度会不同,因此为了实现应答回放处理器能够更好的模拟web服务器的工作,用户需要依据测试需求预先在web服务器中配置response信息的发送延时区间,web服务器在从反向代理服务器收到http请求后,可以在预设的发送延时区间中随机选择一个具体时间值,然后依据选出的具体时间值作为发送延时来发送response信息给反向代理服务器。
步骤205,请求加载处理器将从反向代理服务器收到的response信息与本地预设的response信息进行比较,依据比较结果得到反向代理服务器的测试结果。
具体的,预先在请求加载处理器中设置多个响应时间段,如:0~1000ms、1000ms~2000ms、2000ms~5000ms、大于5000ms。
由于请求加载处理器是按照顺序发送http请求给反向代理服务器,反向代理服务器也是按照接收http请求的顺序转发http请求给应答回放处理器,因此,请求加载处理器从反向代理服务器收到response信息后,依据response信息的接收顺序可以找到对应的http请求,然后在本地保存的http请求与response信息的对应关系中,找到该http请求对应的response信息,将找到的response信息与从反向代理服务器收到的response信息进行比较,判断两个response信息中的信息是否相同。
如果两个response信息中的信息不相同,表示经过反向代理服务器转发的response信息不符合预期,反向代理服务器的功能存在异常,因此,需要将针对该异常的报警邮件发送到预设的用户邮箱,向用户报警,以便用户对反向代理服务器进行调试;其中,报警邮件中包括如下内容:从反向代理服务器收到的异常的response信息、异常的response信息对应的http请求、本地保存的该http请求对应的response信息。
如果两个response信息中的信息相同,表示经过反向代理服务器转发的response信息符合预期,反向代理服务器的功能正常,因此,请求加载处理器需要将测试报告发送到预设的用户邮箱;其中,测试报告包括反向代理服务器的相关功能数据,该相关功能数据包括以下内容:请求加载服务器发送的http请求的数量、每个响应时间段对应的response信息的个数、响应时间的平均值以及收到的response信息中的返回值。
其中,请求加载处理器在每发送一个http请求后,都要启动一个对应的计时器,直到收到该http请求对应的response信息时停止该计时器,然后根据计时器的时间确定响应时间,判断该响应时间所在的响应时间段,然后将该响应时间段的计数器值加1。请求加载处理器还可以依据确定的响应时间计算http请求的响应时间的平均值。请求加载处理器收到的response信息中的信息头中将携带http请求的返回值,该返回值指的是http协议状态码,主要包括以下五类返回值:返回值为1xx,表示保留;返回值为2xx,表示请求成功接收;返回值为3xx,表示为完成请求用户需要进一步细化请求;返回值为4xx,表示用户请求错误;返回值为5xx,表示反向代理服务器错误。
为实现上述***,如图1所示,所述反向代理的测试***中:
请求加载处理器10,用于将预先生成的http请求发送给反向代理服务器12;
反向代理服务器12,用于将收到的http请求转发给应答回放处理器11,并接收所述应答回放处理器11在收到http请求后返回的预先录制的response信息,将所述response信息转发给所述请求加载处理器10;
请求加载处理器10,还用于将从所述反向代理服务器12收到的response信息与本地预设的response信息进行比较,依据比较结果得到所述反向代理服务器12的测试结果。
其中,所述请求加载处理器10预先生成http请求,具体为:预先存储web服务器的请求日志文件,所述web服务器的请求日志文件包含web服务器的请求日志信息;从所述web服务器的请求日志信息中提取字段;利用提取的字段填充预设的http请求模板,生成http请求。
或,所述请求加载处理器10预先生成http请求,具体为:接收用户输入的http信息;利用用户输入的http信息填充预设的http请求模板,生成http请求。
其中,所述应答回放处理器11预先录制response信息,具体为:接收并存储请求加载处理器或浏览器发送的http请求;将收到的http请求转发给web服务器,并接收所述web服务器返回的对应所述http请求的response信息;存储所述response信息及response信息与http请求的对应关系。
其中,在请求加载处理器10中预设response信息,具体为:请求加载处理器接收从应答回放处理器拷贝出的response信息及response信息与http请求的对应关系。
其中,所述应答回放处理器11在收到http请求后返回预先录制的response信息,具体为:依据预设的http请求与response信息的对应关系,找到所述http请求对应的response信息;依据预先设置的发送延时固定值或发送延时区间中的随机值,将找到的response信息返回给反向代理服务器。
其中,所述请求加载处理器10依据比较结果得到所述反向代理服务器的测试结果,具体为:如果两个response信息中的信息不相同,则判断出反向代理服务器的功能存在异常,将报警邮件发送到预设的用户邮箱;所述报警邮件中包括:从反向代理服务器收到的异常的response信息、异常的response信息对应的http请求、本地预设的所述http请求对应的response信息;如果两个response信息中的信息相同,则判断出反向代理服务器的功能正常,将测试报告发送到预设的用户邮箱;所述测试报告包括:发送的http请求的数量、每个响应时间段对应的response信息的个数、响应时间的平均值以及收到的response信息中的返回值。
本发明的上述技术方案具体有以下有益效果:
1、进行测试时,将线上真实的http请求和用户构建的测试http请求相结合,来对反向代理服务器进行测试,能够对反向代理服务器进行全面地测试。
2、应答回放处理器采用随机的发送延时来返回response信息,能够实现在线下模拟线上真实的web服务环境,从而保证反向代理服务器的测试结果与线上测试结果相符。
3、请求加载处理器当判断出反向代理服务器出现异常时,能够自动地进行报警,以便测试人员及时调试反向代理服务器,提高测试效率。
4、能够调节请求加载处理器上http请求的发送频率,能够自动统计响应时间的平均值,并且能够自动记录http请求的返回值,极大的提高了反向代理服务器的测试效率。
5、在进行反向代理服务器的测试时,http请求依据线上真实请求日志生成,且response信息也来自真实的web服务器,因此在不需要在web服务器上构造各种复杂的服务,也不需要手动构造http请求的情况下,就能够模拟出真实的http请求和应答环境,大大降低环境搭建所需要的时间,提高反向代理服务器的测试效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种反向代理的测试方法,其特征在于,该方法包括:
请求加载处理器将预先生成的http请求发送给反向代理服务器;
所述反向代理服务器将收到的http请求转发给应答回放处理器,并接收所述应答回放处理器在收到http请求后返回的预先录制的与所述http请求相对应的response信息,将所述response信息转发给所述请求加载处理器;
所述请求加载处理器将从所述反向代理服务器收到的response信息与本地预设的与所述http请求相对应的response信息进行比较,依据比较结果得到所述反向代理服务器的测试结果;
所述应答回放处理器预先录制response信息的方法为:
应答回放处理器接收并存储请求加载处理器或浏览器发送的http请求;
应答回放处理器将收到的http请求转发给web服务器,并接收所述web服务器返回的对应所述http请求的response信息;
应答回放处理器存储所述response信息及response信息与http请求的对应关系。
2.根据权利要求1所述的方法,其特征在于,所述请求加载处理器预先生成http请求的方法为:
请求加载处理器预先存储web服务器的请求日志文件,所述web服务器的请求日志文件包含web服务器的请求日志信息;
请求加载处理器从所述web服务器的请求日志信息中提取字段;
请求加载处理器利用提取的字段填充预设的http请求模板,生成http请求。
3.根据权利要求1所述的方法,其特征在于,所述请求加载处理器预先生成http请求的方法为:
请求加载处理器接收用户输入的http信息;
请求加载处理器利用用户输入的http信息填充预设的http请求模板,生成http请求。
4.根据权利要求1所述的方法,其特征在于,请求加载处理器中预设response信息的方法为:
请求加载处理器接收从应答回放处理器拷贝出的response信息及response信息与http请求的对应关系。
5.根据权利要求1所述的方法,其特征在于,所述应答回放处理器在收到http请求后返回预先录制的与所述http请求相对应的response信息的方法为:
应答回放处理器依据预设的http请求与response信息的对应关系,找到所述http请求对应的response信息;
应答回放处理器依据预先设置的发送延时固定值或发送延时区间中的随机值,将找到的response信息返回给反向代理服务器。
6.根据权利要求1所述的方法,其特征在于,所述依据比较结果得到所述反向代理服务器的测试结果,具体为:
如果两个response信息中的信息不相同,则判断出反向代理服务器的功能存在异常,将报警邮件发送到预设的用户邮箱;所述报警邮件中包括:从反向代理服务器收到的异常的response信息、异常的response信息对应的http请求、本地预设的所述http请求对应的response信息;
如果两个response信息中的信息相同,则判断出反向代理服务器的功能正常,将测试报告发送到预设的用户邮箱;所述测试报告包括:发送的http请求的数量、每个响应时间段对应的response信息的个数、响应时间的平均值以及收到的response信息中的返回值。
7.一种反向代理的测试***,其特征在于,该***包括:请求加载处理器、反向代理服务器、应答回放处理器;其中,
请求加载处理器,用于将预先生成的http请求发送给反向代理服务器;
反向代理服务器,用于将收到的http请求转发给应答回放处理器,并接收所述应答回放处理器在收到http请求后返回的预先录制的与所述http请求相对应的response信息,将所述response信息转发给所述请求加载处理器;
请求加载处理器,还用于将从所述反向代理服务器收到的response信息与本地预设的与所述http请求相对应的response信息进行比较,依据比较结果得到所述反向代理服务器的测试结果;
所述应答回放处理器预先录制response信息,具体为:
应答回放处理器接收并存储请求加载处理器或浏览器发送的http请求;
应答回放处理器将收到的http请求转发给web服务器,并接收所述web服务器返回的对应所述http请求的response信息;
应答回放处理器存储所述response信息及response信息与http请求的对应关系。
8.根据权利要求7所述的***,其特征在于,所述请求加载处理器预先生成http请求,具体为:
预先存储web服务器的请求日志文件,所述web服务器的请求日志文件包含web服务器的请求日志信息;
从所述web服务器的请求日志信息中提取字段;
利用提取的字段填充预设的http请求模板,生成http请求。
9.根据权利要求7所述的***,其特征在于,所述请求加载处理器预先生成http请求,具体为:
接收用户输入的http信息;
利用用户输入的http信息填充预设的http请求模板,生成http请求。
10.根据权利要求7所述的***,其特征在于,在请求加载处理器中预设response信息,具体为:
请求加载处理器接收从应答回放处理器拷贝出的response信息及response信息与http请求的对应关系。
11.根据权利要求7所述的***,其特征在于,所述应答回放处理器在收到http请求后返回预先录制的与所述http请求相对应的response信息,具体为:
依据预设的http请求与response信息的对应关系,找到所述http请求对应的response信息;
依据预先设置的发送延时固定值或发送延时区间中的随机值,将找到的response信息返回给反向代理服务器。
12.根据权利要求7所述的***,其特征在于,所述请求加载处理器依据比较结果得到所述反向代理服务器的测试结果,具体为:
如果两个response信息中的信息不相同,则判断出反向代理服务器的功能存在异常,将报警邮件发送到预设的用户邮箱;所述报警邮件中包括:从反向代理服务器收到的异常的response信息、异常的response信息对应的http请求、本地预设的所述http请求对应的response信息;
如果两个response信息中的信息相同,则判断出反向代理服务器的功能正常,将测试报告发送到预设的用户邮箱;所述测试报告包括:发送的http请求的数量、每个响应时间段对应的response信息的个数、响应时间的平均值以及收到的response信息中的返回值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210431552.9A CN103795762B (zh) | 2012-11-01 | 2012-11-01 | 一种反向代理的测试方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210431552.9A CN103795762B (zh) | 2012-11-01 | 2012-11-01 | 一种反向代理的测试方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103795762A CN103795762A (zh) | 2014-05-14 |
CN103795762B true CN103795762B (zh) | 2019-07-02 |
Family
ID=50671042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210431552.9A Active CN103795762B (zh) | 2012-11-01 | 2012-11-01 | 一种反向代理的测试方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103795762B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105988917B (zh) * | 2015-02-26 | 2020-08-04 | 小米科技有限责任公司 | 异常信息获取方法及装置 |
CN105450476B (zh) * | 2015-12-07 | 2019-03-19 | 北京先进数通信息技术股份公司 | 一种回归测试***及测试方法 |
CN105959179B (zh) * | 2016-06-08 | 2019-02-05 | 微梦创科网络科技(中国)有限公司 | 一种反向代理nginx测试***及方法 |
CN106209995B (zh) * | 2016-06-29 | 2019-11-12 | 武汉斗鱼网络科技有限公司 | 一种基于反向代理服务器的web开发调试***及方法 |
CN106802864A (zh) * | 2016-12-30 | 2017-06-06 | ***股份有限公司 | 一种基于金融***的测试方法及装置 |
CN107040433A (zh) * | 2017-05-10 | 2017-08-11 | 福建网龙计算机网络信息技术有限公司 | 一种自动化测试方法及*** |
CN107480179B (zh) * | 2017-07-04 | 2020-06-16 | 阿里巴巴集团控股有限公司 | 检测方法及装置和电子设备 |
CN108111345B (zh) * | 2017-12-19 | 2021-04-13 | 易知成都数据服务有限公司 | 一种可视化反向代理配置和测试方法 |
CN109960647A (zh) * | 2017-12-26 | 2019-07-02 | 腾讯科技(深圳)有限公司 | 一种软件测试方法及装置、计算设备和存储介质 |
CN109743302A (zh) * | 2018-12-24 | 2019-05-10 | 中电福富信息科技有限公司 | 一种https/http协议的审计回放*** |
CN109525679A (zh) * | 2019-01-08 | 2019-03-26 | 郑州云海信息技术有限公司 | 一种基于HTTP协议的web文件服务器测试方法 |
CN110691133B (zh) * | 2019-09-29 | 2020-11-24 | 河南信大网御科技有限公司 | 一种应用于网络通信设备的web服务拟态***及方法 |
CN113381976B (zh) * | 2021-05-11 | 2022-06-24 | 北京丁牛科技有限公司 | 一种走私攻击测试方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1805381A (zh) * | 2005-01-13 | 2006-07-19 | 中兴通讯股份有限公司 | 一种多网元仿真测试***及实现方法 |
CN1848777A (zh) * | 2006-01-19 | 2006-10-18 | 华为技术有限公司 | 一种协议仿真测试装置 |
WO2008137522A3 (en) * | 2007-05-04 | 2010-05-20 | Sitespect, Inc. | Method and system for testing variations of website content |
CN102684934A (zh) * | 2011-03-17 | 2012-09-19 | 阿里巴巴集团控股有限公司 | 监控web应用程序性能的方法、***和web服务器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7925692B2 (en) * | 2007-01-15 | 2011-04-12 | Microsoft Corporation | Method and system for testing internet software |
-
2012
- 2012-11-01 CN CN201210431552.9A patent/CN103795762B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1805381A (zh) * | 2005-01-13 | 2006-07-19 | 中兴通讯股份有限公司 | 一种多网元仿真测试***及实现方法 |
CN1848777A (zh) * | 2006-01-19 | 2006-10-18 | 华为技术有限公司 | 一种协议仿真测试装置 |
WO2008137522A3 (en) * | 2007-05-04 | 2010-05-20 | Sitespect, Inc. | Method and system for testing variations of website content |
CN102684934A (zh) * | 2011-03-17 | 2012-09-19 | 阿里巴巴集团控股有限公司 | 监控web应用程序性能的方法、***和web服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN103795762A (zh) | 2014-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103795762B (zh) | 一种反向代理的测试方法及*** | |
CN104767775B (zh) | 网页应用消息推送方法及*** | |
CN110798471B (zh) | 空调管理方法及相关装置 | |
CN103428042B (zh) | 对服务器进行压力测试的方法及*** | |
CN102655481B (zh) | 一种基于网页的即时通信聊天内容查看方法及*** | |
US20080144655A1 (en) | Systems, methods, and computer program products for passively transforming internet protocol (IP) network traffic | |
CN102497427B (zh) | 实现可再生能源监测***数据采集服务的方法和装置 | |
CN105119722A (zh) | 一种身份验证方法、设备及*** | |
CN108809890A (zh) | 漏洞检测方法、测试服务器及客户端 | |
EP3754998B1 (en) | Streaming media quality monitoring method and system | |
CN111711544B (zh) | 链路拨测方法、装置、电子设备及存储介质 | |
CN112988485A (zh) | 电力物联网设备模拟测试方法及装置 | |
CN103607476A (zh) | 海量消息的分布式多阶段持久化的***及方法 | |
US8880108B2 (en) | Short message processing method and apparatus | |
CN105450479A (zh) | 一种监控模块的方法及装置 | |
CN104519069A (zh) | 一种拦截资源请求的方法和装置 | |
CN114666245A (zh) | B/S***的IPv6单栈支持度确定方法及相关设备 | |
CN105721274B (zh) | 一种多种即时通讯的融合方法及装置 | |
CN104468771B (zh) | 地理位置的确定方法及装置 | |
CN111930548B (zh) | 一种多集群分布式服务的故障模拟*** | |
CN109194729A (zh) | 一种信息通讯***以及方法 | |
CN107566421A (zh) | 一种登录方法 | |
CN105721231B (zh) | 一种业务质量感知探测方法及装置 | |
JP2014026480A (ja) | 複数の情報システムおける出力比較方法 | |
CN102970185B (zh) | 网络应用的运行状态监控方法、客户端设备及通信*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |