《一种压力测试的方法和装置.pdf》由会员分享,可在线阅读,更多相关《一种压力测试的方法和装置.pdf(12页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN103544098A43申请公布日20140129CN103544098A21申请号201210238208822申请日20120710G06F11/3620060171申请人百度在线网络技术北京有限公司地址100085北京市海淀区上地十街10号百度大厦72发明人张亮朱星陶仕敏74专利代理机构北京鸿德海业知识产权代理事务所普通合伙11412代理人袁媛54发明名称一种压力测试的方法和装置57摘要本发明提供了一种压力测试的方法和装置,首先进行初始化初始化EPOLL的读连接池和写连接池,依据预先设置的用户定制参数申请数据区缓存,并从压力文件中加载数据包至缓存;对于与被测试模块建立的。
2、连接设置采用电平触发模式读数据和写数据并设置读数据和写数据的触发事件,将所述连接添加到读连接池和写连接池;统计线程定时统计压力状况,并定时通过设置标识继续发送的全局变量有效来激发压力数据的发送;发送压力线程监听到写数据的触发事件后,如果所述全局变量有效,则轮询发送缓存中的压力数据至被测试模块直至达到本发送周期的压力个数,将全局变量设为无效。本发明能够满足高测试压力的需求,使测试压力达到物理网卡的极限成为可能。51INTCL权利要求书2页说明书7页附图2页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书7页附图2页10申请公布号CN103544098ACN103544098A。
3、1/2页21一种压力测试的方法,其特征在于,该方法包括进行初始化,包括初始化EPOLL的读连接池和写连接池,以及,依据预先设置的用户定制参数申请数据区缓存,并从压力文件中加载数据包至所述缓存;对于与被测试模块建立的连接设置采用电平触发LT模式读数据和写数据并设置读数据和写数据的触发事件,将所述连接添加到读连接池和写连接池;创建的统计线程定时统计压力状况,并定时通过设置标识继续发送的全局变量有效来激发压力数据的发送;创建的发送压力线程监听到写数据的触发事件后,如果标识继续发送的全局变量有效,则轮询发送缓存中的压力数据至被测试模块直至达到本发送周期的压力个数,将所述全局变量设为无效,继续等待所述全。
4、局变量有效;创建的接收分析线程监听到读数据的触发事件后,将接收到的来自所述被测试模块的数据包写入接收文件。2根据权利要求1所述的方法,其特征在于,所述压力文件由二进制数据包构成,还包括各二进制数据包的大小信息。3根据权利要求1所述的方法,其特征在于,在所述初始化之前,该方法还包括打开文件句柄数限制,将终端线路挂断、中断进程、软件终止信号以及建立核心文件终止进程信号中的至少一种添加至触发强制退出或异常退出的信号。4根据权利要求1所述的方法,其特征在于,所述依据预先设置的用户定制参数申请数据区缓存,并从压力文件中加载数据包至所述缓存为依据用户定制参数中每次轮询发送的数据包个数申请数据区缓存,从压力。
5、文件中读取对应个数的数据包载入所述缓存,并进一步申请索引缓存区为缓存中的压力数据建立索引;所述发送压力线程在轮询发送缓存中压力数据时,依据所述索引发送缓存中的各数据包。5根据权利要求1所述的方法,其特征在于,该方法还包括创建的修复连接线程定期清理断开的连接并补充建立新连接以维护与被测试模块的连接数量保持稳定压力。6根据权利要求1所述的方法,其特征在于,所述写数据的触发事件包括与被测试模块的连接建立或SOCKET写缓冲区未写满的可写状态;所述读数据的触发事件包括接收到被测试模块返回的数据包。7根据权利要求1所述的方法,其特征在于,所述发送压力线程如果确定本次压力测试发送的压力数据达到用户定制参数。
6、中最多发送的数据包个数,则结束本次压力测试,删除用户定制参数并释放本次压力测试占用的系统资源。8一种压力测试的装置,其特征在于,该装置包括初始化单元,用于初始化EPOLL的读连接池和写连接池,以及,依据预先设置的用户定制参数申请数据区缓存,并从压力文件中加载数据包至所述缓存;连接设置单元,用于对与被测试模块建立的连接设置采用电平触发LT模式读数据和写数据并设置读数据和写数据的触发事件,将所述连接添加到读连接池和写连接池;统计单元,用于定时统计压力状况,并定时通过设置标识继续发送的全局变量有效来激发压力数据的发送;权利要求书CN103544098A2/2页3发送压力单元,用于监听到写数据的触发事。
7、件后,如果标识继续发送的全局变量有效,则轮询发送缓存中的压力数据至被测试模块直至达到本发送周期的压力个数,将所述全局变量设为无效,继续等待所述全局变量有效;接收分析线程,用于监听到读数据的触发事件后,将接收到的来自所述被测试模块的数据包写入接收文件。9根据权利要求8所述的装置,其特征在于,所述压力文件由二进制数据包构成,还包括各二进制数据包的大小信息。10根据权利要求8所述的装置,其特征在于,该装置还包括预处理单元,用于打开文件句柄数限制,将终端线路挂断、中断进程、软件终止信号以及建立核心文件终止进程信号中的至少一种添加至触发强制退出或异常退出的信号。11根据权利要求8所述的装置,其特征在于,。
8、所述初始化单元依据用户定制参数中每次轮询发送的数据包个数申请数据区缓存,从压力文件中读取对应个数的数据包载入所述缓存,并进一步申请索引缓存区为缓存中的压力数据建立索引;所述发送压力单元在轮询发送缓存中压力数据时,依据所述索引发送缓存中的各数据包。12根据权利要求8所述的装置,其特征在于,该装置还包括修复连接单元,用于定期清理断开的连接并补充建立新连接以维护与被测试模块的连接数量保持稳定压力。13根据权利要求8所述的装置,其特征在于,所述写数据的触发事件包括与被测试模块的连接建立或SOCKET写缓冲区未写满的可写状态;所述读数据的触发事件包括接收到被测试模块返回的数据包。14根据权利要求8所述的。
9、装置,其特征在于,该装置还包括结束测试单元;所述发送压力单元如果确定本次压力测试发送的压力数据达到用户定制参数中最多发送的数据包个数,则停止操作并触发所述结束测试单元;所述结束测试单元,用于受到触发后,删除用户定制参数并释放本次压力测试占用的系统资源。权利要求书CN103544098A1/7页4一种压力测试的方法和装置【技术领域】0001本发明涉及计算机应用技术领域,特别涉及一种压力测试的方法和装置。【背景技术】0002压力测试是软件测试工作的重要一部分,用于测试程序的处理能力。通常在进行压力测试时,需要一个压力工具发送数据包给被测试程序进行处理,查看被测试程序在当前压力下的性能。0003现有。
10、无论是应用于WINDOWS还是LINUX的压力测试工具,均采用以设定的时间间隔发送设定数量的数据包的方式进行压力测试,但这种方式往往很难满足高测试压力需求,也很难将网卡的吞吐量用尽,即很难达到物理网卡的极限。【发明内容】0004本发明提供了一种压力测试的方法和装置,以便于满足高测试压力的需求,使测试压力达到物理网卡的极限成为可能。0005具体技术方案如下0006一种压力测试的方法,该方法包括0007进行初始化,包括初始化EPOLL的读连接池和写连接池,以及,依据预先设置的用户定制参数申请数据区缓存,并从压力文件中加载数据包至所述缓存;0008对于与被测试模块建立的连接设置采用电平触发LT模式读。
11、数据和写数据并设置读数据和写数据的触发事件,将所述连接添加到读连接池和写连接池;0009创建的统计线程定时统计压力状况,并定时通过设置标识继续发送的全局变量有效来激发压力数据的发送;0010创建的发送压力线程监听到写数据的触发事件后,如果标识继续发送的全局变量有效,则轮询发送缓存中的压力数据至被测试模块直至达到本发送周期的压力个数,将所述全局变量设为无效,继续等待所述全局变量有效;0011创建的接收分析线程监听到读数据的触发事件后,将接收到的来自所述被测试模块的数据包写入接收文件。0012根据本发明一优选实施例,所述压力文件由二进制数据包构成,还包括各二进制数据包的大小信息。0013根据本发明。
12、一优选实施例,在所述初始化之前,该方法还包括0014打开文件句柄数限制,将终端线路挂断、中断进程、软件终止信号以及建立核心文件终止进程信号中的至少一种添加至触发强制退出或异常退出的信号。0015根据本发明一优选实施例,所述依据预先设置的用户定制参数申请数据区缓存,并从压力文件中加载数据包至所述缓存为依据用户定制参数中每次轮询发送的数据包个数申请数据区缓存,从压力文件中读取对应个数的数据包载入所述缓存,并进一步申请索引缓存区为缓存中的压力数据建立索引;说明书CN103544098A2/7页50016所述发送压力线程在轮询发送缓存中压力数据时,依据所述索引发送缓存中的各数据包。0017根据本发明一。
13、优选实施例,该方法还包括0018创建的修复连接线程定期清理断开的连接并补充建立新连接以维护与被测试模块的连接数量保持稳定压力。0019根据本发明一优选实施例,所述写数据的触发事件包括与被测试模块的连接建立或SOCKET写缓冲区未写满的可写状态;所述读数据的触发事件包括接收到被测试模块返回的数据包。0020根据本发明一优选实施例,所述发送压力线程如果确定本次压力测试发送的压力数据达到用户定制参数中最多发送的数据包个数,则结束本次压力测试,删除用户定制参数并释放本次压力测试占用的系统资源。0021一种压力测试的装置,该装置包括0022初始化单元,用于初始化EPOLL的读连接池和写连接池,以及,依据。
14、预先设置的用户定制参数申请数据区缓存,并从压力文件中加载数据包至所述缓存;0023连接设置单元,用于对与被测试模块建立的连接设置采用电平触发LT模式读数据和写数据并设置读数据和写数据的触发事件,将所述连接添加到读连接池和写连接池;0024统计单元,用于定时统计压力状况,并定时通过设置标识继续发送的全局变量有效来激发压力数据的发送;0025发送压力单元,用于监听到写数据的触发事件后,如果标识继续发送的全局变量有效,则轮询发送缓存中的压力数据至被测试模块直至达到本发送周期的压力个数,将所述全局变量设为无效,继续等待所述全局变量有效;0026接收分析线程,用于监听到读数据的触发事件后,将接收到的来自。
15、所述被测试模块的数据包写入接收文件。0027根据本发明一优选实施例,所述压力文件由二进制数据包构成,还包括各二进制数据包的大小信息。0028根据本发明一优选实施例,该装置还包括预处理单元,用于打开文件句柄数限制,将终端线路挂断、中断进程、软件终止信号以及建立核心文件终止进程信号中的至少一种添加至触发强制退出或异常退出的信号。0029根据本发明一优选实施例,所述初始化单元依据用户定制参数中每次轮询发送的数据包个数申请数据区缓存,从压力文件中读取对应个数的数据包载入所述缓存,并进一步申请索引缓存区为缓存中的压力数据建立索引;0030所述发送压力单元在轮询发送缓存中压力数据时,依据所述索引发送缓存中。
16、的各数据包。0031根据本发明一优选实施例,该装置还包括0032修复连接单元,用于定期清理断开的连接并补充建立新连接以维护与被测试模块的连接数量保持稳定压力。0033根据本发明一优选实施例,所述写数据的触发事件包括与被测试模块的连接建立或SOCKET写缓冲区未写满的可写状态;所述读数据的触发事件包括接收到被测试模块返回的数据包。说明书CN103544098A3/7页60034根据本发明一优选实施例,该装置还包括结束测试单元;0035所述发送压力单元如果确定本次压力测试发送的压力数据达到用户定制参数中最多发送的数据包个数,则停止操作并触发所述结束测试单元;0036所述结束测试单元,用于受到触发后。
17、,删除用户定制参数并释放本次压力测试占用的系统资源。0037由以上技术方案可以看出,本发明一方面采用EPOLL模型中的LT模式进行压力数据的发送以及返回数据的接收,另一方面将压力数据载入缓存,采用轮询的方式从缓存中发送数据,从而能够充分利用多连接高速发送压力数据,满足高测试压力需求,使测试压力达到物理网卡的极限成为可能。【附图说明】0038图1为本发明实施例一提供的压力测试的方法流程图;0039图2为本发明实施例二提供的压力测试的装置结构图。【具体实施方式】0040为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。0041实施例一、0042在形成压力工具。
18、时,首先配置压力文件,该压力文件即压力工具的数据来源,在本发明实施例中是构造的二进制数据包。该压力文件的内容格式很简单,每个单位均由数据包大小信息和二进制数据包构成。该压力文件屏蔽了数据包的差异,如果每个单位设置前4字节为数据包大小信息,则压力工具在后续压力测试过程中发送数据包时,可以首先读取前4个字节确定数据包大小,然后读取数据包发送给被测试程序,针对每个数据包的发送均是如此。0043用户在进行压力测试时,首先需要定制压力工具,即设置用户定制参数,包括被测试程序对应的目的地址(通常是IP地址和端口,有些私有协议可能略有不同)、发送压力(即每秒发送的数据包个数)、最多发送的数据包个数、压力数据。
19、个数(即每次轮询发送的数据包个数,范围在压力文件中二进制数据包的个数范围内)、压力文件路径、接收文件路径、数据包发送时间间隔等。0044在用户完成压力工具的定制后,就可以采用压力工具进行压力测试。图1为本发明实施例一提供的压力测试的方法流程图,如图1所示,该方法可以包括0045步骤101打开文件句柄数限制,设置触发退出的信号列表。0046由于在本发明实施例的后续实现中采用EPOLL技术会涉及到连接池技术,当创建多个连接时,句柄数的限制至少要大于连接所需数量,因此,为了防止因句柄数限制导致压力测试失败,可以在本步骤首先可以通过系统底层接口打开文件句柄数限制,如果打开失败就退出压力测试流程,如果打。
20、开成功,则执行后续流程。此处打开文件句柄数限制可以采用将文件句柄数限制设置为一个不可能达到的大数值,例如设置为10万个句柄。0047设置触发退出的信号列表就是注册需要捕捉的信号,如果捕捉到信号列表中的信号则退出压力测试流程,用于强制退出或者异常时的安全退出。其中信号列表中可以包括说明书CN103544098A4/7页7但不限于终端线路挂断、中断进程、软件终止信号以及建立核心文件终止进程信号等。强制退出和异常退出是LINUX内核的已有功能,在此处只需要将需要捕捉的信号中增加压力测试涉及到的内容即可。0048本步骤的执行考虑的是压力测试执行过程中是否顺畅的问题,不是本发明所必须的步骤,仅是优选步骤。
21、。0049步骤102进行初始化,包括初始化EPOLL的读连接池和写连接池,以及,依据用户定制参数申请数据区缓存,并从压力文件中将对应个数的压力数据加载至缓存。0050在本发明实施例的压力测试方法中使用了EPOLL技术,首先对EPOLL技术进行简单介绍。EPOLL是LINUX内核为处理大批量句柄而作了改进的POLL,是LINUX下多路复用IO接口的SELECT/POLL的增强版本。EPOLL技术能够显著提高程序在大量并发连接中只有少量活跃情况下系统CPU的占用率,一方面因为它不会复用文件描述符集合来传递结果而在每次等待事件之前都必须重新准备要监听的文件描述符集,另一方面就是获取事件的时候,无需遍。
22、历整个被监听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入准备READY队列的描述符集即可。EPOLL提供两种模式电平触发(LT,LEVELTRIGGERED)模式和边沿触发(ET,EDGETRIGGERED)模式,在本发明实施例中采用的是IO事件触发的LT模式。0051另外,在本发明实施例中采用了连接池技术,连接池是创建和管理一个连接的缓冲池的技术,这些连接池能够被任何需要的线程使用,即连接池允许闲置的连接被需要的线程使用。0052根据用户定制参数中的压力数据个数,即每次轮询发送的数据包个数,申请数据区缓存。例如,压力文件中有1万个数据包,用户定制参数中压力数据个数为100,则首先依据。
23、数据包大小计算100个数据包在压力文件中占用的字节数,然后申请足够的缓存用于载入压力文件中的该100个数据包。0053除此之外,还可以进一步申请索引缓存区,为缓存中的压力数据建立索引。该索引包括两个字段一个记录数据包的大小,一个记录该数据包在缓存中的起始位置,分别为压力数据中的各数据包建立索引,在后续发送压力数据的过程中,直接依据建立的索引轮询发送这些数据包,省略了计算缓存偏移的步骤。0054需要说明的是,如果需要轮询压力文件中所有的数据包,则可以将压力数据个数设置为压力文件中的数据包总数。如果用户在用户定制参数中设置了最多发送的数据包个数,则在轮询发送数据包的过程中如果达到了最多发送的数据包。
24、个数,则结束发送。0055步骤103对于与被测试模块建立的连接设置采用LT模式读数据和写数据,并设置读数据和写数据的触发事件,将连接添加到读连接池和写连接池。0056建立与被测试模块的连接后,初始化SOCKET选项,设置采用LT模式读数据和写数据。注册触发事件,将接收到被测试单元返回的数据包作为读数据的触发事件添加到读连接池;注册触发事件,将与被测试模块的连接建立(其中还可以包括验证成功等其他关于连接的操作)或者SOCKET写缓冲区未写满的可写状态作为写数据的触发事件,然后将建立的连接添加到读连接池和写连接池。0057步骤104创建修复连接线程定期清理断开的连接并补充建立新连接以维护与被测试模。
25、块的连接数量保持稳定压力。说明书CN103544098A5/7页80058创建的修复连接线程会周期性遍历所有创建的会话,如果会话的连接断开就修复该会话,为该会话创建新的连接。本线程是用于保持稳定压力的优选方式。0059步骤105创建的统计线程定时统计压力状况并定时通过设置标识继续发送的全局变量有效来激发压力数据的发送。0060统计的压力状况包括活动连接数、当前发送的数据包个数、总共发送的数据包个数、当前接收的数据包个数、总共接收的数据包个数等中的一种或几种的组合。0061一方面统计线程用于压力状况的统计,另一方面也作为压力起搏器,定时激发一次压力的发送,具体是通过设置标识继续发送的全局变量有效。
26、。例如,可以每秒统计一次压力状况,然后更新该全局变量为有效。0062步骤106创建的发送压力线程监听写数据的触发事件,如果标识继续发送的全局变量有效,则轮询发送缓存中的压力数据直至达到该发送周期的压力个数,将该全局变量设为无效,重新转至步骤106,直至本次压力测试发送的压力数据达到最多发送的数据包个数,执行步骤108。0063一旦统计线程将标识继续发送的全局变量有效,则发送压力线程遍历缓存中的索引,在可用的连接上将缓存中的数据包发送到被测试模块,如果发送的数据包个数达到该发送周期的压力个数,则将全局变量设为无效,等待统计线程的下一秒激活,才能继续发送压力。例如,压力发送线程的发送持续时长为1秒。
27、,由用户定制参数中的发送压力(即每秒发送的数据包个数)可以得到该发送周期的能够发送的数据包个数,即压力个数。0064步骤107接收分析线程监听读数据的触发事件,一旦触发即接收到被测试模块返回的数据包,则将接收到的数据包写入到接收文件。该接收文件可以用于压力测试的结果分析。0065由于在压力测试过程中,向被测试模块发送压力数据后,被测试模块会返回数据包,通常这是交替执行的过程,因此,步骤106和步骤107通常也是交替执行的过程。发送压力线程和接收分析线程只要监听到对应的触发事件就执行对应的操作,没有固定的先后顺序。0066步骤108结束本次压力测试,删除用户定制参数,并释放本次压力测试占用的系统。
28、资源。0067释放的系统资源包括缓存、与被测试模块的连接、占用的线程等。0068以上是对本发明所提供的方法进行的描述,下面通过实施例二对本发明所提供的装置进行详细描述。0069实施例二、0070图2为本发明实施例二提供的压力测试的装置结构图,在形成该压力测试装置时,首先配置压力文件,该压力文件即压力工具的数据来源,在本发明实施例中是构造的二进制数据包。该压力文件的内容格式很简单,每个单位均由数据包大小信息和二进制数据包构成。如图2所示,该装置可以包括预处理单元200、初始化单元201、连接设置单元202、统计单元203、发送压力单元204和接收分析线程205。0071预处理单元200,用于打开。
29、文件句柄数限制,将终端线路挂断、中断进程、软件终止信号以及建立核心文件终止进程信号中的至少一种添加至触发强制退出或异常退出的信号。说明书CN103544098A6/7页90072由于在本发明实施例的后续实现中采用EPOLL技术会涉及到连接池技术,当创建多个连接时,句柄数的限制至少要大于连接所需数量,因此,为了防止因句柄数限制导致压力测试失败,预处理单元200首先可以通过系统底层接口打开文件句柄数限制。0073设置触发退出的信号列表就是注册需要捕捉的信号,如果捕捉到信号列表中的信号则退出压力测试流程,用于强制退出或者异常时的安全退出。其中信号列表中可以包括但不限于终端线路挂断、中断进程、软件终止。
30、信号以及建立核心文件终止进程信号等。强制退出和异常退出是LINUX内核的已有功能,在此处只需要将需要捕捉的信号中增加压力测试涉及到的内容即可。0074预处理单元200的执行考虑的是压力测试执行过程中是否顺畅的问题,仅是优选结构。0075初始化单元201,用于初始化EPOLL的读连接池和写连接池,以及,依据预先设置的用户定制参数申请数据区缓存,并从压力文件中加载数据包至缓存。0076用户在进行压力测试时,首先需要定制压力工具,即设置用户定制参数,包括被测试程序对应的目的地址(通常是IP地址和端口,有些私有协议可能略有不同)、发送压力(即每秒发送的数据包个数)、最多发送的数据包个数、压力数据个数(。
31、即每次轮询发送的数据包个数,范围在压力文件中二进制数据包的个数范围内)、压力文件路径、接收文件路径、数据包发送时间间隔等。0077根据用户定制参数中的压力数据个数,即每次轮询发送的数据包个数,初始化单元201申请数据区缓存。除此之外,还可以进一步申请索引缓存区,为缓存中的压力数据建立索引。该索引包括两个字段一个记录数据包的大小,一个记录该数据包在缓存中的起始位置,分别为压力数据中的各数据包建立索引,在后续发送压力数据的过程中,直接依据建立的索引轮询发送这些数据包,省略了计算缓存偏移的步骤。0078连接设置单元202,用于对与被测试模块建立的连接设置采用LT模式读数据和写数据,并设置读数据和写数。
32、据的触发事件,将连接添加到读连接池和写连接池。0079建立与被测试模块的连接后,初始化SOCKET选项,设置采用LT模式读数据和写数据。注册触发事件,将接收到被测试单元返回的数据包作为读数据的触发事件添加到读连接池;注册触发事件,将与被测试模块的连接建立(其中还可以包括验证成功等其他关于连接的操作)或SOCKET写缓冲区未写满的可写状态作为写数据的触发事件添加到写连接池。0080统计单元203,用于定时统计压力状况,并定时通过设置标识继续发送的全局变量有效来激发压力数据的发送。0081统计的压力状况包括活动连接数、当前发送的数据包个数、总共发送的数据包个数、当前接收的数据包个数、总共接收的数据。
33、包个数等中的一种或几种的组合。0082一方面统计单元203用于压力状况的统计,另一方面也作为压力起搏器,定时激发一次压力的发送,具体是通过设置标识继续发送的全局变量有效。例如,可以每秒统计一次压力状况,然后更新该全局变量为有效。0083发送压力单元204,用于监听到写数据的触发事件后,如果标识继续发送的全局变量有效,则轮询发送缓存中的压力数据至被测试模块直至达到本发送周期的压力个数,将全局变量设为无效,继续等待全局变量有效。0084接收分析线程205,用于监听到读数据的触发事件后,将接收到的来自被测试模块说明书CN103544098A7/7页10的数据包写入接收文件。该接收文件可以用于压力测试。
34、的结果分析。0085另外,为了保持压力测试的稳定压力,该装置还可以包括修复连接单元206,用于定期清理断开的连接并补充建立新连接以维护与被测试模块的连接数量保持稳定压力。0086另外,该装置还可以包括结束测试单元207。0087发送压力单元204如果确定本次压力测试发送的压力数据达到用户定制参数中最多发送的数据包个数,则停止操作并触发结束测试单元207。0088结束测试单元207,用于受到触发后,删除用户定制参数并释放本次压力测试占用的系统资源。0089释放的系统资源包括缓存、与被测试模块的连接、占用的线程等。0090由以上描述可以看出,本发明提供的方法和装置具备以下优点00911)本发明一方。
35、面采用EPOLL模型中的LT模式进行压力数据的发送以及返回数据的接收,另一方面将压力数据载入缓存,采用轮询的方式从缓存中发送数据,从而能够充分利用多连接高速发送压力数据,满足高测试压力需求,使测试压力达到物理网卡的极限成为可能。实验证明,本发明能够提供10W连接的同时每秒50W个数据包的压力,能够将网卡吞吐量用尽。00922)通过建立修复连接线程定期修复断开的连接以保持稳定压力。00933)本发明可以扩展支持各种基于TCP连接的应用层协议,应用范围广,只要是通过IP和端口建立TCP连接的应用协议均支持。00944)本发明屏蔽了数据包结构的差异,可以根据需求任意构造二进制数据包进行压力测试。0095以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。说明书CN103544098A101/2页11图1说明书附图CN103544098A112/2页12图2说明书附图CN103544098A12。