一种测试方法、装置和计算设备的制造方法

文档序号:10555467阅读:507来源:国知局
一种测试方法、装置和计算设备的制造方法
【专利摘要】本发明公开了一种测试方法,该方法包括:捕获网络访问产生的流量数据;解析捕获的流量数据;从解析后的流量数据中提取请求信息,该请求信息包括请求类型和请求地址;根据待测系统的测试目标,从提取的请求信息中筛选出符合测试目标的测试请求;设置每秒发送请求数目;根据该每秒发送请求数目异步发送测试请求至待测系统,以获取测试结果。本发明还公开了一种测试装置和相应的计算设备。
【专利说明】
一种测试方法、装置和计算设备
技术领域
[0001] 本发明涉及计算机技术领域,尤其涉及一种测试方法、装置和计算设备。
【背景技术】
[0002] 压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供 的最大的服务级别的测试。通常为了保证服务器能够安全稳定运行,服务器在上线之前,都 需要进行压力测试。现有地,测试人员通常通过Apache ab,JMeter,LoadRunner等压力测试 工具来对服务器进行压力测试时,通过人为构造不同类型的请求,来模拟线上客户端向服 务器发送的请求,并使用这些构造的请求对服务器进行压力测试。但是由于实际情况下,线 上客户端向服务器发送的请求的类型复杂多样,人为构造的请求无法完全覆盖,无法与线 上的实际情况保持一致,从而导致测试的功能不够全面。
[0003] 因此,需要一种新型的测试方案。

【发明内容】

