CN111459795A - 集群的压力测试方法及装置、计算机设备、存储介质 - Google Patents
集群的压力测试方法及装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN111459795A CN111459795A CN202010123165.3A CN202010123165A CN111459795A CN 111459795 A CN111459795 A CN 111459795A CN 202010123165 A CN202010123165 A CN 202010123165A CN 111459795 A CN111459795 A CN 111459795A
- Authority
- CN
- China
- Prior art keywords
- script
- pressure test
- function
- data
- cluster
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/24—Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提供了一种集群的压力测试方法及装置、计算机设备、存储介质,应用于FaaS平台,其中,该方法包括:根据目标集群中的业务函数生成压力测试脚本,其中,所述业务函数包括多个资源模块的函数信息,所述业务函数对应一个业务场景;将所述压力测试脚本分发至执行机集群,其中,所述执行机集群用于通过执行所述压力测试脚本向所述目标集群施加负载压力,得到脚本数据;根据所述业务函数和所述脚本数据测试所述目标集群的业务性能。通过本发明,解决了相关技术中无法精确地测试集群的性能等技术问题,极大的提升了测试效率与质量。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种集群的压力测试方法及装置、计算机设备、存储介质。
背景技术
相关技术中,函数计算平台(Functions as a Service,简称FaaS)是近些年兴起的serverless(无服务器计算)服务,通过该平台,用户在平台上部署特定的业务函数就能快速的构建出使用场景,非常方便地集成到模块、组件中;并且平台会非常弹性的为用户配置管理服务资源;省去了用户自行管理、维护的成本,特别适合于存在高低峰时间的业务场景,极大的节省了业务的发布和维护流程。
随着用户量的增多,对FaaS集群的并发量要求也越来越高,由此也给FaaS集群的正常运行造成了极大的压力,因此对FaaS集群的性能测试和稳定性测试要求也越来越高。然而现有的FaaS平台中运行中的是各式各样的基础函数;业务的性能和稳定性都是基于平台的性能和稳定性的,现有技术的FaaS平台只能引用基础函数测试对象的基础功能,而不能对其进行性能测试,也不能针对具体的业务场景进行测试,从而导致对各种业务的测试不准确且测试效率较低等问题。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例提供了一种集群的压力测试方法及装置、计算机设备、存储介质,以至少解决相关技术中无法精确地测试集群的性能和稳定性等技术问题。
根据本发明的一个实施例,提供了一种集群的压力测试方法,应用于FaaS平台,包括:根据目标集群中的业务函数生成压力测试脚本,其中,所述业务函数包括多个资源模块的函数信息,所述业务函数对应一个业务场景;将所述压力测试脚本分发至执行机集群,其中,所述执行机集群用于通过执行所述压力测试脚本向所述目标集群施加负载压力,得到脚本指标;根据所述业务函数和所述脚本数据测试所述目标集群的业务性能。
可选的,在根据目标集群中的业务函数生成压力测试脚本之前,所述方法还包括:获取资源函数的属性数据;根据所述属性数据将所述资源函数转换为由多个资源模块和所述多个资源模块的多个函数信息组合成的业务函数,其中,所述函数信息用于指示为所述多个资源模块设定的多个阈值;通过调用所述目标集群的数据访问接口将所述业务函数发送至所述目标集群。
可选的,获取所述资源函数的属性数据至少包括以下之一:识别所述资源函数的编写语言;读取所述资源函数的输入信息和输出信息;读取所述资源函数实现标准化消耗的时间信息和内存消耗的第一内存信息;读取所述资源函数运行时占用的网络资源和内存占用的第二内存信息。
可选的,根据目标集群中的业务函数生成压力测试脚本包括:根据所述业务函数的属性数据设置所述执行机集群执行所述压力测试脚本的压测属性数据;基于所述业务函数的属性数据和所述压测属性数据生成所述压力测试脚本。
可选的,根据所述业务函数的属性数据设置所述执行机集群执行所述压力测试脚本的压测属性数据至少包括以下之一:设置所述执行机集群的并发数;设置所述执行机集群执行所述压力测试脚本的压测函数,其中,所述压测函数为所述业务函数;设置所述执行机集群执行所述压力测试脚本的持续时间;设置所述执行机集群的脚本指标和所述目标集群的性能指标。
可选的,在根据所述业务函数和所述脚本数据测试所述目标集群的业务性能之前,所述方法还包括:在所述执行机集群执行所述压力测试脚本时,收集所述脚本数据以及所述目标集群的性能指标的性能数据;监控在不同脚本数据下对应性能数据的变化情况。
可选的,根据所述业务函数和所述脚本数据测试所述目标集群的业务性能包括:当为同一业务函数设置两个压测属性数据,并且对应生成第一压力测试脚本和第二压力测试脚本时,分别执行所述第一压力测试脚本和所述第二压力测试脚本,收集所述第一压力测试脚本的第一脚本数据和第一性能数据,以及所述第二压力测试脚本的第二脚本数据和第二性能数据;以所述第一脚本数据和所述第二脚本数据为参照场景比较所述第一性能数据和所述第二性能数据;若所述第一性能数据和所述第二性能数据的差值小于或等于预设值时,确定所述业务性能在所述参照场景稳定;否则,确定所述业务性能在所述参照场景不稳定。
根据本发明的一个实施例,提供了一种集群的压力测试装置,应用于FaaS平台,包括:生成模块,用于根据目标集群中的业务函数生成压力测试脚本,其中,所述业务函数包括多个资源模块的函数信息,所述业务函数对应一个业务场景;分发模块,用于将所述压力测试脚本分发至执行机集群,其中,所述执行机集群用于通过执行所述压力测试脚本向所述目标集群施加负载压力,得到脚本数据;测试模块,用于根据所述业务函数和所述脚本数据测试所述目标集群的业务性能。
可选的,所述装置还包括:获取模块,用于在根据目标集群中的业务函数生成压力测试脚本之前,获取资源函数的属性数据;转换模块,用于根据所述属性数据将所述资源函数转换为由多个资源模块和所述多个资源模块的多个函数信息组合成的业务函数,其中,所述函数信息用于指示为所述多个资源模块设定的多个阈值;发送模块,用于通过调用所述目标集群的数据访问接口将所述业务函数发送至所述目标集群。
可选的,所述获取模块至少包括以下之一的操作:识别所述资源函数的编写语言;读取所述资源函数的输入信息和输出信息;读取所述资源函数实现标准化消耗的时间信息和内存消耗的第一内存信息;读取所述资源函数运行时占用的网络资源和内存占用的第二内存信息。
可选的,所述生成模块包括:设置单元,用于根据所述业务函数的属性数据设置所述执行机集群执行所述压力测试脚本的压测属性数据;生成单元,用于基于所述业务函数的属性数据和所述压测属性数据生成所述压力测试脚本。
可选的,所述设置单元至少包括以下之一的操作:设置所述执行机集群的并发数;设置所述执行机集群执行所述压力测试脚本的压测函数,其中,所述压测函数为所述业务函数;设置所述执行机集群执行所述压力测试脚本的持续时间;设置所述执行机集群的脚本指标和所述目标集群的性能指标。
可选的,所述装置还包括:收集模块,用于在根据所述业务函数和所述脚本指标测试所述目标集群的业务性能之前,在所述执行机集群执行所述压力测试脚本时,收集所述脚本数据以及所述目标集群的性能指标的性能数据;监控模块,用于监控在不同脚本数据下对应性能数据的变化情况。
可选的,所述测试模块包括:执行单元,用于当为同一业务函数设置两个压测属性数据,并且对应生成第一压力测试脚本和第二压力测试脚本时,分别执行所述第一压力测试脚本和所述第二压力测试脚本,收集所述第一压力测试脚本的第一脚本数据和第一性能数据,以及所述第二压力测试脚本的第二脚本数据和第二性能数据;比较单元,用于以所述第一脚本数据和所述第二脚本数据为参照场景比较所述第一性能数据和所述第二性能数据;确定单元,用于若所述第一性能数据和所述第二性能数据的差值小于或等于预设值时,确定所述业务性能在所述参照场景稳定;否则,确定所述业务性能在所述参照场景不稳定。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项装置实施例中的步骤。
根据本发明的又一个实施例,还提供了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,执行根据目标集群中的业务函数生成的压力测试脚本得到的脚本数据,根据脚本数据和业务函数的性能指标来测试目标集群的业务性能,由于注入到目标集群中的业务函数包括多个资源模块的函数信息,因此可以实现测试目标集群在任意资源模块组合生成的业务场景中的性能指标和集群优化,解决了相关技术中无法精确地测试集群的性能等技术问题,极大的提升了测试效率与质量。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种集群的压力测试方法应用于计算机终端的硬件结构框图;
图2是根据本发明实施例的一种集群的压力测试方法的流程图;
图3是根据本发明实施例提供的一种集群压力的测试方法的示意图;
图4是根据本发明实施例的一种集群的压力测试装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
本申请实施例一所提供的方法实施例可以在移动终端、服务器、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种集群的压力测试方法应用于计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的集群的压力测试方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种集群的压力测试方法,图2是根据本发明实施例的一种集群的压力测试方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,根据目标集群中的业务函数生成压力测试脚本,其中,业务函数包括多个资源模块的函数信息,业务函数对应一个业务场景;
其中,本实施例应用于FaaS平台中,目标集群为FaaS集群;本实施例中的业务函数可以是已经存在于FaaS集群中的,也可以是真实的业务函数,也可以是由各种资源组合而成的模拟业务函数。
步骤S204,将压力测试脚本分发至执行机集群,其中,执行机集群用于通过执行压力测试脚本向目标集群施加负载压力,得到脚本数据;
本实施例中,执行机集群是用来施加负载压力的,一般情况下,需要的压力越大,执行机集群就越大,FaaS集群也需要不同程度的扩大。
步骤S206,根据业务函数和脚本数据测试目标集群的业务性能。
通过本发明实施例,执行根据目标集群中的业务函数生成的压力测试脚本得到的脚本数据,根据脚本数据和业务函数的性能指标来测试目标集群的业务性能,由于业务函数包括多个资源模块的函数信息,因此可以实现测试目标集群在任意资源模块组合生成的业务场景中的性能指标和集群优化,解决了相关技术中无法快速、有效地测试集群的性能和稳定性等技术问题,极大的提升了测试效率与质量。
在一个可选的实施例中,在根据目标集群中的业务函数生成压力测试脚本之前,还包括:获取资源函数的属性数据;根据属性数据将资源函数转换为由多个资源模块和多个资源模块的多个函数信息组合成的业务函数,其中,函数信息用于指示为多个资源模块设定的多个阈值;通过调用目标集群的数据访问接口将业务函数发送至目标集群。
在本实施例中,由于真实的业务场景的100%复现是较为困难的,但是业务场景都是由一个个的函数(即上述资源模块)串行/并行执行构成的,资源函数的执行就等价于消耗了某几类资源,以及消耗的程度。因此,针对资源函数,通过抽取出标准化的属性数据(比如资源函数的输入\输出、运行时间、消耗内存等信息),构建统一的模块,将资源函数转换成模块的组装。例如,资源函数=不同的模块(即上述资源模块)+不同的参数(即上述函数信息),其中,不同的模块对应各种资源,比如CPU(全称为Central Processing Unit,中央处理单元)资源,内存资源,IO(全称为Input/Output,输入/输出)资源、网络资源等;不同的参数就是给各种资源设定不同的阈值,比如CPU消耗200ms/400ms等;内存占用100K、1M等……;最后通过组合就可以生成非常丰富的业务函数,比如,f(a)=mf(b)+nf(c)+……,其中,f(a)表示资源函数a,f(b)表示资源模块b,m表示资源模块b的阈值,f(c)表示资源模块c,n表示资源模块c的阈值。最后,业务函数生成后,通过调用FaaS集群统一的数据库访问接口从而将该组合的业务函数注入到FaaS集群中。从而可以实现了场景覆盖全面,可以随意组合与生成各式场景以及各种极端场景。
可选地,获取资源函数的属性数据至少包括以下之一:识别资源函数的编写语言;读取资源函数的输入信息和输出信息;读取资源函数实现标准化消耗的时间信息和内存消耗的第一内存信息;读取资源函数运行时占用的网络资源和内存占用的第二内存信息。
在本实施例中,资源函数包括以下几种维度:
1)资源函数的语言类型:java/python/nodejs/.net/php/…;
2)资源函数的输入/输出:文本形式/数据流形式/…;
3)资源函数实现标准化消耗的时间信息和第一内存信息:各类语言分别实现标准化的时间消耗模块(比如200ms)和内存消耗模块(比如200Bytes)。比如,耗时1秒,内存占用1K(即上述资源函数的属性数据)的业务函数可以通过5(即上述阈值)个标准的时间模块(即上述资源块)加5(即上述阈值)个标准的内存模块(即上述资源块)来模拟;并且还可以灵活的控制业务函数的休眠、等待、大内存消耗等行为;
4)资源函数运行时占用的网络资源和第二内存信息:相当于占用网络资源和内存,使用Linux/Windows系统的网络命令(比如tc命令)在函数运行期间可以随机的占用特定的资源与内存。
在一个可选的实施例中,根据目标集群中的业务函数生成压力测试脚本包括:根据业务函数的属性数据设置执行机集群执行压力测试脚本的压测属性数据;基于业务函数的属性数据和压测属性数据生成压力测试脚本。
在本实施例中,通过借助Jmeter工具(一种由Apache组织开发的基于Java的压力测试工具)来执行压力测试脚本的,而执行机集群中Jmeter的压测属性数据用于表示需要按照何种情形来施加压力,而业务函数用于指明通过采用业务函数对目标集群进行施加压力,例如,业务函数是内存消耗类型,Jmeter的属性就指示了整体的内存消耗时长(持续时间)、实时的消耗数量(并发数)等等,因此,基于业务函数的属性数据和压测属性数据生成Jmeter要执行的压力测试脚本,并且业务函数的新属性的扩展或者合并都非常方便,不会影响其他的功能模块,便于维护;此外,本实施例中组合后的业务函数的属性数据为组合前的资源函数的属性数据。
可选的,根据业务函数的属性数据设置执行机集群执行压力测试脚本的压测属性数据至少包括以下之一:设置执行机集群的并发数;设置执行机集群执行压力测试脚本的压测函数,其中,压测函数为业务函数;设置执行机集群执行压力测试脚本的持续时间;设置执行机集群的脚本指标和目标集群的性能指标。
根据上述实施例,自适应的设置压测属性,至少包括以下几个方面:并发数(执行机集群的负载负荷)、持续时间、压测函数、统计指标等;
其中,持续时间是指执行机集群产生压力的持续时间,只有长时间的压力测试才能获取Jmeter指标(即上述脚本数据)来度量FaaS集群的抗压能力;
压测函数一般是两类:已经实际存在的业务函数;另一类是根据公式(资源函数=不同的模块+不同的参数)组合得到的模拟业务函数;
统计指标也包含两类:一类是在执行机集群上通过Jmeter自行统计到的Jmeter指标,随压测的进行实时进行,例如:平均响应时间、吞吐量、采样数量、错误率等指标;另一类指标是FaaS集群的性能指标,主要来自于FaaS自带的监控平台以及PC机的监控,都有对应的接口可以实时获取到,比如生成了多少POD(容器组),每笔业务函数的执行时间、PC的CPU、memory(内存)、IO等数据。
可选地,在根据业务函数和脚本数据测试目标集群的业务性能之前,还包括:在执行机集群执行压力测试脚本时,收集脚本数据以及目标集群的性能指标的性能数据;监控在不同脚本数据下对应性能数据的变化情况。在本实施例中,执行机集群执行业务函数的过程就是申请各种资源,然后进行业务处理,并最终输出处理结果的过程,通过采用一键式操作启动并发,并实时的监控Jmeter脚本的执行情况以及FAAS集群的性能指标变化,可以灵活地控制压测,随时随地的开启与结束,极大的提升了测试效率与质量。
可选的,根据业务函数和脚本数据测试目标集群的业务性能包括:当为同一业务函数设置两个压测属性数据,并且对应生成第一压力测试脚本和第二压力测试脚本时,分别执行第一压力测试脚本和第二压力测试脚本,收集第一压力测试脚本的第一脚本数据和第一性能数据,以及第二压力测试脚本的第二脚本数据和第二性能数据;以第一脚本数据和第二脚本数据为参照场景比较第一性能数据和第二性能数据;若第一性能数据和第二性能数据的差值小于或等于预设值时,确定业务性能在参照场景稳定;否则,确定业务性能在参照场景不稳定。
在本实施例中,通过为同一业务场景设计不同压测场景,获取到的性能指标后,进行对比,得到目标集群在该业务场景中的性能指标。例如,同一个场景压测(即同一业务函数),设置两个压测属性,比如,2小时和4小时(即上述参照场景,压力持续的时间值),如果获取到的第一性能数据和第二性能数据(性能数据是一个包含若干个性能指标的数据的集合,例如包括CPU、memory、执行时间等),如果第一性能数据和第二性能数据都差别不大,说明目标集群表现稳定;如果再压测到6小时时,性能指标缓慢变化直至较高的波动,说明目标集群在当前业务场景下至少可以长时间的稳定运行4小时。
下面结合一具体实施例,对本发明的实现流程进一步的说明:
图3是根据本发明实施例提供的一种集群压力的测试方法的示意图。如图3所示,本发明实施例是通过模块化、标准化的生成各式各样语言实现的各种业务场景函数,通过调用FAAS集群统一的数据库访问接口从而将业务函数实时注入到FAAS集群中;管理端读取FAAS集群中的业务函数,从而获得业务函数的属性数据以及业务函数的性能指标;管理端根据业务函数的属性数据设置执行机集群中的压测属性数据,根据压测属性数据和业务函数的属性数据生成Jmeter脚本,然后下发至执行机集群中的主机Master中;主机同步Jmeter脚本至各个执行机(图3中所示的执行机1,2,3)中,并执行Jmeter脚本。
在执行机集群执行Jmeter脚本时,实时监控执行机集群执行脚本的执行情况以及FAAS集群的性能数据的变化情况,并实时收集执行机集群执行Jmeter脚本生成的Jmeter脚本数据以及FAAS集群的性能数据,并实时地存储到数据库中。
在执行机集群执行Jmeter脚本时,对Jmeter脚本进行回归测试,以测试Jmeter脚本是否包含错误脚本。
对历史数据(即以往得到的脚本数据和性能数据)与当前数据进行对比,提供优化建议;并且可以复用的场景进行回归性测试。
在本实施例中,每次压测的场景(业务函数)都会存入FAAS集群数据库,当下次需要压测同样的场景时,仅需要从数据库中读取场景,生成Jmeter脚本,然后分发到执行机集群来完成回归测试。其中,回归测试是指修改了旧代码后(即生产新的Jmeter脚本),重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
最后,将结果通过图表在管理端的前端页面中进行展示,使得执行结果更直观,多样化。
通过本发明实施例,通过收集、备份、对比Jmeter指标和性能指标,迅速达到度量集群性能和稳定性的目的,并结合丰富的图表方便的跟踪集群在不同场景下的指标变化和集群优化,解决了相关技术中无法快速、高效地评价集群的性能和稳定性等技术问题,实现了为业务推广以及优化提供了强力的数据支持,且通过采用一站式的操作流程,极大的提升了测试效率与质量。
实施例2
在本实施例中还提供了一种集群压力的测试装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明实施例的一种集群的压力测试装置的结构框图,如图4所示,该装置包括:生成模块402,用于根据目标集群中的业务函数生成压力测试脚本,其中,业务函数包括多个资源模块的函数信息,业务函数对应一个业务场景;分发模块404,连接至上述生成模块402,用于将压力测试脚本分发至执行机集群,其中,执行机集群用于通过执行压力测试脚本向目标集群施加负载压力,得到脚本数据;测试模块406,连接至上述分发模块404,用于根据业务函数和脚本数据测试目标集群的业务性能。
可选的,上述装置还包括:获取模块,用于在根据目标集群中的业务函数生成压力测试脚本之前,获取资源函数的属性数据;转换模块,用于根据属性数据将资源函数转换为由多个资源模块和多个资源模块的多个函数信息组合成的业务函数,其中,函数信息用于指示为多个资源模块设定的多个阈值;发送模块,用于通过调用目标集群的数据访问接口将业务函数发送至目标集群。
可选的,获取模块至少包括以下之一的操作:识别资源函数的编写语言;读取资源函数的输入信息和输出信息;读取资源函数实现标准化消耗的时间信息和内存消耗的第一内存信息;读取资源函数运行时占用的网络资源和内存占用的第二内存信息。
可选的,生成模块402包括:设置单元,用于根据业务函数的属性数据设置执行机集群执行压力测试脚本的压测属性数据;生成单元,用于基于业务函数的属性数据和压测属性数据生成压力测试脚本。
可选的,设置单元至少包括以下之一的操作:设置执行机集群的并发数;设置执行机集群执行压力测试脚本的压测函数,其中,压测函数为业务函数;设置执行机集群执行压力测试脚本的持续时间;设置执行机集群的脚本指标和目标集群的性能指标。
可选的,上述装置还包括:收集模块,用于在根据业务函数和脚本数据测试目标集群的业务性能之前,在执行机集群执行压力测试脚本时,收集脚本数据以及目标集群的性能指标的性能数据;监控模块,用于监控在不同脚本数据下对应性能数据的变化情况。
可选的,测试模块406包括:执行单元,用于当为同一业务函数设置两个压测属性数据,并且对应生成第一压力测试脚本和第二压力测试脚本时,分别执行第一压力测试脚本和第二压力测试脚本,收集第一压力测试脚本的第一脚本数据和第一性能数据,以及第二压力测试脚本的第二脚本数据和第二性能数据;比较单元,用于以第一脚本数据和第二脚本数据为参照场景比较第一性能数据和第二性能数据;确定单元,用于若第一性能数据和第二性能数据的差值小于或等于预设值时,确定业务性能在参照场景稳定;否则,确定业务性能在参照场景不稳定。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,根据目标集群中的业务函数生成压力测试脚本,其中,所述业务函数包括多个资源模块的函数信息,所述业务函数对应一个业务场景;
S2,将所述压力测试脚本分发至执行机集群,其中,所述执行机集群用于通过执行所述压力测试脚本向所述目标集群施加负载压力,得到脚本数据;
S3,根据所述业务函数和所述脚本数据测试所述目标集群的业务性能。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,根据目标集群中的业务函数生成压力测试脚本,其中,所述业务函数包括多个资源模块的函数信息,所述业务函数对应一个业务场景;
S2,将所述压力测试脚本分发至执行机集群,其中,所述执行机集群用于通过执行所述压力测试脚本向所述目标集群施加负载压力,得到脚本数据;
S3,根据所述业务函数和所述脚本数据测试所述目标集群的业务性能。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种集群的压力测试方法,应用于FaaS平台,其特征在于,包括:
根据目标集群中的业务函数生成压力测试脚本,其中,所述业务函数包括多个资源模块的函数信息,所述业务函数对应一个业务场景;
将所述压力测试脚本分发至执行机集群,其中,所述执行机集群用于通过执行所述压力测试脚本向所述目标集群施加负载压力,得到脚本数据;
根据所述业务函数和所述脚本数据测试所述目标集群的业务性能。
2.根据权利要求1所述的方法,其特征在于,在根据目标集群中的业务函数生成压力测试脚本之前,所述方法还包括:
获取资源函数的属性数据;
根据所述属性数据将所述资源函数转换为由多个资源模块和所述多个资源模块的多个函数信息组合成的业务函数,其中,所述函数信息用于指示为所述多个资源模块设定的多个阈值;
通过调用所述目标集群的数据访问接口将所述业务函数发送至所述目标集群。
3.根据权利要求2所述的方法,其特征在于,获取所述资源函数的属性数据至少包括以下之一:
识别所述资源函数的编写语言;
读取所述资源函数的输入信息和输出信息;
读取所述资源函数实现标准化消耗的时间信息和内存消耗的第一内存信息;
读取所述资源函数运行时占用的网络资源和内存占用的第二内存信息。
4.根据权利要求1所述的方法,其特征在于,根据目标集群中的业务函数生成压力测试脚本包括:
根据所述业务函数的属性数据设置所述执行机集群执行所述压力测试脚本的压测属性数据;
基于所述业务函数的属性数据和所述压测属性数据生成所述压力测试脚本。
5.根据权利要求4所述的方法,其特征在于,根据所述业务函数的属性数据设置所述执行机集群执行所述压力测试脚本的压测属性数据至少包括以下之一:
设置所述执行机集群的并发数;
设置所述执行机集群执行所述压力测试脚本的压测函数,其中,所述压测函数为所述业务函数;
设置所述执行机集群执行所述压力测试脚本的持续时间;
设置所述执行机集群的脚本指标和所述目标集群的性能指标。
6.根据权利要求1所述的方法,其特征在于,在根据所述业务函数和所述脚本数据测试所述目标集群的业务性能之前,所述方法还包括:
在所述执行机集群执行所述压力测试脚本时,收集所述脚本数据以及所述目标集群的性能指标的性能数据;
监控在不同脚本数据下对应性能数据的变化情况。
7.根据权利要求6所述的方法,其特征在于,根据所述业务函数和所述脚本数据测试所述目标集群的业务性能包括:
当为同一业务函数设置两个压测属性数据,并且对应生成第一压力测试脚本和第二压力测试脚本时,分别执行所述第一压力测试脚本和所述第二压力测试脚本,收集所述第一压力测试脚本的第一脚本数据和第一性能数据,以及所述第二压力测试脚本的第二脚本数据和第二性能数据;
以所述第一脚本数据和所述第二脚本数据为参照场景比较所述第一性能数据和所述第二性能数据;
若所述第一性能数据和所述第二性能数据的差值小于或等于预设值时,确定所述业务性能在所述参照场景稳定;否则,确定所述业务性能在所述参照场景不稳定。
8.一种集群的压力测试装置,应用于FaaS平台,其特征在于,包括:
生成模块,用于根据目标集群中的业务函数生成压力测试脚本,其中,所述业务函数包括多个资源模块的函数信息,所述业务函数对应一个业务场景;
分发模块,用于将所述压力测试脚本分发至执行机集群,其中,所述执行机集群用于通过执行所述压力测试脚本向所述目标集群施加负载压力,得到脚本数据;
测试模块,用于根据所述业务函数和所述脚本数据测试所述目标集群的业务性能。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010123165.3A CN111459795A (zh) | 2020-02-27 | 2020-02-27 | 集群的压力测试方法及装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010123165.3A CN111459795A (zh) | 2020-02-27 | 2020-02-27 | 集群的压力测试方法及装置、计算机设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111459795A true CN111459795A (zh) | 2020-07-28 |
Family
ID=71685752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010123165.3A Pending CN111459795A (zh) | 2020-02-27 | 2020-02-27 | 集群的压力测试方法及装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459795A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306862A (zh) * | 2020-10-14 | 2021-02-02 | 北京健康之家科技有限公司 | 一种前端自动化测试系统及方法、存储介质、计算设备 |
CN113886050A (zh) * | 2021-10-21 | 2022-01-04 | 中国联合网络通信集团有限公司 | 压力测试方法、装置、设备和存储介质 |
CN114860617A (zh) * | 2022-07-06 | 2022-08-05 | 上海金仕达软件科技有限公司 | 一种智能压力测试方法及系统 |
CN113886050B (zh) * | 2021-10-21 | 2024-06-04 | 中国联合网络通信集团有限公司 | 压力测试方法、装置、设备和存储介质 |
-
2020
- 2020-02-27 CN CN202010123165.3A patent/CN111459795A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306862A (zh) * | 2020-10-14 | 2021-02-02 | 北京健康之家科技有限公司 | 一种前端自动化测试系统及方法、存储介质、计算设备 |
CN112306862B (zh) * | 2020-10-14 | 2024-06-07 | 北京水滴科技集团有限公司 | 一种前端自动化测试系统及方法、存储介质、计算设备 |
CN113886050A (zh) * | 2021-10-21 | 2022-01-04 | 中国联合网络通信集团有限公司 | 压力测试方法、装置、设备和存储介质 |
CN113886050B (zh) * | 2021-10-21 | 2024-06-04 | 中国联合网络通信集团有限公司 | 压力测试方法、装置、设备和存储介质 |
CN114860617A (zh) * | 2022-07-06 | 2022-08-05 | 上海金仕达软件科技有限公司 | 一种智能压力测试方法及系统 |
CN114860617B (zh) * | 2022-07-06 | 2022-09-30 | 上海金仕达软件科技有限公司 | 一种智能压力测试方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107995283B (zh) | 一种数据埋点分析的方法、设备及系统 | |
CN111124850A (zh) | Mqtt服务器性能测试方法、系统、计算机设备及存储介质 | |
CN111338814A (zh) | 消息处理方法和装置、存储介质和电子装置 | |
CN108959059B (zh) | 一种测试方法以及测试平台 | |
CN111782635B (zh) | 数据处理方法和装置、存储介质和电子装置 | |
CN111552838A (zh) | 数据处理方法及装置、计算机设备、存储介质 | |
CN109542786A (zh) | 可视化测试方法及装置 | |
CN111400127B (zh) | 业务日志的监控方法及装置、存储介质、计算机设备 | |
CN111181800B (zh) | 测试数据处理方法、装置、电子设备及存储介质 | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN111459795A (zh) | 集群的压力测试方法及装置、计算机设备、存储介质 | |
CN113434184A (zh) | 设备升级方法、装置、存储介质及电子装置 | |
RU2532714C2 (ru) | Способ получения данных при оценке ресурсов сети и устройство для осуществления способа | |
CN116319492A (zh) | 交换机的测试方法、装置、存储介质及电子设备 | |
CN112650815B (zh) | 环境数据的同步方法及装置、存储介质及电子装置 | |
CN115248782A (zh) | 一种自动化测试方法、装置及计算机设备 | |
CN114416596A (zh) | 一种测试应用的方法、装置、计算机设备及存储介质 | |
CN109918353B (zh) | 自动化信息处理的方法及终端设备 | |
CN114143235A (zh) | Nfv自动测试方法、装置、设备及存储介质 | |
CN111949246A (zh) | 新能源电力行业应用的创建方法及装置 | |
CN112527584A (zh) | 基于脚本编写及数据采集的软件效能提升方法和系统 | |
CN112182073A (zh) | 电力量测数据展示方法及系统 | |
CN116225944B (zh) | 一种预置组网环境的软件测试系统和方法 | |
CN115237503B (zh) | 基于vr的生态模型建立方法及系统 | |
CN114356490B (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 |