流量压力测试方法和装置制造方法及图纸

技术编号:21059800 阅读:28 留言:0更新日期:2019-05-08 06:45
本申请提出一种流量压力测试方法和装置,其中方法包括:获取压力测试请求,测试请求中包括目标压力值;创建与目标压力值匹配的协程,其中N个协程运行在一个线程中,N为大于1的正整数;通过协程,向被测系统发送请求。该方法通过在一个线程上创建多个协程,不仅减少了花费成本,还满足了压力测试的高并发量需求,改善了压力流量的测试效果,提升了用户的使用体验。

【技术实现步骤摘要】
流量压力测试方法和装置
本申请涉及计算机
,尤其涉及一种流量压力测试方法和装置。
技术介绍
目前,压力测试是对被测系统不断地施加压力的测试,通过确定一个系统的工作瓶颈或者不能承载的性能点,获得系统能够提供的最大服务压力的级别测试,或者在设定时间周期内能够保证工作稳定性的验证测试。例如测试一个Web站点在大量的负荷下,何时出现系统响应失败等。相关技术中,通常是通过建立同步线程模型,实现对被测系统进行压力测试。其中,同步线程模型的建立一般是在操作系统中产生一个进程,并通过进程产生若干线程。当进行压力测试请求时,从若干线程中获取一个空闲线程并使用该线程产生新的请求。但是,线程的数量受到设备内存的限制,例如一台2G的设备,最多只能启动2048个线程,那么模拟200多万并发请求,则需要1000台设备。因此专利技术人认为,通过建立同步线程模型对被测系统进行压力测试,不仅花费成本高,而且不容易实现大的并发量,使得测试效果不佳。
技术实现思路
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本申请的第一个目的在于提出一种流量压力测试方法,该方法通过在一个线程上创建多个协程,不仅减少了花费成本,还满足了压力测试的高并发量需求,改善了压力流量的测试效果,提升了用户的使用体验。本申请的第二个目的在于提出一种流量压力测试装置。本申请的第三个目的在于提出一种流量压力测试器件。本申请的第四个目的在于提出一种计算机可读存储介质。为达上述目的,本申请第一方面实施例提出了一种流量压力测试方法,该方法包括:获取压力测试请求,所述测试请求中包括目标压力值;创建与所述目标压力值匹配的协程,其中N个协程运行在一个线程中,N为大于1的正整数;通过所述协程,向被测系统发送请求。本申请实施例提供的流量压力测试方法中,通过获取压力测试请求,创建与目标压力值匹配的协程,并通过创建的协程,向被测系统发送请求。由此,通过在一个线程上创建多个协程,不仅减少了花费成本,还满足了压力测试的高并发量需求,改善了压力流量的测试效果,提升了用户的使用体验。另外,本申请上述实施例提出的流量压力测试方法还可以具有如下附加的技术特征:在本申请的一个实施例中,所述向被测系统发送请求之后,还包括:在每个线程的运行时间段内,若确定第一协程在执行过程中,产生IO操作,则记录当前栈的上下文信息;启动并运行第二协程,其中,第二协程与所述第一协程运行在相同的线程内。在本申请的另一个实施例中,所述记录当前栈的上下文信息之后,还包括:在获取到所述第一协程的IO操作返回值时,确定当前处于运行状态的线程;根据所述当前栈的上下文信息,在任一当前处于运行状态的线程中恢复执行所述第一协程。在本申请的另一个实施例中,所述向被测系统发送请求之后,还包括:根据所述协程的运行过程,确定所述被测系统的流量压力测试结果。在本申请的另一个实施例中,所述创建与所述目标压力值匹配的协程,包括:在至少两台服务器中创建与所述目标压力值匹配的协程。为达上述目的,本申请第二方面实施例提出了一种流量压力测试装置,包括:获取模块,用于获取压力测试请求,所述测试请求中包括目标压力值;创建模块,用于创建与所述目标压力值匹配的协程,其中N个协程运行在一个线程中,N为大于1的正整数;发送模块,用于通过所述协程,向被测系统发送请求。本申请实施例提供的流量压力测试装置中,通过获取压力测试请求,创建与目标压力值匹配的协程,并通过创建的协程,向被测系统发送请求。由此,通过在一个线程上创建多个协程,不仅减少了花费成本,还满足了压力测试的高并发量需求,改善了压力流量的测试效果,提升了用户的使用体验。另外,本申请上述实施例提出的流量压力测试装置还可以具有如下附加的技术特征:在本申请的一个实施例中,在所述发送模块之后,还包括:记录模块,用于在每个线程的运行时间段内,若确定第一协程在执行过程中,产生IO操作,则记录当前栈的上下文信息;启动模块,用于启动并运行第二协程,其中,第二协程与所述第一协程运行在相同的线程内。在本申请的另一个实施例中,在所述记录模块之后,还包括:第一确定模块,用于在获取到所述第一协程的IO操作返回值时,确定当前处于运行状态的线程;恢复模块,用于根据所述当前栈的上下文信息,在任一当前处于运行状态的线程中恢复执行所述第一协程。在本申请的另一个实施例中,在所述发送模块之后,还包括:第二确定模块,用于根据所述协程的运行过程,确定所述被测系统的流量压力测试结果。在本申请的另一个实施例中,所述创建模块,具体包括:在至少两台服务器中创建与所述目标压力值匹配的协程。为达到上述目的,本申请第三方面实施例提出了一种流量压力测试器件,包括:存储器、处理器及通信端口;所述通信端口,用于实现设备间的数据通信;所述存储器,用于存储可执行程序代码;所述处理器,用于读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现第一方面实施例所述的流量压力测试方法。本申请实施例提供的流量压力测试器件中,通过获取压力测试请求,创建与目标压力值匹配的协程,并通过创建的协程,向被测系统发送请求。由此,通过在一个线程上创建多个协程,不仅减少了花费成本,还满足了压力测试的高并发量需求,改善了压力流量的测试效果,提升了用户的使用体验。为达到上述目的,本申请第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现第一方面实施例所述的流量压力测试方法。本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1是本申请一个实施例的流量压力测试方法的流程图;图2是本申请另一个实施例的流量压力测试方法的流程图;图3是本申请一个实施例的流量压力测试装置的结构示意图;图4是本申请另一个实施例的流量压力测试装置的结构示意图;图5是本申请一个实施例的流量压力测试器件的结构示意图。具体实施方式下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。本申请主要针对现有技术中,通过同步线程模型对被测系统进行压力测试时,存在的创建线程花费成本高,同时不容易实现大的并发量,使得测试效果不佳等问题,提出一种流量压力测试方法。本申请提出的流量压力测试方法,根据获取的压力测试请求中的目标压力值,创建与目标压力值匹配的协程,然后通过创建的协程,向被测系统发送请求。由此,通过在一个线程上创建多个协程,不仅减少了消费成本,还满足了压力测试的高并发量需求,改善了压力流量的测试效果,提升了用户的使用体验。下面结合附图对本申请实施例提出的流量压力测试方法进行详细描述。图1是本申请的一个实施例的流量压力测试方法的流程图。如图1所示,本申请流量压力测试方法可以包括以下步骤:步骤101,获取压力测试请求,测试请求中包括目标压力值。具体的,本申请实施例提供的流量压力测试方法,可以由本申请提供的流量压力测试装置执行,上述流量压力测试装置设备于本文档来自技高网...

