CN112564996A - 压力测试流量调度、控制方法、设备以及计算机可读介质 - Google Patents

压力测试流量调度、控制方法、设备以及计算机可读介质 Download PDF

Info

Publication number
CN112564996A
CN112564996A CN201910919570.3A CN201910919570A CN112564996A CN 112564996 A CN112564996 A CN 112564996A CN 201910919570 A CN201910919570 A CN 201910919570A CN 112564996 A CN112564996 A CN 112564996A
Authority
CN
China
Prior art keywords
flow
timing
task
rule
flow control
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.)
Pending
Application number
CN201910919570.3A
Other languages
English (en)
Inventor
王有东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910919570.3A priority Critical patent/CN112564996A/zh
Publication of CN112564996A publication Critical patent/CN112564996A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • H04L47/225Determination of shaping rate, e.g. using a moving window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种压力测试流量调度、控制方案,该方案可以向用户提供控制界面,而后获取用户在控制界面创建的压力测试任务、以及输入的关于压力测试任务的多个流量控制规则,以供生成定时任务,定时任务可以发送至施压设备,以使述施压设备在定时时间根据流量信息输出用于压力测试的流量,由于多个流量控制规则可以用于生成定时任务,而定时任务包含了定时时间的流量信息,用以控制施压设备在定时时间根据流量信息输出用于压力测试的流量,因此对于用户而言,仅需要在创建压力测试任务时一次输入多条流量控制规则,以供组合出定时任务,即可控制施压设备根据流量信息模拟出流量频繁变化的复杂场景,从而便捷地实现符合实际场景的压力测试。

Description

