一种压力测试方法、装置及相关设备与流程

专利2025-03-20  18


本技术涉及互联网,尤其涉及一种压力测试方法、装置及相关设备。


背景技术:

1、随着微服务架构的发展和服务网格(service mesh)架构的兴起,应用或者云服务等产品在上线之前通常会进行压力测试,以便根据压力测试结果提升该对象的稳定性以及运行性能。比如,云服务产商可以基于性能测试服务(performance testing service,pts)或者云性能测试服务(cloud performance test service,cpts)对产品进行压力测试等。

2、目前,在进行压力测试时,通常需要测试人员基于对产品的业务逻辑的理解人工构造压力模型,并利用该压力模型执行压力测试过程。但是,这不仅要求测试人员具有较高的技术水平,而且,测试人员的主观性以及认知的局限性,会导致利用测试人员人工构造的压力模型进行压力测试所得到的性能测试结果,与被测产品实际的性能存在较大差异,从而影响被测产品的压力测试的准确性。


技术实现思路

1、有鉴于此,本技术实施例提供了一种压力测试方法,以提升针对目标对象的压力测试效果。本技术还提供了对应的装置、计算设备集群、计算机可读存储介质以及计算机程序产品。

2、第一方面,本技术提供一种压力测试方法,具体地,获取待测试对象的流量信息,该待测试对象例如可以是应用、云服务、系统、设备、组件等对象,并根据该待测试对象的流量信息,生成与压力目标相匹配的压力模型,该压力模型包括至少一组api请求序列,每组api请求序列包括至少一个api请求,该压力目标用于指示待测试对象所能承受的压力上限,如指示待测试对象在cpu占用率、占用带宽等方面的压力上限等,从而根据该压力模型,对待测试对象进行压力测试。

3、如此,根据待测试对象的流量信息,能够自动生成的压力模型,无需由测试人员根据其对业务逻辑的理解人工生成,这可以有效降低对于测试人员的技术水平要求。而且,自动生成的压力模型与压力目标匹配,即自动生成的压力模型所能产生的测试压力能够符合该压力目标所对应的压力,这使得利用压力模型进行压力测试所得到的性能结果,与被待测试对象实际性能基本相同,从而能够摆脱测试人员的主观性以及认知局限性对于压力测试的影响,进而可以有效提高针对待测试对象的压力测试的准确性。

4、在一种可能的实施方式中,在生成与压力目标相匹配的压力模型时,具体可以是先根据待测试对象的流量信息,生成初始压力模型,该初始压力模型包括至少一组api请求序列,该初始压力模型中的每组api请求序列包括至少一个api请求,然后,对该初始压力模型中的api请求序列(如调整api请求序列的顺序)或api请求中的参数进行变异,生成多个压力模型;最后,从生成的多个压力模型中筛选出所产生的测试压力与压力目标之间的匹配度大于阈值的压力模型。如此,可以自动生成与压力目标相匹配的一个或者多个压力模型,以便利用该压力模型进行压力测试后,可以提高针对待测试对象的压力测试的准确性。

5、在一种可能的实施方式中,在生成与压力目标相匹配的压力模型时,具体可以是先从待测试对象的流量信息中提取至少一组api请求序列,并根据至少一组api请求序列,确定至少一个业务场景的属性;生成配置界面,该配置界面用于将至少一个业务场景的属性呈现给用户;从而根据用户在该配置界面上针对该至少一个业务场景的属性执行的配置操作,对至少一组api请求序列进行调整,得到与压力目标相匹配的压力模型。如此,可以自动生成与压力目标相匹配的一个或者多个压力模型,以便利用该压力模型进行压力测试后,可以提高针对待测试对象的压力测试的准确性。

6、可选地,在生成与压力目标相匹配的压力模型时,也可以是先从待测试对象的流量信息中提取至少一组api请求序列,并根据至少一组api请求序列,确定至少一个业务场景的属性;生成配置界面,该配置界面用于将至少一个业务场景的属性呈现给用户;从而根据用户在该配置界面上针对该至少一个业务场景的属性执行的配置操作,对至少一组api请求序列进行调整,得到初始压力模型;然后,对该初始压力模型中的api请求序列(如调整api请求序列的顺序)或api请求中的参数进行变异,生成多个压力模型;最后,从生成的多个压力模型中筛选出所产生的测试压力与压力目标之间的匹配度大于阈值的压力模型。