【技术保护点】
1.一种流量压力测试方法,其特征在于,包括:获取压力测试请求,所述测试请求中包括目标压力值;创建与所述目标压力值匹配的协程,其中N个协程运行在一个线程中,N为大于1的正整数;通过所述协程,向被测系统发送请求。

【技术特征摘要】
1.一种流量压力测试方法,其特征在于,包括:获取压力测试请求,所述测试请求中包括目标压力值;创建与所述目标压力值匹配的协程,其中N个协程运行在一个线程中,N为大于1的正整数;通过所述协程,向被测系统发送请求。2.如权利要求1所述的方法,其特征在于,所述向被测系统发送请求之后,还包括:在每个线程的运行时间段内,若确定第一协程在执行过程中,产生IO操作,则记录当前栈的上下文信息;启动并运行第二协程,其中,第二协程与所述第一协程运行在相同的线程内。3.如权利要求2所述的方法,其特征在于,所述记录当前栈的上下文信息之后,还包括:在获取到所述第一协程的IO操作返回值时,确定当前处于运行状态的线程;根据所述当前栈的上下文信息,在任一当前处于运行状态的线程中恢复执行所述第一协程。4.如权利要求1-3任一所述的方法,其特征在于,所述向被测系统发送请求之后,还包括:根据所述协程的运行过程,确定所述被测系统的流量压力测试结果。5.如权利要求1-3任一所述的方法,其特征在于,所述创建与所述目标压力值匹配的协程,包括:在至少两台服务器中创建与所述目标压力值匹配的协程。6.一种流量压力测试装置,其特征在于,包括:获取模块,用于获取压力测试请求,所述测试请求中包括目标压力值;创建模块,用于创建与所述目标压力值匹配的协程,其中N个协程运行在一个线程中,N为大于1的正整数;发送模块,用于通过所述协程,向被测系统发送请求。7...

【专利技术属性】
技术研发人员:马亮
申请(专利权)人:网联清算有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1