压力测试流量调度、控制方法、设备以及计算机可读介质
技术领域
本申请涉及信息技术领域,尤其涉及一种压力测试流量调度、控制方法、设备以及计算机可读介质。
背景技术
随着信息技术的发展,服务提供商能够通过互联网为用户提供越来越多的服务。为了确保服务***的质量,会需要对服务***进行压力测试,一般会通过控制施压设备模拟实际用户产生的流量,测试服务***在类似流量下的性能。在实际场景中,由于来自用户的流量会随时间发生频繁的变化,例如在某些高峰时段用户流量会急剧增加,而在另一些时段则会急剧减少等,由此会导致服务***在实际场景中所承载的流量呈现十分复杂的曲线。
目前的压力测试工具仅支持手动调整测试流量或者按照指定间隔简单的递增或减少流量。若采用人工手动变更流量的方式,测试过程中需要测试人员频繁设置,操作繁琐,并且人工介入的成本较大。而按照指定间隔递增或减少流量,虽然无需测试人员频繁设置,简化了操作,但是仅可以覆盖了流量阶梯状变化这一种场景,无法模拟出实际场景中流量频繁变化的复杂场景。
申请内容
本申请的一个目的是提供一种压力测试流量调度、控制的方案,用以解决现有方案中用户无法在压力测试中便捷地模拟流量复杂变化场景的问题。
本申请实施例中提供了一种压力测试流量调度方法,该方法包括:
获取多个流量控制规则;
根据所述多个流量控制规则生成定时任务,所述定时任务包含定时时间的流量信息;
将所述定时任务发送至施压设备,以使述施压设备在定时时间根据所述流量信息输出用于压力测试的流量。
本申请实施例中提供了一种压力测试流量控制方法,该方法包括:
向用户提供控制界面;
获取用户在所述控制界面创建的压力测试任务、以及输入的关于所述压力测试任务的多个流量控制规则,所述多个流量控制规则用于生成定时任务,所述定时任务包含定时时间的流量信息,用以控制施压设备在定时时间根据所述流量信息输出用于压力测试的流量。
本申请实施例还提供了一种压力测试流量调度设备,该设备包括:
数据获取模块,用于获取多个流量控制规则;
数据处理模块,用于根据所述多个流量控制规则生成定时任务,所述定时任务包含定时时间的流量信息;
数据发送模块,用于将所述定时任务发送至施压设备,以使述施压设备在定时时间根据所述流量信息输出用于压力测试的流量。
本申请实施例还提供了一种压力测试流量控制设备,该设备包括:
交互模块,用于向用户提供控制界面;
数据获取模块,用于获取用户在所述控制界面创建的压力测试任务、以及输入的关于所述压力测试任务的多个流量控制规则,所述多个流量控制规则用于生成定时任务,所述定时任务包含定时时间的流量信息,用以控制施压设备在定时时间根据所述流量信息输出用于压力测试的流量。
此外,本申请实施例还提供了一种计算设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行所述压力测试流量调度方法。
本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机可读指令可被处理器执行以实现所述压力测试流量调度方法。
本申请实施例提供的压力测试流量调度方案中,可以获取多个流量控制规则,然后根据所述多个流量控制规则生成定时任务,将所述定时任务发送至施压设备后,以使述施压设备在定时时间根据所述流量信息输出用于压力测试的流量,由于所述定时任务包含定时时间的流量信息,并且定时任务是通过多个流量控制规则组合生成的,因此能够使得定时任务所包含定时时间的流量信息模拟出流量频繁变化的复杂场景,从而实现符合实际场景的压力测试。
此外,本申请实施例提供的压力测试流量控制方案,可以向用户提供控制界面,而后获取用户在所述控制界面创建的压力测试任务、以及输入的关于所述压力测试任务的多个流量控制规则,由于所述多个流量控制规则可以用于生成定时任务,而所述定时任务包含了定时时间的流量信息,用以控制施压设备在定时时间根据所述流量信息输出用于压力测试的流量,因此对于用户而言,仅需要在创建压力测试任务时一次输入多条流量控制规则,以供组合出定时任务,即可控制施压设备根据流量信息模拟出流量频繁变化的复杂场景,从而便捷地实现符合实际场景的压力测试。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的一种压力测试流量调度方法的处理流程图;
图2为本申请实施例中进行压力测试时的一种实际流量变化情况的示意图;
图3为本申请实施例中进行压力测试时的另一种实际流量变化情况的示意图;
图4为本申请实施例中进行压力测试时的一种脉冲形式的流量变化情况的示意图;
图5为本申请实施例中进行压力测试时的一种正弦波形式的流量变化情况的示意图;
图6为本申请实施例中进行压力测试时的另一种正弦波形式的流量变化情况的示意图;
图7为本申请实施例提供的一种压力测试流量调度设备的结构示意图;
图8为采用了本申请实施例方案实现流量调度、控制的一种压力测试***的示意图;
图9为本申请实施例提供的一种计算设备的结构示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的装置或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请实施例提供了一种压力测试流量调度方法,该方法可以获取多个流量控制规则,然后根据所述多个流量控制规则生成定时任务,将所述定时任务发送至施压设备后,以使述施压设备在定时时间根据所述流量信息输出用于压力测试的流量,由于所述定时任务包含定时时间的流量信息,并且定时任务是通过多个流量控制规则组合生成的,因此能够使得定时任务所包含定时时间的流量信息模拟出流量频繁变化的复杂场景,从而实现符合实际场景的压力测试。
在实现压力测试流量调度方法时,其执行主体具体实现时可以包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
图1示出了本申请实施例提供的一种压力测试流量调度方法,其中,该方法包括:
步骤S101,获取多个流量控制规则。所述流量控制规则包含了用于确定在特定时间施压设备进行压力测试的流量的相关信息,例如该流量控制规则可以是使得测试流量在特定的时间增加或者减少预设值,或者是在当前的流量满足何种条件时对流量进行相应的调整等。
步骤S102,根据所述多个流量控制规则生成定时任务,所述定时任务包含定时时间的流量信息。定时任务可以被提供给施压设备,从而控制施压设备在定时时间根据所述流量信息输出用于压力测试的流量,因此对于用户而言,仅需要在创建压力测试任务时一次输入多条流量控制规则,以供组合出定时任务,即可控制施压设备根据流量信息模拟出流量频繁变化的复杂场景,从而便捷地实现符合实际场景的压力测试。
在本申请的一些实施例中,通过对多个流量控制规则的组合所生成的定时任务包含定时时间的流量信息,所述定时时间是基于流量控制规则所确定的、需要对压力测试的流量进行调整的时间点,而定时时间的流量信息是指在该调整的时间点所调整的流量值。例如,本申请实施例中的一个定时任务t1是在16:30:20这一时间点将压力测试的流量调整为1000,由此其所包含的定时时间的流量信息为:16:30:20、1000,可以理解为在16:30:20这一时间点将流量设置为1000。
在实际场景中,可以基于流量控制规则确定的定时任务可以是多个,由此可以在多个定时任务对应的定时时间持续对压力测试的流量进行调整,使得模拟出流量频繁变化的复杂场景。在本申请的一些实施例中,每个流量控制规则至少包括用于确定定时时间的第一规则信息和用于确定流量信息的第二规则信息。
通过第一规则信息可以确定需要对流量进行调整的定时时间,例如可以包括延迟时间、间隔时间、执行次数等,其中,所述延迟时间是指首次执行流量调整的时间,可以确定对应于该流量控制规则的首个定时时间,间隔时间是指后续每次执行的间隔,可以确定对应于该流量控制规则的后续定时时间,执行次数是指基于该流量控制规则执行流量调整的次数,可以确定对应于该流量控制规则的定时时间的数量。在特定情况下若需要永远执行,则可以设定执行次数为无限次。例如,若某一流量控制规则的第一规则信息中,包含的延迟时间、时间间隔和执行次数信息分别为200s、10s和100次,由此可以确定该流量控制规则对应的定时任务的首次定时时间为200秒之后,后续的每个10秒均为一个定时时间,如210秒、220秒……等,一共执行100次。
通过第二规则信息可以确定在每个定时时间对进行调整的流量值,例如可以包括调整规则、初始值等。其中,所述调整规则是指在每个定时时间对流量值进行调整的计算规则,例如可以是与时间相关的规则,或者可以是与与历史流量相关的规则,也可以是与时间、历史流量都相关的二元动态参数规则。在实际场景中,所述调整规则可以采用与时间和/或历史流量相关的函数表达式来表示,例如600+500·sin(t/240·2·π)即可表示一个与时间相关的正弦波形式的流量调整规则,last+50则表示一个与历史流量(上次调整后的流量值last)相关的递增形式的调整规则,if(last>50)then return 50,表示一个与历史流量相关的条件判定形式的调整规则。而所述初始值则可以用于设置首次调整时的流量值,可以与部分调整规则结合使用,以完成流量的调整,例如可以将流量的初始值设定为50。
由此,通过流量控制规则中包括第一规则信息和第二规则信息,可以解析出对应的定时任务。
步骤S103,将所述定时任务发送至施压设备,以使述施压设备在定时时间根据所述流量信息输出用于压力测试的流量。由于各个流量控制规则相互独立,由此可以确定相应的定时任务,每个定时任务均用于在对应的定时时间对流量进行相应的调整,其组合之后可以模拟出复杂的流量变化场景,从而实现符合实际场景的压力测试。
本申请的一些实施例中,在获取多个流量控制规则时,可以先获取用户输入的原始规则,然后根据所述原始规则解析获得编排任务集。所述编排任务集中包括了多个编排任务,各个编排任务之间相互独立,每个编排任务中包含相应的流量控制规则。例如,用户提供的原始规则R可以采用字符串的形式,设备在获取字符串之后,通过对字符串进行解析,可以获得编排任务集,编排任务集中的每个编排任务都具有各自的属性。这些属性可以表示所述的第一规则信息和第二规则信息,从而构成每个编排任务的流量控制规则。例如,本实施例中,可以通过解析原始规则所获得的编排任务集中可以包含编排任务r1、r2和r3,每个编排任务包括了以下几项属性:延迟时间、间隔时间、编排规则、执行次数、是否永远执行、是否重置、初始化值等。
以r1为例,其属性中的延迟时间为10s、间隔时间为10s、执行次数为5、是否永远执行为否,编排规则为:last+10、是否重置为是,初始化值为20,其中延迟时间、间隔时间、执行次数、是否永远执行可以构成流量控制规则的第一规则信息,而编排规则、是否重置、初始化值则构成了流量控制规则中的第二规则信息。而编排任务r2属性中的延迟时间为60s、间隔时间为10s、执行次数为5、是否永远执行为否,编排规则为:last-10,是否重置为否,初始化值为空;编排任务r3属性中的延迟时间为110s、间隔时间为10s、执行次数为5、是否永远执行为是,编排规则为:last+t/10,是否重置为否,初始化值为空。由此,基于该原始规则R所解析获得的编排任务集,总共可以确定15个定时任务,定时任务对应的定时时间分别为10s、20s、30s、……、140s、150s。将所述定时任务发送至施压设备后,可以使得施压设备在定时时间根据所述流量信息输出用于压力测试的流量,图2即为本实施例中压力测试的流量的示意图。
在实际场景中,根据原始规则R的不同,可以获得不同的编排任务集,其中编排任务所包含的流量控制信息也各不相同,由此可以组合出各种不同的流量变化情况,例如图3至图6均为使用本申请实施例提供的方案在压力测试时实现流量调度所模拟的流量变化情况的示意图,由此可以模拟包含周期性、脉冲性、以及其它与时间序列相关度较高的流量变化场景。
在本申请的一些实施例中,调度设备根据所述多个流量控制规则生成定时任务,而后将所述定时任务发送至施压设备,以使述施压设备在定时时间根据所述流量信息输出用于压力测试的流量。实际场景中,调度设备可以逐个或者逐批次生成定时任务并将其发送给施压设备执行,由此可以在复杂场景中避免同时生成所有定时任务所造成的短时高负载。在本实施例中,可以基于当前时间判断是否存在下一个定时时间,并在存在下一个定时时间时,根据所述流量控制规则生成对应于下一个定时时间的第一定时任务,所述第一定时任务包含下一个定时时间的流量信息。例如,以前述包含编排任务r1、r2和r3的编排任务集为例,若当前时间为本次压力测试的起始时间9:00:00,由此可知,下一个定时时间即为9:00:10,该时间对应的流量值为last+10=30,由此可以确定第一定时任务t即为在9:00:10将压力测试的流量调整为30。
在此场景下,调度设备会在第一定时任务的下一个定时时间达到后,向第一定时任务发送至施压设备,以使述施压设备根据所述流量信息输出用于压力测试的流量。调度设备将该第一定时任务发送至施压设备之后,施压设备可以接收并处理第一定时任务中包含的信息,在下一个定时时间9:00:10通过异步压测引擎调整生成的流量。调度设备在发送第一定时任务的同时,可以继续尝试生成新的第一定时任务,即继续基于当前时间(9:00:10)判断是否存在下一个定时时间,并在存在下一个定时时间时(9:00:20),根据所述流量控制规则生成对应于下一个定时时间的第一定时任务t',重复上述过程直至本次流量调度对应的所有定时任务均完成。
在本申请的另一些实施例中,除了逐个生成并发送定时任务之外,也可以将多个定时任务作为一个批次,从而分批次地生成并发送定时任务。例如,可以每次同时生成三个定时任务t1、t2、t3,然后在预设时间达到时进行如下两件操作:一、向施压设备发送定时任务t1、t2、t3;二、根据编排任务对应的流量控制规则,更新定时任务t1,t2,t3为t1',t2',t3'。然后重复上述过程直至本次流量调度对应的所有定时任务均完成。
此外,本申请的实施例还提供了一种压力测试流量控制方法,该方法可以向用户提供控制界面,而后获取用户在所述控制界面创建的压力测试任务、以及输入的关于所述压力测试任务的多个流量控制规则。
其中,所述控制界面可以供用户输入相应的操作指令,以实现压力测试任务的创建以及关于所述压力测试任务的相关信息的输入。
例如,实际场景中,该控制界面中可以提供一用于输入待测URL的输入框,通过在输入框中输入待测URL可以创建对该URL进行压力测试的任务,此外还可以提供一个用于输入流量控制规则的输入区域,该输入区域中可供用户输入多个流量控制规则,或者该输入区域中也可以提供一用于直接查找预设流量控制规则的触发按钮,使得用户可以在规则库中查找预先配置好的默认规则,而无需每次由用户手动输入。在此,本领域技术人员应当理解,上述控制界面的具体形式仅为举例,现有或今后出现的基于类似原理的其它形式如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。
由于所述多个流量控制规则可以用于生成定时任务,而所述定时任务包含了定时时间的流量信息,可以被提供给施压设备,用以控制施压设备在定时时间根据所述流量信息输出用于压力测试的流量,因此对于用户而言,仅需要在创建压力测试任务时一次输入多条流量控制规则,以供组合出定时任务,即可控制施压设备根据流量信息模拟出流量频繁变化的复杂场景,从而便捷地实现符合实际场景的压力测试。
在实际场景中,所述压力测试流量控制方法的执行主体可以是用户设备、或者用户设备与网络设备通过网络相集成所构成的设备。其中,用户设备包括输入输出装置,用于实现与用户之间的交互,例如获取用户的操作、指令,显示图像、等交互。方案中涉及数据处理的部分可以在用户设备本地实现,也可以在网络设备中实现并通过网络将处理结果提供至用户设备,而涉及交互的部分则由仅由用户设备实现。所述用户设备包括但不限于计算机、手机、平板电脑等各类终端设备;所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(CloudComputing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
基于同一发明构思,本申请实施例中还提供了压力测试流量调度、控制设备,所述设备对应的方法是前述实施例中的压力测试流量调度和控制方法,并且其解决问题的原理与所述方法相似。
本申请实施例提供的压力测试流量调度设备,可以获取多个流量控制规则,然后根据所述多个流量控制规则生成定时任务,将所述定时任务发送至施压设备后,以使述施压设备在定时时间根据所述流量信息输出用于压力测试的流量,由于所述定时任务包含定时时间的流量信息,并且定时任务是通过多个流量控制规则组合生成的,因此能够使得定时任务所包含定时时间的流量信息模拟出流量频繁变化的复杂场景,从而实现符合实际场景的压力测试。
在实际场景中,该设备的具体实现时可以包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(CloudComputing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
图7示出了本申请实施例提供的一种压力测试流量调度设备的结构,该设备包括数据获取模块710、数据处理模块720和数据发送模块730。所述数据获取模块710用于获取多个流量控制规则;数据处理模块720用于根据所述多个流量控制规则生成定时任务,所述定时任务包含定时时间的流量信息;数据发送模块730用于将所述定时任务发送至施压设备,以使述施压设备在定时时间根据所述流量信息输出用于压力测试的流量。
所述流量控制规则包含了用于确定在特定时间施压设备进行压力测试的流量的相关信息,例如该流量控制规则可以是使得测试流量在特定的时间增加或者减少预设值,或者是在当前的流量满足何种条件时对流量进行相应的调整等。
定时任务可以被提供给施压设备,从而控制施压设备在定时时间根据所述流量信息输出用于压力测试的流量,因此对于用户而言,仅需要在创建压力测试任务时一次输入多条流量控制规则,以供组合出定时任务,即可控制施压设备根据流量信息模拟出流量频繁变化的复杂场景,从而便捷地实现符合实际场景的压力测试。
在本申请的一些实施例中,通过对多个流量控制规则的组合所生成的定时任务包含定时时间的流量信息,所述定时时间是基于流量控制规则所确定的、需要对压力测试的流量进行调整的时间点,而定时时间的流量信息是指在该调整的时间点所调整的流量值。例如,本申请实施例中的一个定时任务t1是在16:30:20这一时间点将压力测试的流量调整为1000,由此其所包含的定时时间的流量信息为:16:30:20、1000,可以理解为在16:30:20这一时间点将流量设置为1000。
在实际场景中,可以基于流量控制规则确定的定时任务可以是多个,由此可以在多个定时任务对应的定时时间持续对压力测试的流量进行调整,使得模拟出流量频繁变化的复杂场景。在本申请的一些实施例中,每个流量控制规则至少包括用于确定定时时间的第一规则信息和用于确定流量信息的第二规则信息。
通过第一规则信息可以确定需要对流量进行调整的定时时间,例如可以包括延迟时间、间隔时间、执行次数等,其中,所述延迟时间是指首次执行流量调整的时间,可以确定对应于该流量控制规则的首个定时时间,间隔时间是指后续每次执行的间隔,可以确定对应于该流量控制规则的后续定时时间,执行次数是指基于该流量控制规则执行流量调整的次数,可以确定对应于该流量控制规则的定时时间的数量。在特定情况下若需要永远执行,则可以设定执行次数为无限次。例如,若某一流量控制规则的第一规则信息中,包含的延迟时间、时间间隔和执行次数信息分别为200s、10s和100次,由此可以确定该流量控制规则对应的定时任务的首次定时时间为200秒之后,后续的每个10秒均为一个定时时间,如210秒、220秒……等,一共执行100次。
通过第二规则信息可以确定在每个定时时间对进行调整的流量值,例如可以包括调整规则、初始值等。其中,所述调整规则是指在每个定时时间对流量值进行调整的计算规则,例如可以是与时间相关的规则,或者可以是与与历史流量相关的规则,也可以是与时间、历史流量都相关的二元动态参数规则。在实际场景中,所述调整规则可以采用与时间和/或历史流量相关的函数表达式来表示,例如600+500·sin(t/240·2·π)即可表示一个与时间相关的正弦波形式的流量调整规则,last+50则表示一个与历史流量(上次调整后的流量值last)相关的递增形式的调整规则,if(last>50)then return 50,表示一个与历史流量相关的条件判定形式的调整规则。而所述初始值则可以用于设置首次调整时的流量值,可以与部分调整规则结合使用,以完成流量的调整,例如可以将流量的初始值设定为50。
由此,通过流量控制规则中包括第一规则信息和第二规则信息,可以解析出对应的定时任务。
由于各个流量控制规则相互独立,由此可以确定相应的定时任务,每个定时任务均用于在对应的定时时间对流量进行相应的调整,其组合之后可以模拟出复杂的流量变化场景,从而实现符合实际场景的压力测试。
本申请的一些实施例中,在获取多个流量控制规则时,可以先获取用户输入的原始规则,然后根据所述原始规则解析获得编排任务集。所述编排任务集中包括了多个编排任务,各个编排任务之间相互独立,每个编排任务中包含相应的流量控制规则。例如,用户提供的原始规则R可以采用字符串的形式,设备在获取字符串之后,通过对字符串进行解析,可以获得编排任务集,编排任务集中的每个编排任务都具有各自的属性。这些属性可以表示所述的第一规则信息和第二规则信息,从而构成每个编排任务的流量控制规则。例如,本实施例中,可以通过解析原始规则所获得的编排任务集中可以包含编排任务r1、r2和r3,每个编排任务包括了以下几项属性:延迟时间、间隔时间、编排规则、执行次数、是否永远执行、是否重置、初始化值等。
以r1为例,其属性中的延迟时间为10s、间隔时间为10s、执行次数为5、是否永远执行为否,编排规则为:last+10、是否重置为是,初始化值为20,其中延迟时间、间隔时间、执行次数、是否永远执行可以构成流量控制规则的第一规则信息,而编排规则、是否重置、初始化值则构成了流量控制规则中的第二规则信息。而编排任务r2属性中的延迟时间为60s、间隔时间为10s、执行次数为5、是否永远执行为否,编排规则为:last-10,是否重置为否,初始化值为空;编排任务r3属性中的延迟时间为110s、间隔时间为10s、执行次数为5、是否永远执行为是,编排规则为:last+t/10,是否重置为否,初始化值为空。由此,基于该原始规则R所解析获得的编排任务集,总共可以确定15个定时任务,定时任务对应的定时时间分别为10s、20s、30s、……、140s、150s。将所述定时任务发送至施压设备后,可以使得施压设备在定时时间根据所述流量信息输出用于压力测试的流量,图2即为本实施例中压力测试的流量的示意图。
在实际场景中,根据原始规则R的不同,可以获得不同的编排任务集,其中编排任务所包含的流量控制信息也各不相同,由此可以组合出各种不同的流量变化情况,例如图3至图6均为使用本申请实施例提供的方案在压力测试时实现流量调度所模拟的流量变化情况的示意图,由此可以模拟包含周期性、脉冲性、以及其它与时间序列相关度较高的流量变化场景。
在本申请的一些实施例中,调度设备根据所述多个流量控制规则生成定时任务,而后将所述定时任务发送至施压设备,以使述施压设备在定时时间根据所述流量信息输出用于压力测试的流量。实际场景中,调度设备可以逐个或者逐批次生成定时任务并将其发送给施压设备执行,由此可以在复杂场景中避免同时生成所有定时任务所造成的短时高负载。在本实施例中,数据处理模块可以基于当前时间判断是否存在下一个定时时间,并在存在下一个定时时间时,根据所述流量控制规则生成对应于下一个定时时间的第一定时任务,所述第一定时任务包含下一个定时时间的流量信息。例如,以前述包含编排任务r1、r2和r3的编排任务集为例,若当前时间为本次压力测试的起始时间9:00:00,由此可知,下一个定时时间即为9:00:10,该时间对应的流量值为last+10=30,由此可以确定第一定时任务t即为在9:00:10将压力测试的流量调整为30。
在此场景下,调度设备的数据发送模块会在第一定时任务的下一个定时时间达到后,向第一定时任务发送至施压设备,以使述施压设备根据所述流量信息输出用于压力测试的流量。调度设备将该第一定时任务发送至施压设备之后,施压设备可以接收并处理第一定时任务中包含的信息,在下一个定时时间9:00:10通过异步压测引擎调整生成的流量。调度设备在发送第一定时任务的同时,可以继续尝试生成新的第一定时任务,即继续基于当前时间(9:00:10)判断是否存在下一个定时时间,并在存在下一个定时时间时(9:00:20),根据所述流量控制规则生成对应于下一个定时时间的第一定时任务t',重复上述过程直至本次流量调度对应的所有定时任务均完成。
在本申请的另一些实施例中,除了逐个生成并发送定时任务之外,也可以将多个定时任务作为一个批次,从而分批次地生成并发送定时任务。例如,可以每次同时生成三个定时任务t1、t2、t3,然后在预设时间达到时进行如下两件操作:一、向施压设备发送定时任务t1、t2、t3;二、根据编排任务对应的流量控制规则,更新定时任务t1,t2,t3为t1',t2',t3'。然后重复上述过程直至本次流量调度对应的所有定时任务均完成。
此外,本申请实施例还提供了一种压力测试流量控制设备,该控制设备包括交互模块和数据获取模块。所述数据获取模块用于向用户提供控制界面。所述控制界面可以供用户输入相应的操作指令,以实现压力测试任务的创建以及关于所述压力测试任务的相关信息的输入。数据获取模块用于获取用户在所述控制界面创建的压力测试任务、以及输入的关于所述压力测试任务的多个流量控制规则。
其中,所述控制界面可以供用户输入相应的操作指令,以实现压力测试任务的创建以及关于所述压力测试任务的相关信息的输入。
例如,实际场景中,该控制界面中可以提供一用于输入待测URL的输入框,通过在输入框中输入待测URL可以创建对该URL进行压力测试的任务,此外还可以提供一个用于输入流量控制规则的输入区域,该输入区域中可供用户输入多个流量控制规则,或者该输入区域中也可以提供一用于直接查找预设流量控制规则的触发按钮,使得用户可以在规则库中查找预先配置好的默认规则,而无需每次由用户手动输入。在此,本领域技术人员应当理解,上述控制界面的具体形式仅为举例,现有或今后出现的基于类似原理的其它形式如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。
由于所述多个流量控制规则可以用于生成定时任务,而所述定时任务包含了定时时间的流量信息,可以被提供给施压设备,用以控制施压设备在定时时间根据所述流量信息输出用于压力测试的流量,因此对于用户而言,仅需要在创建压力测试任务时一次输入多条流量控制规则,以供组合出定时任务,即可控制施压设备根据流量信息模拟出流量频繁变化的复杂场景,从而便捷地实现符合实际场景的压力测试。
在实际场景中,所述控制设备可以是用户设备、或者用户设备与网络设备通过网络相集成所构成的设备。其中,用户设备包括输入输出装置,用于实现与用户之间的交互,例如获取用户的操作、指令,显示图像、等交互。方案中涉及数据处理的部分可以在用户设备本地实现,也可以在网络设备中实现并通过网络将处理结果提供至用户设备,而涉及交互的部分则由仅由用户设备实现。所述用户设备包括但不限于计算机、手机、平板电脑等各类终端设备;所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
图8示出了一种压力测试***的示意图,包括规则存储数据库810、调度平台820、试压机集群830和被压服务840,其中,规则存储数据库810用于存储原始规则,调度平台820用于实现压力测试流量的控制以及调度,可以包括本申请实施例提供的控制压力测试流量的控制设备和实现流量调度的调度设备,用户可以通过控制设备提供的控制界面自行输入原始规则,也可以通过控制界面从规则存储数据库810获取原始规则完成输入,该原始规则即为流量控制规则,能够供调度设备进行解析后生成定时任务,提供给试压机集群830。试压机集群830即为本实施例中的施压设备,根据定时任务中的信息调用压测引擎调整生成的流量,然后根据需要的流量,向被压服务840发送相应的待处理请求,施加测试压力。
综上所述,本申请实施例提供的压力测试流量调度方案中,可以获取多个流量控制规则,然后根据所述多个流量控制规则生成定时任务,将所述定时任务发送至施压设备后,以使述施压设备在定时时间根据所述流量信息输出用于压力测试的流量,由于所述定时任务包含定时时间的流量信息,并且定时任务是通过多个流量控制规则组合生成的,因此能够使得定时任务所包含定时时间的流量信息模拟出流量频繁变化的复杂场景,从而实现符合实际场景的压力测试。
而本申请实施例提供的压力测试流量控制方案,可以向用户提供控制界面,而后获取用户在所述控制界面创建的压力测试任务、以及输入的关于所述压力测试任务的多个流量控制规则,由于所述多个流量控制规则可以用于生成定时任务,而所述定时任务包含了定时时间的流量信息,用以控制施压设备在定时时间根据所述流量信息输出用于压力测试的流量,因此对于用户而言,仅需要在创建压力测试任务时一次输入多条流量控制规则,以供组合出定时任务,即可控制施压设备根据流量信息模拟出流量频繁变化的复杂场景,从而便捷地实现符合实际场景的压力测试。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一些实施例包括一个如图9所示的计算设备,该设备包括存储有计算机可读指令的一个或多个存储器910和用于执行计算机可读指令的处理器920,其中,当该计算机可读指令被该处理器执行时,使得所述设备执行基于前述本申请的多个实施例的方法和/或技术方案。
此外,本申请的一些实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机可读指令可被处理器执行以实现前述本申请的多个实施例的方法和/或技术方案。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (14)

1.一种压力测试流量调度方法,其中,该方法包括:
获取多个流量控制规则;
根据所述多个流量控制规则生成定时任务,所述定时任务包含定时时间的流量信息;
将所述定时任务发送至施压设备,以使述施压设备在定时时间根据所述流量信息输出用于压力测试的流量。
2.根据权利要求1所述的方法,其中,所述流量控制规则至少包括用于确定定时时间的第一规则信息和用于确定流量信息的第二规则信息。
3.根据权利要求2所述的方法,其中,所述第二规则信息包括与时间相关的规则和/或与历史流量相关的规则。
4.根据权利要求1所述的方法,其中,获取多个流量控制规则,包括:
获取用户输入的原始规则;
根据所述原始规则解析获得编排任务集,所述编排任务集包括多个编排任务,所述编排任务包含流量控制规则。
5.根据权利要求1所述的方法,其中,根据所述流量控制规则生成定时任务,所述定时任务包含定时时间的流量信息,包括:
基于当前时间判断是否存在下一个定时时间,并在存在下一个定时时间时,根据所述流量控制规则生成对应于下一个定时时间的第一定时任务,所述第一定时任务包含下一个定时时间的流量信息;
将所述定时任务发送至施压设备,以使述施压设备在定时时间根据所述流量信息输出用于压力测试的流量,包括:
在第一定时任务的下一个定时时间达到后,向第一定时任务发送至施压设备,以使述施压设备根据所述流量信息输出用于压力测试的流量。
6.一种压力测试流量控制方法,其中,该方法包括:
向用户提供控制界面;
获取用户在所述控制界面创建的压力测试任务、以及输入的关于所述压力测试任务的多个流量控制规则,所述多个流量控制规则用于生成定时任务,所述定时任务包含定时时间的流量信息,用以控制施压设备在定时时间根据所述流量信息输出用于压力测试的流量。
7.一种压力测试流量调度设备,其中,该设备包括:
数据获取模块,用于获取多个流量控制规则;
数据处理模块,用于根据所述多个流量控制规则生成定时任务,所述定时任务包含定时时间的流量信息;
数据发送模块,用于将所述定时任务发送至施压设备,以使述施压设备在定时时间根据所述流量信息输出用于压力测试的流量。
8.根据权利要求7所述的设备,其中,所述流量控制规则至少包括用于确定定时时间的第一规则信息和用于确定流量信息的第二规则信息。
9.根据权利要求8所述的设备,其中,所述第二规则信息包括与时间相关的规则和/或与历史流量相关的规则。
10.根据权利要求7所述的设备,其中,所述数据获取模块,用于获取用户输入的原始规则;以及根据所述原始规则解析获得编排任务集,所述编排任务集包括多个编排任务,所述编排任务包含流量控制规则。
11.根据权利要求7所述的设备,其中,所述数据处理模块,用于基于当前时间判断是否存在下一个定时时间,并在存在下一个定时时间时,根据所述流量控制规则生成对应于下一个定时时间的第一定时任务,所述第一定时任务包含下一个定时时间的流量信息;
所述数据发送模块,用于在第一定时任务的下一个定时时间达到后,向第一定时任务发送至施压设备,以使述施压设备根据所述流量信息输出用于压力测试的流量。
12.一种压力测试流量控制设备,其中,该设备包括:
交互模块,用于向用户提供控制界面;
数据获取模块,用于获取用户在所述控制界面创建的压力测试任务、以及输入的关于所述压力测试任务的多个流量控制规则,所述多个流量控制规则用于生成定时任务,所述定时任务包含定时时间的流量信息,用以控制施压设备在定时时间根据所述流量信息输出用于压力测试的流量。
13.一种计算设备,其中,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行权利要求1至6中任一项所述的方法。
14.一种计算机可读介质,其上存储有计算机程序指令,所述计算机可读指令可被处理器执行以实现如权利要求1至6中任一项所述的方法。
CN201910919570.3A 2019-09-26 2019-09-26 压力测试流量调度、控制方法、设备以及计算机可读介质 Pending CN112564996A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910919570.3A CN112564996A (zh) 2019-09-26 2019-09-26 压力测试流量调度、控制方法、设备以及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910919570.3A CN112564996A (zh) 2019-09-26 2019-09-26 压力测试流量调度、控制方法、设备以及计算机可读介质

Publications (1)

Publication Number Publication Date
CN112564996A true CN112564996A (zh) 2021-03-26

Family

ID=75030122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910919570.3A Pending CN112564996A (zh) 2019-09-26 2019-09-26 压力测试流量调度、控制方法、设备以及计算机可读介质

Country Status (1)

Country Link
CN (1) CN112564996A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124747A (zh) * 2021-10-15 2022-03-01 微梦创科网络科技(中国)有限公司 一种流量压测***
CN114584490A (zh) * 2022-03-25 2022-06-03 阿里巴巴(中国)有限公司 数据传输检测方法以及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1842035A (zh) * 2005-08-03 2006-10-04 ***通信集团公司 一种基于移动通信网络的数据业务的性能测试方法及装置
US20150178646A1 (en) * 2013-12-20 2015-06-25 Sas Institute Inc. Integrated stress testing framework system and method
CN105868097A (zh) * 2015-01-22 2016-08-17 阿里巴巴集团控股有限公司 ***测试方法及其装置
CN107015892A (zh) * 2017-03-30 2017-08-04 腾讯科技(深圳)有限公司 一种压力测试方法、装置和***
US20180034780A1 (en) * 2016-07-27 2018-02-01 International Business Machines Corporation Generation of asset data used in creating testing events
CN109726102A (zh) * 2018-05-14 2019-05-07 网联清算有限公司 流量压力测试方法和装置
CN109828912A (zh) * 2018-12-26 2019-05-31 同盾控股有限公司 一种软件压力测试方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1842035A (zh) * 2005-08-03 2006-10-04 ***通信集团公司 一种基于移动通信网络的数据业务的性能测试方法及装置
US20150178646A1 (en) * 2013-12-20 2015-06-25 Sas Institute Inc. Integrated stress testing framework system and method
CN105868097A (zh) * 2015-01-22 2016-08-17 阿里巴巴集团控股有限公司 ***测试方法及其装置
US20180034780A1 (en) * 2016-07-27 2018-02-01 International Business Machines Corporation Generation of asset data used in creating testing events
CN107015892A (zh) * 2017-03-30 2017-08-04 腾讯科技(深圳)有限公司 一种压力测试方法、装置和***
CN109726102A (zh) * 2018-05-14 2019-05-07 网联清算有限公司 流量压力测试方法和装置
CN109828912A (zh) * 2018-12-26 2019-05-31 同盾控股有限公司 一种软件压力测试方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
M. SEAMAN; 3COM; A. SMITH; EXTREME NETWORKS; E. CRAWLEY; ARGON NETWORKS;J. WROCLAWSKI;MIT LCS;: "Integrated Service Mappings on IEEE 802 Networks", IETF, 31 August 1998 (1998-08-31) *
李军豪;陈焕英;: "视频监控***压力测试的设计与实现", 制造业自动化, no. 06, 25 March 2011 (2011-03-25) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124747A (zh) * 2021-10-15 2022-03-01 微梦创科网络科技(中国)有限公司 一种流量压测***
CN114124747B (zh) * 2021-10-15 2024-04-30 微梦创科网络科技(中国)有限公司 一种流量压测***
CN114584490A (zh) * 2022-03-25 2022-06-03 阿里巴巴(中国)有限公司 数据传输检测方法以及装置
CN114584490B (zh) * 2022-03-25 2024-04-09 阿里巴巴(中国)有限公司 数据传输检测方法以及装置

Similar Documents

Publication Publication Date Title
CN108549569B (zh) 一种搜索应用程序内信息的方法及设备
US20190149617A1 (en) Migration of applications to a computing environment
CN109309596B (zh) 一种压力测试方法、装置及服务器
WO2019169725A1 (zh) 测试数据生成方法、装置、设备以及计算机可读存储介质
US8606905B1 (en) Automated determination of system scalability and scalability constraint factors
CN110221959B (zh) 应用程序的测试方法、设备以及计算机可读介质
JP2019512126A (ja) 機械学習システムをトレーニングする方法及びシステム
Bermbach et al. BenchFoundry: A benchmarking framework for cloud storage services
US11321318B2 (en) Dynamic access paths
WO2017162028A1 (zh) 一种模拟线上压力测试的方法和装置
CN112564996A (zh) 压力测试流量调度、控制方法、设备以及计算机可读介质
CN109284115A (zh) 一种生成追踪器脚本的方法及装置
CN107391528B (zh) 前端组件依赖信息搜索方法及设备
CN110334012B (zh) 一种风险评估方法及装置
CN116069577A (zh) 一种rpc服务的接口测试方法、设备及介质
CN110399287B (zh) 应用测试的覆盖率收集方法及装置
CN112199261A (zh) 应用程序性能分析方法及装置、电子设备
CN117539754A (zh) 压力测试方法、装置、存储介质及电子设备
CN107395663B (zh) 数据获取方法及装置
CN112256984A (zh) 一种网页对应的接口托底截图的获取方法及设备
CN110058996B (zh) 程序调试方法、装置、设备和存储介质
CN110909072B (zh) 一种数据表建立方法、装置及设备
CN110968500A (zh) 一种测试用例的执行方法及装置
CN110928540A (zh) 一种页面生成方法及装置
CN112905449B (zh) 目标测试方法、装置、设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination