CN105915406A - 一种测试方法、装置和计算设备 - Google Patents
一种测试方法、装置和计算设备 Download PDFInfo
- Publication number
- CN105915406A CN105915406A CN201610225289.6A CN201610225289A CN105915406A CN 105915406 A CN105915406 A CN 105915406A CN 201610225289 A CN201610225289 A CN 201610225289A CN 105915406 A CN105915406 A CN 105915406A
- Authority
- CN
- China
- Prior art keywords
- request
- test
- solicited message
- transmission
- per
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 179
- 238000012216 screening Methods 0.000 claims abstract description 18
- 230000005540 biological transmission Effects 0.000 claims description 86
- 238000000034 method Methods 0.000 claims description 43
- 239000000284 extract Substances 0.000 claims description 14
- 238000010998 test method Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 3
- 238000001914 filtration Methods 0.000 claims description 2
- 230000008859 change Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000001105 regulatory effect Effects 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004622 sleep time Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 101100273207 Dictyostelium discoideum carC gene Proteins 0.000 description 1
- 101000746134 Homo sapiens DNA endonuclease RBBP8 Proteins 0.000 description 1
- 101000969031 Homo sapiens Nuclear protein 1 Proteins 0.000 description 1
- 102100021133 Nuclear protein 1 Human genes 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000004647 photon scanning tunneling microscopy Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种测试方法,该方法包括:捕获网络访问产生的流量数据;解析捕获的流量数据;从解析后的流量数据中提取请求信息,该请求信息包括请求类型和请求地址;根据待测系统的测试目标,从提取的请求信息中筛选出符合测试目标的测试请求;设置每秒发送请求数目;根据该每秒发送请求数目异步发送测试请求至待测系统,以获取测试结果。本发明还公开了一种测试装置和相应的计算设备。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种测试方法、装置和计算设备。
背景技术
压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别的测试。通常为了保证服务器能够安全稳定运行,服务器在上线之前,都需要进行压力测试。现有地,测试人员通常通过Apache ab,JMeter,LoadRunner等压力测试工具来对服务器进行压力测试时,通过人为构造不同类型的请求,来模拟线上客户端向服务器发送的请求,并使用这些构造的请求对服务器进行压力测试。但是由于实际情况下,线上客户端向服务器发送的请求的类型复杂多样,人为构造的请求无法完全覆盖,无法与线上的实际情况保持一致,从而导致测试的功能不够全面。
因此,需要一种新型的测试方案。
发明内容
鉴于此,本发明提供了一种新的测试方案,以力图解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供了一种测试方法,包括:捕获网络访问产生的流量数据;解析捕获的流量数据;从解析后的流量数据中提取请求信息,请求信息包括请求类型和请求地址;根据待测系统的测试目标,从提取的请求信息中筛选出符合测试目标的测试请求;设置每秒发送请求数目;根据每秒发送请求数目异步发送所述测试请求至待测系统,以获取测试结果。
可选地,在根据本发明的测试方法中,从提取的请求信息中筛选出符合测试目标的测试请求的步骤包括:从提取的请求信息中筛选出具有特定请求地址的请求信息;根据筛选出的请求信息生成对特定请求地址的测试请求。
可选地,在根据本发明的测试方法中,从提取的请求信息中筛选出符合测试目标的测试请求的步骤包括:将提取的请求信息中请求地址替换成待测系统地址;根据替换后的请求信息生成对待测系统的测试请求。
可选地,在根据本发明的测试方法中,从提取的请求信息中筛选出符合测试目标的测试请求的步骤包括:根据提取的请求信息生成预定数目的测试请求。
可选地,在根据本发明的测试方法中,根据每秒发送请求数目异步发送测试请求至待测系统的步骤包括:发送一个测试请求之后,等待预定时间;发送下一个测试请求;其中预定时间根据设置的每秒发送请求数目和发送一个测试请求的机器时间计算而得。
可选地,在根据本发明的测试方法中,预定时间为1秒除以每秒发送请求数目后减去发送一个测试请求的机器时间。
可选地,在根据本发明的测试方法中,还包括:基于机器时间的变化,调整预定时间。
可选地,在根据本发明的测试方法中,基于机器时间的变化调整预定时间的步骤包括:获取前一次发送每秒发送请求数目个测试请求的实际用时;根据获取的实际用时和当前设置的预定时间计算变化后发送一个测试请求的平均机器时间;根据计算的平均机器时间和设置的每秒发送请求数目计算新的预定时间。
可选地,在根据本发明的测试方法中,还包括:在基于机器时间的变化调整预定时间之前,根据前一次发送每秒发送请求数目个测试请求的实际用时计算实际的每秒发送请求数目;计算实际的每秒发送请求数目与设置的每秒发送请求数目的误差;当实际的每秒发送请求数目与设置的每秒发送请求数目的误差大于误差阈值时,调整预定时间。
可选地,在根据本发明的测试方法中,其中误差阈值为5%。
可选地,在根据本发明的测试方法中,其中请求为http请求,请求类型包括GET请求和POST请求,请求地址为页面入口统一资源定位符(URL)地址。
可选地,在根据本发明的测试方法中,测试请求的异步发送通过基于twisted框架下的treq网络库实现。
根据本发明的另一个方面,提供了一种测试装置,包括:流量捕获模块,适于捕获网络访问产生的流量数据;流量解析模块,适于解析捕获的流量数据;请求筛选模块,适于从解析后的流量数据中提取请求信息,请求信息包括请求类型和请求地址,还适于根据待测系统的测试目标,从提取的请求信息中筛选出符合测试目标的测试请求;以及请求发送模块,适于设置每秒发送请求数目,根据每秒发送请求数目异步发送测试请求至待测系统,以获取测试结果。
可选地,在根据本发明的测试装置中,请求筛选模块还适于从提取的请求信息中筛选出具有特定请求地址的请求信息,根据筛选出的请求信息生成对特定请求地址的测试请求。
可选地,在根据本发明的测试装置中,请求筛选模块还适于将提取的请求信息中请求地址替换成待测系统地址,根据替换后的请求信息生成对待测系统的测试请求。
可选地,在根据本发明的测试装置中,请求筛选模块还适于根据提取的请求信息生成预定数目的测试请求。
可选地,在根据本发明的测试装置中,请求发送模块还适于发送一个测试请求之后,等待预定时间后发送下一个测试请求,其中预定时间根据设置的每秒发送请求数目和发送一个测试请求的机器时间计算而得。
可选地,在根据本发明的测试装置中,预定时间为1秒除以每秒发送请求数目后减去发送一个测试请求的机器时间。
可选地,在根据本发明的测试装置中,请求发送模块还包括时间调整模块,适于基于机器时间的变化,调整预定时间。
可选地,在根据本发明的测试装置中,时间调整模块还适于获取前一次发送每秒发送请求数目个测试请求的实际用时;根据获取的实际用时和当前设置的预定时间计算变化后发送一个测试请求的平均机器时间;根据计算的平均机器时间和设置的每秒发送请求数目计算新的预定时间。
可选地,在根据本发明的测试装置中,时间调整模块还适于在基于机器时间的变化调整预定时间之前,根据前一次发送每秒发送请求数目个测试请求的实际用时计算实际的每秒发送请求数目;计算实际的每秒发送请求数目与设置的每秒发送请求数目的误差;当实际的每秒发送请求数目与设置的每秒发送请求数目的误差大于误差阈值时,调整预定时间。
可选地,在根据本发明的测试装置中,其中误差阈值为5%。
可选地,在根据本发明的测试装置中,其中请求为http请求,请求类型包括GET请求和POST请求,请求地址为页面入口统一资源定位符(URL)地址。
可选地,在根据本发明的测试装置中,测试请求的异步发送通过基于twisted框架下的treq网络库实现。
根据本发明的还有一个方面,还提供了一种计算设备,包括根据本发明的测试装置。
根据本发明的测试方案,通过对捕获的网络访问产生的流量数据筛选而得到需要的测试请求,可以将生产环境的真实流量应用于测试系统中,其中根据特定规则对流量数据进行筛选,满足了不同测试场景下的测试需求。此外,通过设置每秒发送请求数目,并按照设置的每秒发送请求数目异步发送筛选出的测试请求,实现了对发送请求的定量控制。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个示例性实施例的计算设备100的结构示意图;
图2示出了根据本发明一个示例性实施例的测试方法200的示意图;
图3示出了根据本发明一个示例性实施例的用于用户设置每秒发送请求数目的图形用户界面的截图;以及
图4示出了根据本发明一个示例性实施例的测试装置300的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明的一个示例性实施例的计算设备100的结构示意图。参照图1,在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器((μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,应用122可以布置为在操作系统上利用程序数据124进行操作。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备100可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备100还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算设备100被配置为执行根据本发明的测试方法200,其中应用122包括根据本发明的测试装置300。
为了解决现有技术测试功能不够全面这一问题,本发明采用现网引流工具,对线上服务器接收到的线上客户端发送的请求进行复制,并将复制的请求引流至待测系统,由待测系统根据该请求进行功能测试。由于引流至待测系统的请求是线上客户端实际发送的请求,请求类型多样,所以测试的功能较为全面。然而将线上服务器接收到的所有请求引流到测试服务器,只能实现对测试服务器整体性能的评估,无法实现对测试服务器中具体功能的测试,也无法对回放的流量进行灵活的定量控制。因此本发明进一步设置了每秒发送请求数目,以此来实现对回放流量的定量控制。
图2示出了根据本发明一个示例性实施例的测试方法200的流程图。
如图2所示,方法200始于步骤S210,在步骤S210中,捕获网络访问产生的流量数据。具体地,可使用工具TcpDump捕获生产环境的流量数据,捕获的流量数据通常为pcap格式数据包。TcpDump是捕获网络层数据包的工具,它可以用来捕获特定端口的数据包,这样就可以获取通过本机80端口,即使用了http连接的数据包。一个或者多个数据包组成一个http请求报文,数据包的内容是二进制格式,不可读,所以需要解析工具来将http请求解析出来。
在步骤S220中,解析捕获的流量数据。具体地,可以使用开源工具pcap-parser解析捕获的流量包,得到http请求的具体内容。例如解析出来的一个完整的http请求的报文可以如下:
“[10.168.39.32:59981]------>[123.125.115.164:80]
GET
/a.js?tu=639889&jk=c7944b9bcb44a1be&word=http%3A%2F%2Fzhidao.baidu.com%2Flink%3Furl%3DbsIYeUNZ9wY0t3Pux7R9bUgBUX27T-5aYqqalzsL2ewq6wzeZPdABfvAB0zBqMWsljXRG5WnQUJMj_F-k6gd9ReSYHdYCnvcpqtLEUmpklO&if=1&aw=0&ah=0&pt=18500&it=18500&vt=18124&csp=1280,796&bcl=250,250&pof=250,252&top=845&left=875&total=1&rdm=1456220115114HTTP/1.1
Host:eclick.baidu.com
Connection:keep-alive
Cache-Control:max-age=0
User-Agent:Mozilla/5.0(Macintosh;Intel Mac OS X 10_10_5)
AppleWebKit/537.36(KHTML,like Gecko)Chrome/48.0.2564.109Safari/537.36
Accept:*/*
Referer:
http://zhidao.baidu.com/link?url=bsIYeUNZ9wY0t3Pux7R9bUgBUX27T-5aYqqalzsL2ewq6wzeZPdABfvAB0zBqMWsljXRG5WnQUJMj_F-k6gd9ReSYHdYCnvcpqtLEUmpklO
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8,en;q=0.6
Cookie:BAIDUID=8E4A0F24C6EF0E03480F5FA9E2B2288E:FG=1;
PSTM=1440148522;BIDUPSID=28C8AD848DC7335030BACC09CD28AAB4;MCITY=-207%3A;
BDUSS=E9xbjQ2U2xFZzdyemw4c29weTRFN2R3dWF1RDdjMGowSFdLUGhrVE5HV3ZnWWRXQVFBQUFBJCQAAAAAAAAAAAEAAACNgzI3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK~0X1av9F9WV;BDSFRCVID=140sJeC67GbPnNR419DV-_F8EeK5g_rTH6aP_AcC0Mz3Z70VhNdMEG0PtOlQpYD-VCGHogKK0gOTH65P;
H_BDCLCKID_SF=JJKtoKLhJIvbfP0kbJOoh4-O-fuX5-RLfb7nKPOF5lOTJh0Rj-vq060BybAJBqLfLI5BWpOS-q-bDnTOe5bke6cWjGDetTDsb5vfstbaaJThKROvhjRJqj0yyxomtjD85CDeopF2tl7SOPbS-PRTDRIAjx8tLUkqKCOLWnTIWP5AVnbMhnbvMU-nQttjQUT9aN6jhl-E5njHfR7TyU42hf47yboqQTIqJb-qoDKbfbOSjJOcq4QSMJF0hmT22-usWJuJQhcH0hOWsI8mQ5jKj5_lQtjeKn3a-Jndslce2qbzEl0RDUC0DjjBDH0etjnfb5kXQbjob4oHj4tk-PnVq4tHeNLJJnJZ5mAq_h3tLnrFVC-lefO4qq4ze-o-B5QMX5rnaIQqLU7NHp8xXJC5W6bQ3x7wKUr43bRTLp7sL4JZs56KLUJ1hP-UyN3MWh37JJTTVJO-KKCKMC-GDx5;
BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0;
H_PS_PSSID=19140_1434_18241_17942_18205_18134_17001_17073_15724_12174_18087
HTTP/1.1 200 OK
Server:nginx
Date:Tue,23 Feb 2016 09:35:15 GMT
Content-Type:application/x-javascript
Content-Length:0
Last-Modified:Mon,22Feb 2016 12:58:06GMT
Connection:keep-alive
ETag:"56cb05de-0"
Expires:Tue,23Feb 2016 10:35:15GMT
Cache-Control:max-age=3600
Accept-Ranges:bytes”。
而后在步骤S230中,从解析后的流量数据中提取请求信息,所述请求信息包括请求类型和请求地址。其中请求类型包括GET请求和POST请求,请求地址为URL地址。具体地,上述解析后的报文包括请求的起始行、请求首部和请求主体。根据测试目标,对于GET请求,提取请求起始行和HOST信息,对于POST请求,提取请求起始行、HOST信息和请求主题,这样可以重新组合得到URL地址。例如根据上述解析后的报文提取的请求信息可以如下:
“{‘GET’,
‘http://eclick.baidu.com/a.js?tu=639889&jk=c7944b9bcb44a1be&word=http%3A%2F%2Fzhidao.baidu.com%2Flink%3Furl%3DbsIYeUNZ9wY0t3Pux7R9bUgBUX27T-5aYqqalzsL2ewq6wzeZPdABfvAB0zBqMWsljXRG5WnQUJMj_F-k6gd9ReSYHdYCnvcpqtLEUmpklO&if=1&aw=0&ah=0&pt=18500&it=18500&vt=18124&csp=1280,796&bcl=250,250&pof=250,252&top=845&left=875&total=1&rdm=1456220115114’}”。
提取请求信息后,在步骤S240中,根据待测系统的测试目标,从提取的请求信息中筛选出符合测试目标的测试请求。根据本发明的一个实施方式,可以从提取的请求信息中筛选出具有特定请求地址的请求信息,根据筛选出的请求信息生成对特定请求地址的测试请求。例如,网站的不同URL地址分别对应了不同的模块。以汽车之家为例,http://car.autohome.com.cn/pic表示图片库模块,而http://car.autohome.com.cn/video表示视频模块,因此,通过对url的正则匹配,可以筛选出对特定功能模块的请求,从而实现对特定模块的性能测试。
根据本发明的另一个实施方式,可以将提取的请求信息中请求地址替换成待测系统地址,根据替换后的请求信息生成对待测服务器的测试请求。例如,在研发过程中,会有将系统部署到测试环境的情况,并且可能会部署多个版本,此时可以将从线上生产环境导下的实际流量进行域名替换,例如
http://car.autohome.com.cn/是线上生产环境,测试环境为
http://car1.autohome.com.cn/,http://car2.autohome.com.cn/,
http://car3.autohome.com.cn/等等,因此可以将car替换为carN,就可以实现线上到线下的引流。
根据本发明的另一个实施方式,可以根据提取的请求信息生成预定数目的测试请求。
筛选出符合测试目标的测试请求之后,在步骤S250中,可以设置每秒发送请求数目,该数目指示了每一秒发送至待测系统的请求数目。该每秒发送请求数目(QPS)可以在向用户呈现的如图3所示的图形用户界面进行输入,例如设置为500。
而后在步骤S260中,根据每秒发送请求数目异步发送测试请求至待测系统,以获取测试结果。具体地,测试请求的发送可以通过基于twisted框架下的treq网络库实现,具有异步高并发的特点。下面是使用treq发送GET请求的一个例子:
其中reactor是twisted客户端的一个单例,treq.get或者treq.post分别是发送GET请求与POST请求的异步方法,调用该方法返回的变量d是一个deferred对象。twisted框架使用deferred对象来管理回调函数链,调用deferred的addCallback方法可以将回调函数print_response注册到回调函数链中。
因为发送请求的方法是异步执行,不必等待上一个请求的响应回来就可以发送下一个请求,因此本发明的测试方案通过在两个发送动作之间设置一个预定时间,用来使发送请求的线程睡眠,因而实现了对发送测试请求的定量控制。具体地,发送一个测试请求之后,等待预定时间后再发送下一个测试请求,其中该预定时间根据设置的每秒发送请求数目和发送一个测试请求的机器时间计算而得,即:
machine_time+sleep_time=1/QPS,其中sleep_time为等待的预定时间,machine_time为发送一个测试请求消耗的机器时间,QPS为用户设置的每秒发送请求数目。
此外,由于机器执行发送请求的代码会消耗一部分时间,并且当设置的每秒发送数目较大时,注册回调函数花费的时间也随之增大,发送一个请求所消耗的机器时间相应地增大,因此,根据本发明的一个实施方式,方法200还包括步骤:基于机器时间的变化,调整预定时间。
具体地,可以先获取前一次发送每秒发送请求数目个测试请求的实际用时,而后根据获取的实际用时和当前设置的预定时间计算变化后发送一个测试请求的平均机器时间,再根据计算的平均机器时间和设置的每秒发送请求数目计算新的预定时间。例如,当前的预定时间sleep_time设置为0.1s,每秒发送请求数目QPS设置为10,而发送之前的10个请求共用了1.1s,那么当前的发送一个测试请求的平均机器时间machine_time=1.1/10-0.1=0.01s,所以新的预定时间sleep_time应调整为1/10-0.01=0.09s。这样动态的调整预定时间,可以防止实际的每秒发送请求数目偏离用户设置的每秒发送请求数目。
根据本发明的还有一个实施方式,在基于机器时间的变化调整预定时间之前,根据前一次发送每秒发送请求数目个测试请求的实际用时计算实际的每秒发送请求数目,而后计算实际的每秒发送请求数目与设置的每秒发送请求数目的误差,当实际的每秒发送请求数目与设置的每秒发送请求数目的误差大于误差阈值时,则调整预定时间,其中误差阈值可以为5%。
根据本发明的还有一个实施方式,方法200还可以包括步骤:同时测试请求的响应时间、响应内容和状态码。
图4示出了根据本发明一个示例性实施例的测试装置300的结构图。如图4所示,装置300可以包括流量捕获模块310、流量解析模块320、请求筛选模块330和请求发送模块340。
流量捕获模块310适于捕获网络访问产生的流量数据。流量解析模块320与流量捕获模块310连接,适于解析捕获的流量数据。
请求筛选模块330与流量解析模块320连接,适于从解析后的流量数据中提取请求信息,所述请求信息包括请求类型和请求地址,还适于根据待测系统的测试目标,从提取的请求信息中筛选出符合测试目标的测试请求。该请求一般为http请求,请求类型包括GET请求和POST请求,请求地址为页面入口统一资源定位符(URL)地址。
具体地,根据本发明的一个实施方式,请求筛选模块330适于从提取的请求信息中筛选出具有特定请求地址的请求信息,根据筛选出的请求信息生成对特定请求地址的测试请求。
根据本发明的另一个实施方式,请求筛选模块330还适于将提取的请求信息中请求地址替换成待测系统地址,根据替换后的请求信息生成对待测系统的测试请求。
根据本发明的另一个实施方式,请求筛选模块330还适于根据提取的请求信息生成预定数目的测试请求。
请求发送模块340与请求筛选模块330连接,适于设置每秒发送请求数目,根据该每秒发送请求数目异步发送测试请求至待测系统,以获取测试结果。这里测试请求的异步发送可以通过基于twisted框架下的treq网络库实现。
具体地,请求发送模块340适于发送一个测试请求之后,等待预定时间后发送下一个测试请求,其中预定时间根据设置的每秒发送请求数目和发送一个测试请求的机器时间计算而得。
根据本发明的一个实施方式,预定时间为1秒除以每秒发送请求数目后减去发送一个测试请求的机器时间。
根据本发明的另一个实施方式,请求发送模块340还包括时间调整模块341,适于基于发送一个测试请求的机器时间的变化,调整上述预定时间。具体地,时间调整模块341适于获取前一次发送每秒发送请求数目个测试请求的实际用时,根据获取的实际用时和当前设置的预定时间计算变化后发送一个测试请求的平均机器时间,根据计算的平均机器时间和设置的每秒发送请求数目计算新的预定时间。
其中,根据本发明的另一个实施方式,时间调整模块341还适于在基于机器时间的变化调整预定时间之前,根据前一次发送每秒发送请求数目个测试请求的实际用时计算实际的每秒发送请求数目,计算实际的每秒发送请求数目与设置的每秒发送请求数目的误差,当实际的每秒发送请求数目与设置的每秒发送请求数目的误差大于误差阈值时,则调整预定时间。通常误差阈值为5%。
以上在结合图2和图3说明测试方法200的具体描述中已经对各模块中的相应处理进行了详细解释,这里不再对重复内容进行赘述。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本发明还包括:A6、如A5所述的方法,所述预定时间为1秒除以每秒发送请求数目后减去所述发送一个测试请求的机器时间。A7、如A6所述的方法,还包括:基于所述机器时间的变化,调整所述预定时间。A8、如A7所述的方法,基于机器时间的变化调整预定时间的步骤包括:获取前一次发送每秒发送请求数目个测试请求的实际用时;根据获取的实际用时和当前设置的预定时间计算变化后发送一个测试请求的平均机器时间;根据计算的平均机器时间和设置的每秒发送请求数目计算新的预定时间。A9、如A8所述的方法,还包括:在基于机器时间的变化调整预定时间之前,根据所述前一次发送每秒发送请求数目个测试请求的实际用时计算实际的每秒发送请求数目;计算实际的每秒发送请求数目与设置的每秒发送请求数目的误差;当实际的每秒发送请求数目与设置的每秒发送请求数目的误差大于误差阈值时,调整所述预定时间。A10、如A9所述的方法,其中所述误差阈值为5%。A11、如A1-10中任一项所述的方法,其中所述请求为http请求,所述请求类型包括GET请求和POST请求,请求地址为页面入口统一资源定位符(URL)地址。A12、如A11所述的方法,所述测试请求的异步发送通过基于twisted框架下的treq网络库实现。
B17、如B13所述的装置,所述请求发送模块还适于发送一个测试请求之后,等待预定时间后发送下一个测试请求,其中所述预定时间根据设置的每秒发送请求数目和发送一个测试请求的机器时间计算而得。B18、如B17所述的装置,所述预定时间为1秒除以每秒发送请求数目后减去所述发送一个测试请求的机器时间。B19、如B18所述的装置,所述请求发送模块还包括时间调整模块,适于基于所述机器时间的变化,调整所述预定时间。B20、如B19所述的装置,所述时间调整模块还适于获取前一次发送每秒发送请求数目个测试请求的实际用时;根据获取的实际用时和当前设置的预定时间计算变化后发送一个测试请求的平均机器时间;根据计算的平均机器时间和设置的每秒发送请求数目计算新的预定时间。B21、如B19所述的装置,所述时间调整模块还适于在基于机器时间的变化调整预定时间之前,根据所述前一次发送每秒发送请求数目个测试请求的实际用时计算实际的每秒发送请求数目;计算实际的每秒发送请求数目与设置的每秒发送请求数目的误差;当实际的每秒发送请求数目与设置的每秒发送请求数目的误差大于误差阈值时,调整所述预定时间。B22、如B21所述的装置,其中所述误差阈值为5%。B23、如B13-22中任一项所述的装置,其中所述请求为http请求,所述请求类型包括GET请求和POST请求,请求地址为页面入口统一资源定位符(URL)地址。B24、如B23所述的装置,所述测试请求的异步发送通过基于twisted框架下的treq网络库实现。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种测试方法,包括:
捕获网络访问产生的流量数据;
解析捕获的流量数据;
从解析后的流量数据中提取请求信息,所述请求信息包括请求类型和请求地址;
根据待测系统的测试目标,从提取的请求信息中筛选出符合测试目标的测试请求;
设置每秒发送请求数目;
根据所述每秒发送请求数目异步发送所述测试请求至待测系统,以获取测试结果。
2.如权利要求1所述的方法,所述从提取的请求信息中筛选出符合测试目标的测试请求的步骤包括:
从提取的请求信息中筛选出具有特定请求地址的请求信息;
根据筛选出的请求信息生成对特定请求地址的测试请求。
3.如权利要求1所述的方法,所述从提取的请求信息中筛选出符合测试目标的测试请求的步骤包括:
将提取的请求信息中请求地址替换成待测系统地址;
根据替换后的请求信息生成对待测系统的测试请求。
4.如权利要求1所述的方法,所述从提取的请求信息中筛选出符合测试目标的测试请求的步骤包括:
根据提取的请求信息生成预定数目的测试请求。
5.如权利要求1所述的方法,所述根据每秒发送请求数目异步发送测试请求至待测系统的步骤包括:
发送一个测试请求之后,等待预定时间;
发送下一个测试请求;
其中所述预定时间根据设置的每秒发送请求数目和发送一个测试请求的机器时间计算而得。
6.一种测试装置,包括:
流量捕获模块,适于捕获网络访问产生的流量数据;
流量解析模块,适于解析捕获的流量数据;
请求筛选模块,适于从解析后的流量数据中提取请求信息,所述请求信息包括请求类型和请求地址,还适于根据待测系统的测试目标,从提取的请求信息中筛选出符合测试目标的测试请求;以及
请求发送模块,适于设置每秒发送请求数目,根据所述每秒发送请求数目异步发送所述测试请求至待测系统,以获取测试结果。
7.如权利要求6所述的装置,所述请求筛选模块还适于从提取的请求信息中筛选出具有特定请求地址的请求信息,根据筛选出的请求信息生成对特定请求地址的测试请求。
8.如权利要求13所述的装置,所述请求筛选模块还适于将提取的请求信息中请求地址替换成待测系统地址,根据替换后的请求信息生成对待测系统的测试请求。
9.如权利要求13所述的装置,所述请求筛选模块还适于根据提取的请求信息生成预定数目的测试请求。
10.一种计算设备,包括如权利要求6-9中任一项所述的测试装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610225289.6A CN105915406B (zh) | 2016-04-12 | 2016-04-12 | 一种测试方法、装置和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610225289.6A CN105915406B (zh) | 2016-04-12 | 2016-04-12 | 一种测试方法、装置和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105915406A true CN105915406A (zh) | 2016-08-31 |
CN105915406B CN105915406B (zh) | 2019-10-18 |
Family
ID=56745910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610225289.6A Active CN105915406B (zh) | 2016-04-12 | 2016-04-12 | 一种测试方法、装置和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105915406B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614314A (zh) * | 2018-11-01 | 2019-04-12 | 北京奇虎科技有限公司 | 性能测试方法、装置、服务器及可读存储介质 |
CN110716844A (zh) * | 2019-09-23 | 2020-01-21 | 上海游族信息技术有限公司 | 服务器性能压力测试的加压方法 |
CN113220573A (zh) * | 2021-05-12 | 2021-08-06 | 北京百度网讯科技有限公司 | 用于微服务架构的测试方法、装置和电子设备 |
CN113608949A (zh) * | 2021-08-11 | 2021-11-05 | 盐城金堤科技有限公司 | 压力测试方法和装置、以及存储介质和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001093043A1 (en) * | 2000-03-27 | 2001-12-06 | Accenture Llp | System, method, and article of manufacture for an automated scripting solution for enterprise testing |
US20060136187A1 (en) * | 1999-12-15 | 2006-06-22 | Microsoft Corporation | Server recording and client playback of computer network characteristics |
CN104410546A (zh) * | 2014-11-27 | 2015-03-11 | 北京国双科技有限公司 | 实时处理系统的测试方法和装置 |
CN105024872A (zh) * | 2014-04-25 | 2015-11-04 | 腾讯科技(北京)有限公司 | 网络性能测试的方法及装置 |
CN105207832A (zh) * | 2014-06-13 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 一种服务器压力测试方法和装置 |
CN105446860A (zh) * | 2015-11-11 | 2016-03-30 | 上海欣方智能系统有限公司 | 基于异步并发机制的压力测试系统和测试方法 |
-
2016
- 2016-04-12 CN CN201610225289.6A patent/CN105915406B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136187A1 (en) * | 1999-12-15 | 2006-06-22 | Microsoft Corporation | Server recording and client playback of computer network characteristics |
WO2001093043A1 (en) * | 2000-03-27 | 2001-12-06 | Accenture Llp | System, method, and article of manufacture for an automated scripting solution for enterprise testing |
CN105024872A (zh) * | 2014-04-25 | 2015-11-04 | 腾讯科技(北京)有限公司 | 网络性能测试的方法及装置 |
CN105207832A (zh) * | 2014-06-13 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 一种服务器压力测试方法和装置 |
CN104410546A (zh) * | 2014-11-27 | 2015-03-11 | 北京国双科技有限公司 | 实时处理系统的测试方法和装置 |
CN105446860A (zh) * | 2015-11-11 | 2016-03-30 | 上海欣方智能系统有限公司 | 基于异步并发机制的压力测试系统和测试方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614314A (zh) * | 2018-11-01 | 2019-04-12 | 北京奇虎科技有限公司 | 性能测试方法、装置、服务器及可读存储介质 |
CN109614314B (zh) * | 2018-11-01 | 2024-03-01 | 北京奇虎科技有限公司 | 性能测试方法、装置、服务器及可读存储介质 |
CN110716844A (zh) * | 2019-09-23 | 2020-01-21 | 上海游族信息技术有限公司 | 服务器性能压力测试的加压方法 |
CN113220573A (zh) * | 2021-05-12 | 2021-08-06 | 北京百度网讯科技有限公司 | 用于微服务架构的测试方法、装置和电子设备 |
CN113608949A (zh) * | 2021-08-11 | 2021-11-05 | 盐城金堤科技有限公司 | 压力测试方法和装置、以及存储介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105915406B (zh) | 2019-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271411B (zh) | 报表生成方法、装置、计算机设备及存储介质 | |
CN104917651B (zh) | 监测网络异常的方法及装置 | |
US9537926B1 (en) | Network page latency reduction | |
CN105262760A (zh) | 一种防止恶意访问登录/注册接口的行为的方法和装置 | |
CN108932124A (zh) | 神经网络模型压缩方法、装置、终端设备及存储介质 | |
US20160050128A1 (en) | System and Method for Facilitating Communication with Network-Enabled Devices | |
CN110447215B (zh) | 应用软件恶意行为的动态告警方法和终端 | |
WO2019062405A1 (zh) | 应用程序的处理方法、装置、存储介质及电子设备 | |
CN106850687A (zh) | 用于检测网络攻击的方法和装置 | |
CN105915406A (zh) | 一种测试方法、装置和计算设备 | |
CN110225064A (zh) | 监测僵尸网络攻击行为的方法、装置、设备和存储介质 | |
DE112021004177T5 (de) | Detektion von einem Leistungsrückgang eines Webservice basierend auf Metriken von Gruppen von Benutzerinteraktionen | |
Ayala et al. | An energy efficiency study of web‐based communication in android phones | |
Akram et al. | Security, privacy and trust of user-centric solutions | |
CN104573023B (zh) | 一种网页图片检查方法、装置及计算设备 | |
CN1658570A (zh) | 过程代数指定契约及其性能预测实现度量指定的系统和方法 | |
US20130132552A1 (en) | Application-Aware Quality Of Service In Network Applications | |
WO2019062404A1 (zh) | 应用程序的处理方法、装置、存储介质及电子设备 | |
CN109194706A (zh) | 网络资源拨测方法及终端 | |
CN103634348A (zh) | 终端设备以及发布信息的方法 | |
Li et al. | Characterizing service providers traffic of mobile internet services in cellular data network | |
CN115543202A (zh) | 缓存管理方法、读取方法、系统、电子设备及存储介质 | |
CN115811481A (zh) | 一种交互服务测试方法、装置、计算机设备及存储介质 | |
CN112836141B (zh) | 网络资源访问管理方法、系统、设备及存储介质 | |
CN107508705A (zh) | 一种http元素的资源树构建方法及计算设备 |
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 |