[0004] 鉴于此,本发明提供了一种新的测试方案,以力图解决或至少缓解上面存在的问 题。
[0005] 根据本发明的一个方面,提供了一种测试方法,包括:捕获网络访问产生的流量数 据;解析捕获的流量数据;从解析后的流量数据中提取请求信息,请求信息包括请求类型和 请求地址;根据待测系统的测试目标,从提取的请求信息中筛选出符合测试目标的测试请 求;设置每秒发送请求数目;根据每秒发送请求数目异步发送所述测试请求至待测系统,以 获取测试结果。
[0006] 可选地,在根据本发明的测试方法中,从提取的请求信息中筛选出符合测试目标 的测试请求的步骤包括:从提取的请求信息中筛选出具有特定请求地址的请求信息;根据 筛选出的请求信息生成对特定请求地址的测试请求。
[0007] 可选地,在根据本发明的测试方法中,从提取的请求信息中筛选出符合测试目标 的测试请求的步骤包括:将提取的请求信息中请求地址替换成待测系统地址;根据替换后 的请求信息生成对待测系统的测试请求。
[0008] 可选地,在根据本发明的测试方法中,从提取的请求信息中筛选出符合测试目标 的测试请求的步骤包括:根据提取的请求信息生成预定数目的测试请求。
[0009] 可选地,在根据本发明的测试方法中,根据每秒发送请求数目异步发送测试请求 至待测系统的步骤包括:发送一个测试请求之后,等待预定时间;发送下一个测试请求;其 中预定时间根据设置的每秒发送请求数目和发送一个测试请求的机器时间计算而得。
[0010] 可选地,在根据本发明的测试方法中,预定时间为1秒除以每秒发送请求数目后减 去发送一个测试请求的机器时间。
[0011] 可选地,在根据本发明的测试方法中,还包括:基于机器时间的变化,调整预定时 间。
[0012] 可选地,在根据本发明的测试方法中,基于机器时间的变化调整预定时间的步骤 包括:获取前一次发送每秒发送请求数目个测试请求的实际用时;根据获取的实际用时和 当前设置的预定时间计算变化后发送一个测试请求的平均机器时间;根据计算的平均机器 时间和设置的每秒发送请求数目计算新的预定时间。
[0013] 可选地,在根据本发明的测试方法中,还包括:在基于机器时间的变化调整预定时 间之前,根据前一次发送每秒发送请求数目个测试请求的实际用时计算实际的每秒发送请 求数目;计算实际的每秒发送请求数目与设置的每秒发送请求数目的误差;当实际的每秒 发送请求数目与设置的每秒发送请求数目的误差大于误差阈值时,调整预定时间。
[0014] 可选地,在根据本发明的测试方法中,其中误差阈值为5%。
[00?5] 可选地,在根据本发明的测试方法中,其中请求为http请求,请求类型包括GET请 求和POST请求,请求地址为页面入口统一资源定位符(URL)地址。
[0016] 可选地,在根据本发明的测试方法中,测试请求的异步发送通过基于twisted框架 下的treq网络库实现。
[0017]根据本发明的另一个方面,提供了一种测试装置,包括:流量捕获模块,适于捕获 网络访问产生的流量数据;流量解析模块,适于解析捕获的流量数据;请求筛选模块,适于 从解析后的流量数据中提取请求信息,请求信息包括请求类型和请求地址,还适于根据待 测系统的测试目标,从提取的请求信息中筛选出符合测试目标的测试请求;以及请求发送 模块,适于设置每秒发送请求数目,根据每秒发送请求数目异步发送测试请求至待测系统, 以获取测试结果。
[0018] 可选地,在根据本发明的测试装置中,请求筛选模块还适于从提取的请求信息中 筛选出具有特定请求地址的请求信息,根据筛选出的请求信息生成对特定请求地址的测试 请求。
[0019] 可选地,在根据本发明的测试装置中,请求筛选模块还适于将提取的请求信息中 请求地址替换成待测系统地址,根据替换后的请求信息生成对待测系统的测试请求。
[0020] 可选地,在根据本发明的测试装置中,请求筛选模块还适于根据提取的请求信息 生成预定数目的测试请求。
[0021 ]可选地,在根据本发明的测试装置中,请求发送模块还适于发送一个测试请求之 后,等待预定时间后发送下一个测试请求,其中预定时间根据设置的每秒发送请求数目和 发送一个测试请求的机器时间计算而得。
[0022] 可选地,在根据本发明的测试装置中,预定时间为1秒除以每秒发送请求数目后减 去发送一个测试请求的机器时间。
[0023] 可选地,在根据本发明的测试装置中,请求发送模块还包括时间调整模块,适于基 于机器时间的变化,调整预定时间。
[0024] 可选地,在根据本发明的测试装置中,时间调整模块还适于获取前一次发送每秒 发送请求数目个测试请求的实际用时;根据获取的实际用时和当前设置的预定时间计算变 化后发送一个测试请求的平均机器时间;根据计算的平均机器时间和设置的每秒发送请求 数目计算新的预定时间。
[0025] 可选地,在根据本发明的测试装置中,时间调整模块还适于在基于机器时间的变 化调整预定时间之前,根据前一次发送每秒发送请求数目个测试请求的实际用时计算实际 的每秒发送请求数目;计算实际的每秒发送请求数目与设置的每秒发送请求数目的误差; 当实际的每秒发送请求数目与设置的每秒发送请求数目的误差大于误差阈值时,调整预定 时间。
[0026] 可选地,在根据本发明的测试装置中,其中误差阈值为5%。
[0027] 可选地,在根据本发明的测试装置中,其中请求为http请求,请求类型包括GET请 求和POST请求,请求地址为页面入口统一资源定位符(URL)地址。
[0028] 可选地,在根据本发明的测试装置中,测试请求的异步发送通过基于twisted框架 下的treq网络库实现。
[0029] 根据本发明的还有一个方面,还提供了一种计算设备,包括根据本发明的测试装 置。
[0030] 根据本发明的测试方案,通过对捕获的网络访问产生的流量数据筛选而得到需要 的测试请求,可以将生产环境的真实流量应用于测试系统中,其中根据特定规则对流量数 据进行筛选,满足了不同测试场景下的测试需求。此外,通过设置每秒发送请求数目,并按 照设置的每秒发送请求数目异步发送筛选出的测试请求,实现了对发送请求的定量控制。
【附图说明】
[0031] 为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方 面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面 旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述 以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的 部件或元素。
[0032] 图1示出了根据本发明一个示例性实施例的计算设备100的结构示意图;
[0033]图2示出了根据本发明一个示例性实施例的测试方法200的示意图;
[0034]图3示出了根据本发明一个示例性实施例的用于用户设置每秒发送请求数目的图 形用户界面的截图;以及
[0035]图4示出了根据本发明一个示例性实施例的测试装置300的结构框图。
【具体实施方式】
[0036] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开 的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例 所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围 完整的传达给本领域的技术人员。
[0037] 图1示出了根据本发明的一个示例性实施例的计算设备100的结构示意图。参照图 1,在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器 104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
[0038] 取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器 ((此)、微控制器(yC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸 如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心 114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、 数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器 104-起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
[0039] 取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易 失性存储器(诸如RAM)、非易失性存储器(诸如R0M、闪存等)或者它们的任何组合。系统存储 器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中, 应用122可以布置为在操作系统上利用程序数据124进行操作。
[0040] 计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口 144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例 的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由 一个或者多个A/V端口 152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外 设接口 144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于 经由一个或者多个I/O端口 158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸 输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设 备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口 164与一 个或者多个其他计算设备162通过网络通信链路的通信。
[0041] 网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波 或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可 以包括任何信息递送介质。"调制数据信号"可以这样的信号,它的数据集中的一个或者多 个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以 包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外 (IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存 储介质和通信介质二者。
[0042] 计算设备100可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设 备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个 人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备100还可以 实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算设备100 被配置为执行根据本发明的测试方法200,其中应用122包括根据本发明的测试装置300。
[0043] 为了解决现有技术测试功能不够全面这一问题,本发明采用现网引流工具,对线 上服务器接收到的线上客户端发送的请求进行复制,并将复制的请求引流至待测系统,由 待测系统根据该请求进行功能测试。由于引流至待测系统的请求是线上客户端实际发送的 请求,请求类型多样,所以测试的功能较为全面。然而将线上服务器接收到的所有请求引流 到测试服务器,只能实现对测试服务器整体性能的评估,无法实现对测试服务器中具体功 能的测试,也无法对回放的流量进行灵活的定量控制。因此本发明进一步设置了每秒发送 请求数目,以此来实现对回放流量的定量控制。
[0044] 图2示出了根据本发明一个示例性实施例的测试方法200的流程图。
[0045] 如图2所示,方法200始于步骤S210,在步骤S210中,捕获网络访问产生的流量数 据。具体地,可使用工具TcpDump捕获生产环境的流量数据,捕获的流量数据通常为pcap格 式数据包。TcpDump是捕获网络层数据包的工具,它可以用来捕获特定端口的数据包,这样 就可以获取通过本机80端口,即使用了http连接的数据包。一个或者多个数据包组成一个 http请求报文,数据包的内容是二进制格式,不可读,所以需要解析工具来将http请求解析 出来。
[0046]在步骤S220中,解析捕获的流量数据。具体地,可以使用开源工具pcap-parser解 析捕获的流量包,得到http请求的具体内容。例如解析出来的一个完整的http请求的报文 可以如下:
[0047] "[10.168.39.32:59981]------>[123.125.115.164:80]
[0048] GET
[0049] /a.js?tu = 639889&jk = c7944b9bcb44albe&word = http%3A%2F% 2Fzhidao.baidu.com%2Flink%3Furl%3DbsIYeUNZ9wY0t3Pux7R9bUgBUX27T-5aYqqalzsL2ewq6wzeZPdABfvAB0zBqMffsljXRG5ffnQUJMj_F-k6gd9ReSYHdYCnvcpqtLEUmpkl0&if = l&aw = 0&ah = 0&pt = 18500&it = 18500&vt= 18124& csp = 1280,796&bcl = 250,250&pof = 250,252&top = 845&lef t = 875&total = l&rdm = 1456220115114HTTP/1.1
[0050] Host:eel ick.baidu.com
[0051] Connection: keep-alive
[0052] Cache-Control:max-age = 0
[0053] User-Agent:Mozilla/5.0(Macintosh;Intel Mac OS X 10_10_5)
[0054] AppleffebKit/537.36(KHTML,like Gecko)Chrome/48.0.2564.109Safari/537.36
[0055] Accept:*/*
[0056] Referer:
[0057] http ://zhidao.baidu.com/1ink?url = bsIYeUNZ9wY0t3Pux7R9bUgBUX27T-5aYqqalzsL2ewq6wzeZPdABfvAB0zBqMffsljXRG5ffnQUJMj_F-k6gd9ReSYHdYCnvcpqtLEUmpkl0
[0058] Accept-Encoding:gzip, deflate,sdch
[0059 ] Accept-Language: zh~CN ,zh;q = 0.8,en;q = 0.6
[0060] Cookie :BAIDUID = 8E4A0F24C6EF0E03480F5FA9E2B2288E: FG = 1;
[0061] PSTM= 1440148522 ;BIDUPSID = 28C8AD848DC7335030BACC09CD28AAB4;MCITY = -207 %3A;
[0062] BDUSS=E9xbjQ2U2xFZzdyemw4c29weTRFN2R3dffFlRDdjMGowSFdLUGhrVE5HV3ZnffffR XQVFBQUFBJCQAAAAAAAAAAAEAAACNgzI3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK~0Xlav9F9WV;BDSFRCVID= 140sJeC67GbPnNR419DV-_F8EeK5g_rTH6aP_AcC0Mz3Z70VhNdMEG0Pt01QpYD-VCGHogKK0g0TH65P;
[0063] H_BDCLCKID_SF = JJKtoKLhJIvbfP0kbJ0oh4-0-fuX5-RLfb7nKP0F510TJh0Rj-vq060BybAJBqLfLI5Bffp0S-q-bDnT0e5bke6cffjGDetTDsb5vfstbaaJThKR0vhjRJqj0yyxomtjD85CDeopF2tl7S0PbS-PRTDRIAjx8tLUkqKC0LffnTIWP5AVnbMhnbvMU-nQttjQUT9aN6jhl-E5njHfR7TyU42hf47yboqQTIqJb-qoDKbfb0SjJ0cq4QSMJF0hmT22-usffJuJQhcH0h0ffsI8mQ5jKj5_lQtjeKn3a-Jndslce2qbzE10RDUC0DjjBDHOetjnfb5kXQbjob4oHj4tk-PnVq4tHeNLJJnJZ5mAq_ h3tLnrFVC-lef04qq4ze-〇-B5QMX5rnaIQqLU7NHp8xXJC5W6bQ3x7wKUr43bRTLp7sL4JZs56KLUJlhP-UyN3Mffh37JJTTVJ0-KKCKMC-⑶x5;
[0064] BDRCVFR[feffjIVr5u3D]=I67x6TjHwwYfO;
[0065] H_PS_PSSID = 19140_1434_18241_17942_18205_18134_17001_17073_15724_ 12174_18087
[0066] HTTP/1.1 200 OK
[0067] Server:nginx
[0068] Date:Tue,23 Feb 2016 09:35:15 GMT
[0069] Content-Type: application/x-javascript
[0070] Content-Length :0
[0071] Last-Modified:Mon,22Feb 2016 12:58:06GMT
[0072] Connection: keep-alive
[0073] ETag:"56cb05de_0〃
[0074] Expires:Tue,23Feb 2016 10:35:15GMT
[0075] Cache-Control:max-age = 3600
[0076] Accept-Ranges: bytes"。
[0077] 而后在步骤S230中,从解析后的流量数据中提取请求信息,所述请求信息包括请 求类型和请求地址。其中请求类型包括GET请求和POST请求,请求地址为URL地址。具体地, 上述解析后的报文包括请求的起始行、请求首部和请求主体。根据测试目标,对于GET请求, 提取请求起始行和HOST信息,对于POST请求,提取请求起始行、HOST信息和请求主题,这样 可以重新组合得到URL地址。例如根据上述解析后的报文提取的请求信息可以如下:
[0078] "{'GET',
[0079] (http://eclick.baidu. com/a. js?tu = 639889&jk = c7944b9bcb44albe&word = http % 3A% 2F% 2Fzhidao · baidu · com% 2F1 ink% 3Furl % 3DbsIYeUNZ9wY0t3Pux7R9bUgBUX27T-5aYqqalzsL2ewq6wzeZPdABfvAB0zBqMffsljXRG5ffnQUJMj_F-k6gd9ReSYHdYCnvcpqtLEUmpkl0&if = l&aw = 0&ah = 0&pt = 18500&it = 18500&vt= 18124& csp = 1280,796&bcl = 250,250&pof = 250,252&top = 845&lef t = 875&total = l&rdm = 1456220115114'}"。
[0080] 提取请求信息后,在步骤S240中,根据待测系统的测试目标,从提取的请求信息中 筛选出符合测试目标的测试请求。根据本发明的一个实施方式,可以从提取的请求信息中 筛选出具有特定请求地址的请求信息,根据筛选出的请求信息生成对特定请求地址的测试 请求。例如,网站的不同URL地址分别对应了不同的模块。以汽车之家为例,http:// car ·autohome · com. cn/pic表不图片库模块,而http: //car · autohome · com. cn/video表不 视频模块,因此,通过对url的正则匹配,可以筛选出对特定功能模块的请求,从而实现对特 定模块的性能测试。
[0081] 根据本发明的另一个实施方式,可以将提取的请求信息中请求地址替换成待测系 统地址,根据替换后的请求信息生成对待测服务器的测试请求。例如,在研发过程中,会有 将系统部署到测试环境的情况,并且可能会部署多个版本,此时可以将从线上生产环境导 下的实际流量进行域名替换,例如
[0082] http: //car · autohome · com · cn/是线上生产环境,测试环境为
[0083] http://carl. autohome. com.cn/,http://car2. autohome. com.cn/,
[0084] http: //car 3 · autohome · com · cn/等等,因此可以将car替换为carN,就可以实现线 上到线下的引流。
[0085] 根据本发明的另一个实施方式,可以根据提取的请求信息生成预定数目的测试请 求。
[0086] 筛选出符合测试目标的测试请求之后,在步骤S250中,可以设置每秒发送请求数 目,该数目指示了每一秒发送至待测系统的请求数目。该每秒发送请求数目(QPS)可以在向 用户呈现的如图3所示的图形用户界面进行输入,例如设置为500。
[0087] 而后在步骤S260中,根据每秒发送请求数目异步发送测试请求至待测系统,以获 取测试结果。具体地,测试请求的发送可以通过基于twisted框架下的treq网络库实现,具 有异步高并发的特点。下面是使用treq发送GET请求的一个例子: 4idef main(reactor, *args): d = treq.getChttpi/'/www.baiciu.eom')
[0088] d.addCallback(prim_response) return d "。
[0089] 其中reactor是twisted客户端的一个单例,treq · get或者treq · post分别是发送 GET请求与POST请求的异步方法,调用该方法返回的变量d是一个def erred对象。twi sted框 架使用deferred对象来管理回调函数链,调用deferred的addCal Iback方法可以将回调函 数print_response注册到回调函数链中。
[0090] 因为发送请求的方法是异步执行,不必等待上一个请求的响应回来就可以发送下 一个请求,因此本发明的测试方案通过在两个发送动作之间设置一个预定时间,用来使发 送请求的线程睡眠,因而实现了对发送测试请求的定量控制。具体地,发送一个测试请求之 后,等待预定时间后再发送下一个测试请求,其中该预定时间根据设置的每秒发送请求数 目和发送一个测试请求的机器时间计算而得,即:
[0091 ] machine_time + sleep_time = l/QPS,其中 sleep_time为等待的预定时间, machinejime为发送一个测试请求消耗的机器时间,QPS为用户设置的每秒发送请求数目。 [0092]此外,由于机器执行发送请求的代码会消耗一部分时间,并且当设置的每秒发送 数目较大时,注册回调函数花费的时间也随之增大,发送一个请求所消耗的机器时间相应 地增大,因此,根据本发明的一个实施方式,方法200还包括步骤:基于机器时间的变化,调 整预定时间。
[0093]具体地,可以先获取前一次发送每秒发送请求数目个测试请求的实际用时,而后 根据获取的实际用时和当前设置的预定时间计算变化后发送一个测试请求的平均机器时 间,再根据计算的平均机器时间和设置的每秒发送请求数目计算新的预定时间。例如,当前 的预定时间设置为0.1 s,每秒发送请求数目QPS设置为10,而发送之前的10个请 求共用了 I · ls,那么当前的发送一个测试请求的平均机器时间machine_time = l · 1/10-0.1 =0 .Ols,所以新的预定时间sleep_time应调整为1/10-0.01 = 0.09s。这样动态的调整预定 时间,可以防止实际的每秒发送请求数目偏离用户设置的每秒发送请求数目。
[0094]根据本发明的还有一个实施方式,在基于机器时间的变化调整预定时间之前,根 据前一次发送每秒发送请求数目个测试请求的实际用时计算实际的每秒发送请求数目,而 后计算实际的每秒发送请求数目与设置的每秒发送请求数目的误差,当实际的每秒发送请 求数目与设置的每秒发送请求数目的误差大于误差阈值时,则调整预定时间,其中误差阈 值可以为5%。
[0095] 根据本发明的还有一个实施方式,方法200还可以包括步骤:同时测试请求的响应 时间、响应内容和状态码。
[0096] 图4示出了根据本发明一个示例性实施例的测试装置300的结构图。如图4所示,装 置300可以包括流量捕获模块310、流量解析模块320、请求筛选模块330和请求发送模块 340 〇
[0097] 流量捕获模块310适于捕获网络访问产生的流量数据。流量解析模块320与流量捕 获模块310连接,适于解析捕获的流量数据。
[0098] 请求筛选模块330与流量解析模块320连接,适于从解析后的流量数据中提取请求 信息,所述请求信息包括请求类型和请求地址,还适于根据待测系统的测试目标,从提取的 请求信息中筛选出符合测试目标的测试请求。该请求一般为http请求,请求类型包括GET请 求和POST请求,请求地址为页面入口统一资源定位符(URL)地址。
[0099]具体地,根据本发明的一个实施方式,请求筛选模块330适于从提取的请求信息中 筛选出具有特定请求地址的请求信息,根据筛选出的请求信息生成对特定请求地址的测试 请求。
[0100]根据本发明的另一个实施方式,请求筛选模块330还适于将提取的请求信息中请 求地址替换成待测系统地址,根据替换后的请求信息生成对待测系统的测试请求。
[0101] 根据本发明的另一个实施方式,请求筛选模块330还适于根据提取的请求信息生 成预定数目的测试请求。
[0102] 请求发送模块340与请求筛选模块330连接,适于设置每秒发送请求数目,根据该 每秒发送请求数目异步发送测试请求至待测系统,以获取测试结果。这里测试请求的异步 发送可以通过基于twisted框架下的treq网络库实现。
[0103] 具体地,请求发送模块340适于发送一个测试请求之后,等待预定时间后发送下一 个测试请求,其中预定时间根据设置的每秒发送请求数目和发送一个测试请求的机器时间 计算而得。
[0104] 根据本发明的一个实施方式,预定时间为1秒除以每秒发送请求数目后减去发送 一个测试请求的机器时间。
[0105] 根据本发明的另一个实施方式,请求发送模块340还包括时间调整模块341,适于 基于发送一个测试请求的机器时间的变化,调整上述预定时间。具体地,时间调整模块341 适于获取前一次发送每秒发送请求数目个测试请求的实际用时,根据获取的实际用时和当 前设置的预定时间计算变化后发送一个测试请求的平均机器时间,根据计算的平均机器时 间和设置的每秒发送请求数目计算新的预定时间。
[0106] 其中,根据本发明的另一个实施方式,时间调整模块341还适于在基于机器时间的 变化调整预定时间之前,根据前一次发送每秒发送请求数目个测试请求的实际用时计算实 际的每秒发送请求数目,计算实际的每秒发送请求数目与设置的每秒发送请求数目的误 差,当实际的每秒发送请求数目与设置的每秒发送请求数目的误差大于误差阈值时,则调 整预定时间。通常误差阈值为5%。
[0107] 以上在结合图2和图3说明测试方法200的具体描述中已经对各模块中的相应处理 进行了详细解释,这里不再对重复内容进行赘述。
[0108] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施 例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结 构和技术,以便不模糊对本说明书的理解。
[0109] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在 上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施 例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保 护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的 权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵 循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都 作为本发明的单独实施例。
[0110] 本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组 件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备 不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个 子模块。 Com]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地 改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单 元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或 子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何 组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任 何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权 利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代 替。
[0112]本发明还包括:A6、如A5所述的方法,所述预定时间为1秒除以每秒发送请求数目 后减去所述发送一个测试请求的机器时间。A7、如A6所述的方法,还包括:基于所述机器时 间的变化,调整所述预定时间。A8、如A7所述的方法,基于机器时间的变化调整预定时间的 步骤包括:获取前一次发送每秒发送请求数目个测试请求的实际用时;根据获取的实际用 时和当前设置的预定时间计算变化后发送一个测试请求的平均机器时间;根据计算的平均 机器时间和设置的每秒发送请求数目计算新的预定时间。A9、如A8所述的方法,还包括:在 基于机器时间的变化调整预定时间之前,根据所述前一次发送每秒发送请求数目个测试请 求的实际用时计算实际的每秒发送请求数目;计算实际的每秒发送请求数目与设置的每秒 发送请求数目的误差;当实际的每秒发送请求数目与设置的每秒发送请求数目的误差大于 误差阈值时,调整所述预定时间。A10、如A9所述的方法,其中所述误差阈值为5% Jll、如 Al-IO中任一项所述的方法,其中所述请求为http请求,所述请求类型包括GET请求和POST 请求,请求地址为页面入口统一资源定位符(URL)地址。A12、如All所述的方法,所述测试请 求的异步发送通过基于twisted框架下的treq网络库实现。
[0113] B17、如B13所述的装置,所述请求发送模块还适于发送一个测试请求之后,等待预 定时间后发送下一个测试请求,其中所述预定时间根据设置的每秒发送请求数目和发送一 个测试请求的机器时间计算而得。B18、如B17所述的装置,所述预定时间为1秒除以每秒发 送请求数目后减去所述发送一个测试请求的机器时间。B19、如B18所述的装置,所述请求发 送模块还包括时间调整模块,适于基于所述机器时间的变化,调整所述预定时间。B20、如 B19所述的装置,所述时间调整模块还适于获取前一次发送每秒发送请求数目个测试请求 的实际用时;根据获取的实际用时和当前设置的预定时间计算变化后发送一个测试请求的 平均机器时间;根据计算的平均机器时间和设置的每秒发送请求数目计算新的预定时间。 B21、如B19所述的装置,所述时间调整模块还适于在基于机器时间的变化调整预定时间之 前,根据所述前一次发送每秒发送请求数目个测试请求的实际用时计算实际的每秒发送请 求数目;计算实际的每秒发送请求数目与设置的每秒发送请求数目的误差;当实际的每秒 发送请求数目与设置的每秒发送请求数目的误差大于误差阈值时,调整所述预定时间。 B22、如B21所述的装置,其中所述误差阈值为5%』23、如B13-22中任一项所述的装置,其中 所述请求为http请求,所述请求类型包括GET请求和POST请求,请求地址为页面入口统一资 源定位符(URL)地址。B24、如B23所述的装置,所述测试请求的异步发送通过基于twisted框 架下的treq网络库实现。
[0114] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例 中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的 范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任 意之一都可以以任意的组合方式来使用。
[0115] 此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行 所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法 元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在 此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行 的功能。
[0116] 如在此所使用的那样,除非另行规定,使用序数词"第一"、"第二"、"第三"等等来 描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必 须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
[0117] 尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域 内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意, 本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限 定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本 技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本 发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
【主权项】
1. 一种测试方法,包括: 捕获网络访问产生的流量数据; 解析捕获的流量数据; 从解析后的流量数据中提取请求信息,所述请求信息包括请求类型和请求地址; 根据待测系统的测试目标,从提取的请求信息中筛选出符合测试目标的测试请求; 设置每秒发送请求数目; 根据所述每秒发送请求数目异步发送所述测试请求至待测系统,以获取测试结果。2. 如权利要求1所述的方法,所述从提取的请求信息中筛选出符合测试目标的测试请 求的步骤包括: 从提取的请求信息中筛选出具有特定请求地址的请求信息; 根据筛选出的请求信息生成对特定请求地址的测试请求。3. 如权利要求1所述的方法,所述从提取的请求信息中筛选出符合测试目标的测试请 求的步骤包括: 将提取的请求信息中请求地址替换成待测系统地址; 根据替换后的请求信息生成对待测系统的测试请求。4. 如权利要求1所述的方法,所述从提取的请求信息中筛选出符合测试目标的测试请 求的步骤包括: 根据提取的请求信息生成预定数目的测试请求。5. 如权利要求1所述的方法,所述根据每秒发送请求数目异步发送测试请求至待测系 统的步骤包括: 发送一个测试请求之后,等待预定时间; 发送下一个测试请求; 其中所述预定时间根据设置的每秒发送请求数目和发送一个测试请求的机器时间计 算而得。6. -种测试装置,包括: 流量捕获模块,适于捕获网络访问产生的流量数据; 流量解析模块,适于解析捕获的流量数据; 请求筛选模块,适于从解析后的流量数据中提取请求信息,所述请求信息包括请求类 型和请求地址,还适于根据待测系统的测试目标,从提取的请求信息中筛选出符合测试目 标的测试请求;以及 请求发送模块,适于设置每秒发送请求数目,根据所述每秒发送请求数目异步发送所 述测试请求至待测系统,以获取测试结果。7. 如权利要求6所述的装置,所述请求筛选模块还适于从提取的请求信息中筛选出具 有特定请求地址的请求信息,根据筛选出的请求信息生成对特定请求地址的测试请求。8. 如权利要求13所述的装置,所述请求筛选模块还适于将提取的请求信息中请求地址 替换成待测系统地址,根据替换后的请求信息生成对待测系统的测试请求。9. 如权利要求13所述的装置,所述请求筛选模块还适于根据提取的请求信息生成预定 数目的测试请求。10. -种计算设备,包括如权利要求6-9中任一项所述的测试装置。
【文档编号】H04L12/26GK105915406SQ201610225289
【公开日】2016年8月31日
【申请日】2016年4月12日
【发明人】宋昊
【申请人】北京齐尔布莱特科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1