7、在一种可能的实施方式中,业务场景的属性包括以下信息中的一种或者多种:属于该业务场景的至少一种指标的异常峰值、属于该业务场景的api请求在单位时间内相对于所有api请求的占比、属于该业务场景的api请求序列相对于所有api请求序列的占比、属于该业务场景的api请求的调用规律、属于该业务场景的api请求的周期、属于该业务场景的api请求的执行模式。

8、在一种可能的实施方式中,在根据api请求序列确定至少一个业务场景的属性之前,可以对待测试对象的流量信息进行分析,得到至少一个业务场景中每个业务场景所包括的api请求,并根据每个业务场景所包括的api请求,计算得到每个业务场景的属性。如此,可以便于后续根据api请求序列,确定业务场景的属性,提高处理效率。

9、在一种可能的实施方式中,在对初始压力模型中的api请求序列或api请求中的参数进行变异时,具体可以是利用遗传算法或者深度强化学习算法,对初始压力模型中的api请求序列或api请求中的参数进行变异。

10、实际应用时,也可以是采用其他算法或者采用其他方式对初始压力模型进行变异。

11、在一种可能的实施方式中,压力目标包括多种类型的子目标,如包括cpu占用率、占用带宽等多种子目标等,并且,不同类型的子目标用于指示待测试对象所能承受的不同类别的压力的上限。如此,可以基于实际应用的测试需求,选择相应的子目标组合生成压力模型,以实现对待测试对象的多个维度的压力测试。

12、在一种可能的实施方式中,在获取待测试对象的流量信息时,具体可以是从待测试对象的日志文件中提取出待测试对象的流量信息,或者,利用流量探针采集该待测试对象的流量信息,该流量探针部署于待测试对象的运行环境中。

13、第二方面,本技术提供了一种压力测试装置,所述装置包括:流量采集模块,用于获取待测试对象的流量信息;模型生成模块,用于根据所述待测试对象的流量信息,生成与压力目标相匹配的压力模型,所述压力模型包括至少一组应用程序编程接口api请求序列,每组api请求序列包括至少一个api请求,所述压力目标用于指示所述待测试对象所能承受的压力上限;压力测试模块,用于根据所述压力模型,对所述待测试对象进行压力测试。

14、在一种可能的实施方式中,所述模型生成模块,用于:根据所述待测试对象的流量信息,生成初始压力模型,所述初始压力模型包括至少一组api请求序列,所述初始压力模型中的每组api请求序列包括至少一个api请求;对所述初始压力模型中的api请求序列或api请求中的参数进行变异,生成多个压力模型;从所述多个压力模型中筛选出所产生的测试压力与所述压力目标之间的匹配度大于阈值的压力模型。

15、在一种可能的实施方式中所述模型生成模块,用于:从所述待测试对象的流量信息中提取所述至少一组api请求序列;根据所述至少一组api请求序列,确定至少一个业务场景的属性;生成配置界面,所述配置界面用于将所述至少一个业务场景的属性呈现给用户;根据所述用户在所述配置界面上针对所述至少一个业务场景的属性执行的配置操作,对所述至少一组api请求序列进行调整,得到与所述压力目标相匹配的压力模型。

16、在一种可能的实施方式中,所述业务场景的属性包括以下信息中的一种或者多种:属于所述业务场景的至少一种指标的异常峰值、属于所述业务场景的api请求在单位时间内相对于所有api请求的占比、属于所述业务场景的api请求序列相对于所有api请求序列的占比、属于所述业务场景的api请求的调用规律、属于所述业务场景的api请求的周期、属于所述业务场景的api请求的执行模式。

17、在一种可能的实施方式中,所述模型生成模块,还用于:对所述待测试对象的流量信息进行分析,得到所述至少一个业务场景中每个业务场景所包括的api请求;根据所述每个业务场景所包括的api请求,计算得到所述每个业务场景的属性。

18、在一种可能的实施方式中,模型生成模块,用于利用遗传算法或者深度强化学习算法,对所述初始压力模型中的api请求序列或api请求中的参数进行变异。

19、在一种可能的实施方式中,所述压力目标包括多种类型的子目标,不同类型的子目标用于指示所述待测试对象所能承受的不同类别的压力的上限。

20、在一种可能的实施方式中,所述流量采集模块,用于:从所述待测试对象的日志文件中提取出所述待测试对象的流量信息;或者,利用流量探针采集所述待测试对象的流量信息,所述流量探针部署于所述待测试对象的运行环境中。

21、进一步地,所述压力测试装置还可以包括评估模块,用于对压力测试所得到的结果进行分析和评估,生成评估报告。

22、值得注意的是,第二方面提供的压力测试装置,对应于第一方面提供的压力测试方法,故第二方面以及第二方面中任一实施方式所具有的技术效果,可参见第一方面或者第一方面的相应实施方式所具有的技术效果。

23、第三方面,本技术提供一种计算设备集群,所述计算设备包括至少一个计算设备,所述至少一个计算设备包括至少一个处理器和至少一个存储器;所述至少一个存储器用于存储指令,所述至少一个处理器执行所述至少一个存储器存储的该指令,以使所述计算设备集群执行上述第一方面或第一方面任一种可能实现方式中的压力测试方法。需要说明的是,该存储器可以集成于处理器中,也可以是独立于处理器之外。所述至少一个计算设备还可以包括总线。其中,处理器通过总线连接存储器。其中,存储器可以包括可读存储器以及随机存取存储器。

24、第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在至少一个计算设备上运行时,使得所述至少一个计算设备执行上述第一方面或第一方面的任一种实现方式所述的压力测试方法。

25、第五方面,本技术提供了一种包含指令的计算机程序产品,当其在至少一个计算设备上运行时,使得所述至少一个计算设备执行上述第一方面或第一方面的任一种实现方式所述的压力测试方法。

26、本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。


技术特征:

1.一种压力测试方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述待测试对象的流量信息,生成与压力目标相匹配的压力模型,包括:

3.根据权利要求1所述的方法,其特征在于,所述根据所述待测试对象的流量信息,生成与压力目标相匹配的压力模型,包括:

4.根据权利要求3所述的方法,其特征在于,所述业务场景的属性包括以下信息中的一种或者多种:

5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:

6.根据权利要求2所述的方法,其特征在于,所述对所述初始压力模型中的api请求序列或api请求中的参数进行变异,包括:

7.根据权利要求1至6任一项所述的方法,其特征在于,所述压力目标包括多种类型的子目标,不同类型的子目标用于指示所述待测试对象所能承受的不同类别的压力的上限。

8.根据权利要求1至7任一项所述的方法,其特征在于,所述获取待测试对象的流量信息,包括:

9.一种压力测试装置,其特征在于,所述装置包括:

10.根据权利要求9所述的装置,其特征在于,所述模型生成模块,用于:

11.根据权利要求9所述的装置,其特征在于,所述模型生成模块,用于:

12.根据权利要求11所述的装置,其特征在于,所述业务场景的属性包括以下信息中的一种或者多种:

13.根据权利要求11或12所述的装置,其特征在于,所述模型生成模块,还用于:

14.根据权利要求10所述的装置,其特征在于,模型生成模块,用于利用遗传算法或者深度强化学习算法,对所述初始压力模型中的api请求序列或api请求中的参数进行变异。

15.根据权利要求9至14任一项所述的装置,其特征在于,所述压力目标包括多种类型的子目标,不同类型的子目标用于指示所述待测试对象所能承受的不同类别的压力的上限。

16.根据权利要求9至15任一项所述的装置,其特征在于,所述流量采集模块,用于:

17.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;

18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在至少一个计算设备上运行时,使得所述至少一个计算设备执行如权利要求1至8任一项所述的方法。


技术总结
本申请提供了一种压力测试方法,包括:获取待测试对象的流量信息,该待测试对象例如可以是应用、云服务等对象,并根据该待测试对象的流量信息,生成与压力目标相匹配的压力模型,该压力模型包括至少一组API请求序列,每组API请求序列包括至少一个API请求,该压力目标用于指示待测试对象所能承受的压力上限,从而根据该压力模型,对待测试对象进行压力测试。如此,通过自动生成压力模型,能够降低对于测试人员的技术水平要求,而且,自动生成的压力模型与压力目标匹配,这使得利用压力模型进行压力测试所得到的性能结果,与被待测试对象实际性能基本相同,从而可以提高压力测试的准确性。此外,本申请还提供了对应的装置及相关设备。

技术研发人员:邹俊峰,林嘉栋,张森
受保护的技术使用者:华为云计算技术有限公司
技术研发日:
技术公布日:2024/6/26
转载请注明原文地址:https://doc.8miu.com/read-1817374.html

最新回复(0)