CN111723017A - 系统容量测试方法、装置、计算机设备及存储介质 - Google Patents
系统容量测试方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111723017A CN111723017A CN202010595662.3A CN202010595662A CN111723017A CN 111723017 A CN111723017 A CN 111723017A CN 202010595662 A CN202010595662 A CN 202010595662A CN 111723017 A CN111723017 A CN 111723017A
- Authority
- CN
- China
- Prior art keywords
- test
- data
- interface
- script
- offline
- 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/2273—Test methods
-
- 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/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
- G06F11/2733—Test interface between tester and unit under test
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)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及测试技术领域,公开了系统容量测试方法、装置、计算机设备及存储介质。本发明的系统容量测试方法通过监测待测系统线上测试时的性能数据和接口数据得到第一测试数据;通过对第一测试数据进行分析,获取待测系统的接口压力情况以及相应的测试场景,依据接口的压力情况生成调用比例高的接口的清单;根据接口清单生成用于测试相应接口的测试脚本对系统进行线下测试,得到第二测试数据;将第二测试数据与第一测试数据中相应的数据进行比对,获取线下测试的误差数据,基于误差数据调节第二测试数据,进而得到与线上的真实情况接近的容量测试结果,测试的准确性高,得到了线下的测试结果与线上的测试结果相接近的目的。
Description
技术领域
本发明涉及测试技术领域,尤其涉及系统容量测试方法、装置、计算机设备及存储介质。
背景技术
压力测试是一种通过对系统进行加压,测试系统的最大负载能力的方法,通常需要通过系统的中央处理器(CPU,Central Processing Unit)、内存、系统的每秒查询率(QPS,Query Per Second)等数据得到系统的压力测试结果。
现有的系统压测方法主要包括脚本测试法和引流压测法。采用编写好的测试脚本对系统进行测试,能够获得单个接口或接口组合的上限TPM(系统最优容量)结果;但是,采用该方法获取的容量压测结果与线上实际压测结果相差较大。采用引流压测法很难进行超出业务流量的压测,无法压测到系统的上限容量。
发明内容
针对上述问题,现提供一种旨在可提高系统容量评估准确性的系统容量测试方法、装置、计算机设备及存储介质。
为实现上述目的,本发明提供一种系统容量测试方法,包括:
监测待测系统获取第一测试数据;
分析所述第一测试数据生成接口清单,其中,所述接口清单包括测试接口信息和与所述测试接口信息对应的测试场景信息;
根据所述接口清单中的所述测试接口信息和与所述测试接口信息对应的测试场景信息,生成测试脚本;
采用所述测试脚本对所述待测系统进行线下测试,获取第二测试数据;
根据所述第一测试数据和所述第二测试数据,获取线下测试的误差数据,基于误差数据和所述第二测试数据,生成所述待测系统的容量测试结果。
优选的,所述第一测试数据包括线上性能数据、接口数据和与所述接口数据对应的场景数据;
所述分析所述第一测试数据生成接口清单,包括:
统计所述待测系统的各个接口在所述第一测试数据中的接口数据;
判断各个接口的所述接口数据是否符合预设条件;
提取符合所述预设条件的接口数据,生成测试接口信息;
获取与提取的所述接口数据对应的所述场景数据,根据所述场景数据生成测试场景信息;
根据所述测试接口信息和所述测试场景信息,生成所述接口清单。
优选的,所述预设条件包括以下至少一种条件:
所述接口数据的调用次数是否大于第一阈值;
所述接口数据的调用峰值是否平均;
所述接口数据的调用成功率是否大于第二阈值;
所述接口数据的平均延时时间是否小于第三阈值。
优选的,所述根据所述接口清单中的所述测试接口信息和与所述测试接口信息对应的测试场景信息,生成测试脚本,包括:
提取脚本数据库中与各个所述测试场景信息对应的脚本模块,所述脚本数据库中存储多个用于测试不同场景的脚本模块;
依据与所述测试场景信息对应的所述测试接口信息,配置与所述测试场景信息关联的所述脚本模块;
将经配置的各个所述脚本模块合并生成所述测试脚本。
优选的,所述第二测试数据为所述待测系统的线下性能数据,其中所述线下性能数据包括:线下吞吐量数据、线下内存数据、线下处理器数据和线下响应时间数据中的至少一种数据;
所述线上性能数据与所述线下性能数据相对应,所述线上性能数据包括:线上吞吐量数据、线上内存数据、线上处理器数据和线上响应时间数据中的至少一种数据;
所述根据所述第一测试数据和所述第二测试数据,获取线下测试的误差数据,基于误差数据和所述第二测试数据,生成所述待测系统的容量测试结果,包括:
根据所述第一测试数据和与所述第一测试数据对应的第二测试数据,获取线下测试的误差数据,基于误差数据和与所述第一测试数据对应的第二测试数据,生成所述待测系统的容量测试结果。
优选的,所述根据所述第一测试数据和与所述第一测试数据对应的第二测试数据,获取线下测试的误差数据,基于误差数据和与所述第一测试数据对应的第二测试数据,生成所述待测系统的容量测试结果,包括:
根据所述第一测试数据生成线上性能曲线;
根据与所述第一测试数据对应的所述第二测试数据生成线下性能曲线;
计算所述上性能曲线与所述线下性能曲线之间的误差数据;
根据所述误差数据和与所述第一测试数据对应的所述第二测试数据,生成所述容量测试结果。
为实现上述目的,本发明还提供一种系统容量测试装置,包括:
监测单元,用于监测待测系统获取第一测试数据;
分析单元,用于分析所述第一测试数据生成接口清单,其中,所述接口清单包括测试接口信息和与所述测试接口信息对应的测试场景信息;
生成单元,用于根据所述接口清单中的所述测试接口信息和与所述测试接口信息对应的测试场景信息,生成测试脚本;
测试单元,用于采用所述测试脚本对所述待测系统进行线下测试,获取第二测试数据;
计算单元,用于根据所述第一测试数据和所述第二测试数据,获取线下测试的误差数据,基于误差数据和所述第二测试数据,生成所述待测系统的容量测试结果。
优选的,所述生成单元用于提取脚本数据库中与各个所述测试场景信息对应的脚本模块,所述脚本数据库中存储多个用于测试不同场景的脚本模块;依据与所述测试场景信息对应的所述测试接口信息,配置与所述测试场景信息关联的所述脚本模块;将经配置的各个所述脚本模块合并生成所述测试脚本。
为实现上述目的,本发明还提供一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的系统容量测试方法、装置、计算机设备及存储介质,通过监测待测系统线上测试时的性能数据和接口数据得到第一测试数据;通过对第一测试数据进行分析,获取待测系统的接口压力情况以及相应的测试场景,依据接口的压力情况生成调用比例高的接口的清单;根据接口清单生成用于测试相应接口的测试脚本对系统进行线下测试,得到第二测试数据;将第二测试数据与第一测试数据中相应的数据进行比对,获取线下测试的误差数据,基于误差数据调节第二测试数据,进而得到与线上的真实情况接近的容量测试结果,测试的准确性高,得到了线下的测试结果与线上的测试结果相接近的目的。
附图说明
图1为本发明所述的系统容量测试方法的一种实施例的流程图;
图2为本发明生成接口清单的一种实施例的流程图;
图3为本发明生成测试脚本的一种实施例的流程图;
图4为本发明生成待测系统的容量测试结果的一种实施例的流程图;
图5为本发明所述的系统容量测试装置的一种实施例的模块图;
图6为本发明分析单元内部的模块图;
图7为本发明计算机设备的一个实施例的硬件架构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明提供的系统容量测试方法、装置、计算机设备及存储介质,可应用于保险业务、银行业务及金融业务等领域。本发明通过监测待测系统线上测试时的性能数据和接口数据得到第一测试数据;通过对第一测试数据进行分析,获取待测系统的接口压力情况以及相应的测试场景,依据接口的压力情况生成调用比例高的接口的清单;根据接口清单生成用于测试相应接口的测试脚本对系统进行线下测试,得到第二测试数据;将第二测试数据与第一测试数据中相应的数据进行比对,获取线下测试的误差数据,基于误差数据调节第二测试数据,进而得到与线上的真实情况接近的容量测试结果,测试的准确性高,得到了线下的测试结果与线上的测试结果相接近的目的。
实施例一
请参阅图1,本实施例的一种系统容量测试方法,包括下述步骤:
S1.监测待测系统获取第一测试数据;
其中,所述第一测试数据包括:线上性能数据、接口数据和与所述接口数据对应的场景数据。线上性能数据可包括线上吞吐量数据、线上内存数据、线上处理器数据和线上响应时间数据中的至少一种数据。接口数据可包括:接口的调用次数、接口的调用平均值、接口的调用成功率、接口的平均延时、接口调用重试次数和接口调用的反馈状态中的至少一种数据。场景数据为业务场景数据可包括:订单场景数据、查询产品场景数据、库存场景数据和登陆场景数据中的至少一种数据。
在实际应用中,采用计数器模式、滑动窗口模式、单位时间窗口模式或随机采样模式监测待测系统。计数器模式是指采用计数的方式对待测系统的接口调用情况进行监控。滑动窗口模式是指通过限制在任何给定时间可以发送或接收的数据包的数量,滑动窗口协议允许使用固定大小的序列号传送无限数量的数据包进而监测待测系统的接口调用情况。
本实施例中的,待测系统可以是应用于保险业务、银行业务及金融业务中的服务器或客户端。
S2.分析所述第一测试数据生成接口清单;
其中,所述接口清单可包括测试接口信息和与所述测试接口信息对应的测试场景信息;
在本实施例中,通过对经线上测试得到的第一测试数据进行分析,进而获取待测系统中的接口在线上测试时的压力情况以及相应的测试场景,进而依据接口的压力情况生成调用比例高的接口的清单。
考虑到待测系统在测试过程中,一种测试场景可能对应多个接口的调用,需要对接口进行逐个分析,以得到调用比例高的接口。
进一步地,请参阅图2步骤S2分析所述第一测试数据,生成接口清单,包括:
S21.统计所述待测系统的各个接口在所述第一测试数据中的接口数据;
进一步地,接口数据可包括接口各个维度的数据,如:接口的调用次数、接口的调用平均值、接口的调用成功率、接口调用成功的次数、接口的平均延时、接口调用重试次数和接口调用的反馈状态中的至少一种数据。
S22.判断各个接口的所述接口数据是否符合预设条件;
其中,所述预设条件可包括以下至少一种条件:所述接口数据的调用次数是否大于第一阈值;所述接口数据的调用峰值是否平均;所述接口数据的调用成功率是否大于第二阈值;所述接口数据的平均延时时间是否小于第三阈值。
进一步地,预设条件可以是以单一的维度(一个判断条件)对接口数据进行筛选,获取调用频率高的接口数据;预设条件也可以从多个维度(多个判断条件)对接口数据进行筛选,获取线上测试时调用频率高的接口数据。
S23.提取符合所述预设条件的接口数据,生成测试接口信息;
进一步地,当预设条件包括多个判断条件时,可提取满足所有判断条件的接口数据生成测试接口信息,可以提取满足任意一个判断条件的接口数据生成测试接口信息。测试接口信息为接口数据中的接口参数。通过预设条件筛选出待测系统中调用比例高、压力大的接口。
S24.获取与提取的所述接口数据对应的所述场景数据,根据所述场景数据生成测试场景信息;
在本实施例中,从第一测试数据提取与接口信息对应的场景数据。
S25.根据所述测试接口信息和所述测试场景信息,生成所述接口清单。
在本实施例中,接口清单包括接口参数和与该接口参数关联的测试场景信息。
S3.根据所述接口清单中的所述测试接口信息和与所述测试接口信息对应的测试场景信息,生成测试脚本;
在本实施例中,依据在线测试时获取的调用比例高、压力大的接口信息以及与该接口信息关联的测试场景信息,构建测试脚本,利用该测试脚本进行线下测试。
进一步地,请参阅图3步骤S3所述根据所述接口清单中的所述测试接口信息和与所述测试接口信息对应的测试场景信息,生成测试脚本,包括:
S31.提取脚本数据库中与各个所述测试场景信息对应的脚本模块,所述脚本数据库中存储多个用于测试不同场景的脚本模块;
S32.依据与所述测试场景信息对应的所述测试接口信息,配置与所述测试场景信息关联的所述脚本模块;
进一步地,脚本模块可采用流量控制器(如:Jemeter流量控制插件)。在相应的测试场景中,根据流量控制器的预期耗时、超时时间、完成业务量以及预期业务量,模拟线上测试时的延时,具体如下:
延时=(预期耗时-超时时间)/(预期业务量-完成业务量);
计算测试场景的线上延时时间,根据该延时时间控制触发脚本模块测试的时刻,模拟线上情况的延时,等待延时结束后,触发脚本模块执行测试,使线下的测试情况与线上的测试情况接近。
S33.将经配置的各个所述脚本模块合并生成所述测试脚本。
S4.采用所述测试脚本对所述待测系统进行线下测试,获取第二测试数据;
其中,所述第二测试数据为所述待测系统的线下性能数据;所述线下性能数据包括:线下吞吐量数据、线下内存数据、线下处理器数据和线下响应时间数据中的至少一种数据;。
进一步地,采用动态埋点机制,将测试脚本转为java的埋点代码通过字节码修改技术插入到需要压测的接口中,这些埋点同时可以采集系统性能参数和调用时间等数据。
S5.根据所述第一测试数据和所述第二测试数据,获取线下测试的误差数据,基于误差数据和所述第二测试数据,生成所述待测系统的容量测试结果。
进一步地,步骤S5为根据所述第一测试数据和与所述第一测试数据对应的第二测试数据,获取线下测试的误差数据,基于误差数据和与所述第一测试数据对应的第二测试数据,生成所述待测系统的容量测试结果。
具体地,请参阅图4步骤S5可包括:
S51.根据所述第一测试数据生成线上性能曲线;
具体地,本步骤中的第一测试数据为线上性能数据如:吞吐量数据、内存数据、处理器数据和响应时间数据等数据。可根据各类性能数据分别拟合生成相应的线上性能曲线。
例如:吞吐量数据线上曲线为y线上=m线上x线上+b线上;
S52.根据与所述第一测试数据对应的所述第二测试数据生成线下性能曲线;
具体地,第二测试数据为线下性能数据如:吞吐量数据、内存数据、处理器数据和响应时间数据等数据。可根据各类性能数据分别生成相应的线下性能曲线。
例如:吞吐量数据线下曲线为y线下=m线下x线下+b线下;
S53.计算所述上性能曲线与所述线下性能曲线之间的误差数据;
具体地,分别计算每一个性能数据的线上曲线与线下曲线之间的误差。
例如:吞吐量误差数据为y误差=(m线上-m线下)x误差+b线上-b线下;
S54.根据所述误差数据和与所述第一测试数据对应的所述第二测试数据,生成所述容量测试结果。
具体地,根据每一个性能数据的误差数据和相应的线下数据,评估容量测试数据。
例如:评估吞吐量测试数据=y线下+y误差。
在步骤S5中,考虑到线下测试的数据与线上测试的数据存在差异,因此采用计算两次(线上测试和线下测试)标准曲线斜率差异的方式,修正结果数据。
在本实施例中,系统容量测试方法通过监测待测系统线上测试时的性能数据和接口数据得到第一测试数据;通过对第一测试数据进行分析,获取待测系统的接口压力情况以及相应的测试场景,依据接口的压力情况生成调用比例高的接口的清单;根据接口清单生成用于测试相应接口的测试脚本对系统进行线下测试,得到第二测试数据;将第二测试数据与第一测试数据中相应的数据进行比对,获取线下测试的误差数据,基于误差数据调节第二测试数据,进而得到与线上的真实情况接近的容量测试结果,测试的准确性高,得到了线下的测试结果与线上的测试结果相接近的目的。采用系统容量测试方法可获取待测系统的最优容量值,进而评估线上机器数据的增减,同时还可以了解在压力下,待测系统能否稳定运行。
实施例二
请参阅图5,本实施例的一种系统容量测试装置1,包括:监测单元11、分析单元12、生成单元13、测试单元14和计算单元15,其中,
监测单元11,用于监测待测系统获取第一测试数据;
其中,所述第一测试数据包括:线上性能数据、接口数据和与所述接口数据对应的场景数据。线上性能数据可包括线上吞吐量数据、线上内存数据、线上处理器数据和线上响应时间数据中的至少一种数据。接口数据可包括:接口的调用次数、接口的调用平均值、接口的调用成功率、接口的平均延时、接口调用重试次数和接口调用的反馈状态中的至少一种数据。场景数据为业务场景数据可包括:订单场景数据、查询产品场景数据、库存场景数据和登陆场景数据中的至少一种数据。
在实际应用中,采用计数器模式、滑动窗口模式、单位时间窗口模式或随机采样模式监测待测系统。计数器模式是指采用计数的方式对待测系统的接口调用情况进行监控。滑动窗口模式是指通过限制在任何给定时间可以发送或接收的数据包的数量,滑动窗口协议允许使用固定大小的序列号传送无限数量的数据包进而监测待测系统的接口调用情况。
本实施例中的,待测系统可以是应用于保险业务、银行业务及金融业务中的服务器或客户端。
分析单元12,用于分析所述第一测试数据生成接口清单,其中,所述接口清单包括测试接口信息和与所述测试接口信息对应的测试场景信息;
其中,所述接口清单可包括测试接口信息和与所述测试接口信息对应的测试场景信息;
在本实施例中,通过对经线上测试得到的第一测试数据进行分析,进而获取待测系统中的接口在线上测试时的压力情况以及相应的测试场景,进而依据接口的压力情况生成调用比例高的接口的清单。
考虑到待测系统在测试过程中,一种测试场景可能对应多个接口的调用,需要对接口进行逐个分析,以得到调用比例高的接口。
进一步地,请参阅图6分析单元12可包括:统计模块121、判断模块122、提取模块123、获取模块124和生成模块125,其中,
统计模块121,用于统计所述待测系统的各个接口在所述第一测试数据中的接口数据;
进一步地,接口数据可包括接口各个维度的数据,如:接口的调用次数、接口的调用平均值、接口的调用成功率、接口调用成功的次数、接口的平均延时、接口调用重试次数和接口调用的反馈状态中的至少一种数据。
判断模块122,用于判断各个接口的所述接口数据是否符合预设条件;
其中,所述预设条件可包括以下至少一种条件:所述接口数据的调用次数是否大于第一阈值;所述接口数据的调用峰值是否平均;所述接口数据的调用成功率是否大于第二阈值;所述接口数据的平均延时时间是否小于第三阈值。
进一步地,预设条件可以是以单一的维度(一个判断条件)对接口数据进行筛选,获取调用频率高的接口数据;预设条件也可以从多个维度(多个判断条件)对接口数据进行筛选,获取线上测试时调用频率高的接口数据。
提取模块123,用于提取符合所述预设条件的接口数据,生成测试接口信息;
进一步地,当预设条件包括多个判断条件时,可提取满足所有判断条件的接口数据生成测试接口信息,可以提取满足任意一个判断条件的接口数据生成测试接口信息。测试接口信息为接口数据中的接口参数。通过预设条件筛选出待测系统中调用比例高、压力大的接口。
获取模块124,用于获取与提取的所述接口数据对应的所述场景数据,根据所述场景数据生成测试场景信息;
在本实施例中,从第一测试数据提取与接口信息对应的场景数据。
生成模块125,用于根据所述测试接口信息和所述测试场景信息,生成所述接口清单。
在本实施例中,接口清单包括接口参数和与该接口参数关联的测试场景信息。
生成单元13,用于根据所述接口清单中的所述测试接口信息和与所述测试接口信息对应的测试场景信息,生成测试脚本;
在本实施例中,依据在线测试时获取的调用比例高、压力大的接口信息以及与该接口信息关联的测试场景信息,构建测试脚本,利用该测试脚本进行线下测试。
进一步地,生成单元13用于提取脚本数据库中与各个所述测试场景信息对应的脚本模块,所述脚本数据库中存储多个用于测试不同场景的脚本模块;依据与所述测试场景信息对应的所述测试接口信息,配置与所述测试场景信息关联的所述脚本模块;
具体地,脚本模块可采用流量控制器(如:Jemeter流量控制插件)。在相应的测试场景中,根据流量控制器的预期耗时、超时时间、完成业务量以及预期业务量,模拟线上测试时的延时,具体如下:
延时=(预期耗时-超时时间)/(预期业务量-完成业务量);
计算测试场景的线上延时时间,根据该延时时间控制触发脚本模块测试的时刻,模拟线上情况的延时,等待延时结束后,触发脚本模块执行测试,使线下的测试情况与线上的测试情况接近。
生成单元13还用于将经配置的各个所述脚本模块合并生成所述测试脚本。
测试单元14,用于采用所述测试脚本对所述待测系统进行线下测试,获取第二测试数据;
其中,所述第二测试数据为所述待测系统的线下性能数据;所述线下性能数据包括:线下吞吐量数据、线下内存数据、线下处理器数据和线下响应时间数据中的至少一种数据;。
进一步地,采用动态埋点机制,将测试脚本转为java的埋点代码通过字节码修改技术插入到需要压测的接口中,这些埋点同时可以采集系统性能参数和调用时间等数据。
计算单元15,用于根据所述第一测试数据和所述第二测试数据,获取线下测试的误差数据,基于误差数据和所述第二测试数据,生成所述待测系统的容量测试结果。
进一步地,计算单元15可根据所述第一测试数据和与所述第一测试数据对应的第二测试数据,获取线下测试的误差数据,基于误差数据和与所述第一测试数据对应的第二测试数据,生成所述待测系统的容量测试结果。
具体地,计算单元15根据所述第一测试数据生成线上性能曲线;
在本实施例中,第一测试数据为线上性能数据如:吞吐量数据、内存数据、处理器数据和响应时间数据等数据。可根据各类性能数据分别拟合生成相应的线上性能曲线。
例如:吞吐量数据线上曲线为y线上=m线上x线上+b线上;
计算单元15根据与所述第一测试数据对应的所述第二测试数据生成线下性能曲线;
具体地,第二测试数据为线下性能数据如:吞吐量数据、内存数据、处理器数据和响应时间数据等数据。可根据各类性能数据分别生成相应的线下性能曲线。
例如:吞吐量数据线下曲线为y线下=m线下x线下+b线下;
计算单元15能够计算所述上性能曲线与所述线下性能曲线之间的误差数据;
具体地,分别计算每一个性能数据的线上曲线与线下曲线之间的误差。
例如:吞吐量误差数据为y误差=(m线上-m线下)x误差+b线上-b线下;
计算单元15根据所述误差数据和与所述第一测试数据对应的所述第二测试数据,生成所述容量测试结果。
具体地,根据每一个性能数据的误差数据和相应的线下数据,评估容量测试数据。
例如:评估吞吐量测试数据=y线下+y误差。
本实施例考虑到线下测试的数据与线上测试的数据存在差异,因此采用计算两次(线上测试和线下测试)标准曲线斜率差异的方式,修正结果数据。
在本实施例中,系统容量测试装置1通过监测待测系统线上测试时的性能数据和接口数据得到第一测试数据;通过对第一测试数据进行分析,获取待测系统的接口压力情况以及相应的测试场景,依据接口的压力情况生成调用比例高的接口的清单;根据接口清单生成用于测试相应接口的测试脚本对系统进行线下测试,得到第二测试数据;将第二测试数据与第一测试数据中相应的数据进行比对,获取线下测试的误差数据,基于误差数据调节第二测试数据,进而得到与线上的真实情况接近的容量测试结果,测试的准确性高,得到了线下的测试结果与线上的测试结果相接近的目的。采用系统容量测试装置1可获取待测系统的最优容量值,进而评估线上机器数据的增减,同时还可以了解在压力下,待测系统能否稳定运行。
实施例三
为实现上述目的,本发明还提供一种计算机设备2,该计算机设备2包括多个计算机设备2,实施例二的系统容量测试装置1的组成部分可分散于不同的计算机设备2中,计算机设备2可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备2至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器23、网络接口22以及系统容量测试装置1(参考图7)。需要指出的是,图7仅示出了具有组件-的计算机设备2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,所述存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例一的系统容量测试方法的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器23在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器23通常用于控制计算机设备2的总体操作例如执行与所述计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器23用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述的系统容量测试装置1等。
所述网络接口22可包括无线网络接口或有线网络接口,该网络接口22通常用于在所述计算机设备2与其他计算机设备2之间建立通信连接。例如,所述网络接口22用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图7仅示出了具有部件21-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述系统容量测试装置1还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器23)所执行,以完成本发明。
实施例四
为实现上述目的,本发明还提供一种计算机可读存储介质,其包括多个存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器23执行时实现相应功能。本实施例的计算机可读存储介质用于存储系统容量测试装置1,被处理器23执行时实现实施例一的系统容量测试方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种系统容量测试方法,其特征在于,包括:
监测待测系统获取第一测试数据;
分析所述第一测试数据生成接口清单,其中,所述接口清单包括测试接口信息和与所述测试接口信息对应的测试场景信息;
根据所述接口清单中的所述测试接口信息和与所述测试接口信息对应的测试场景信息,生成测试脚本;
采用所述测试脚本对所述待测系统进行线下测试,获取第二测试数据;
根据所述第一测试数据和所述第二测试数据,获取线下测试的误差数据,基于误差数据和所述第二测试数据,生成所述待测系统的容量测试结果。
2.根据权利要求1所述的系统容量测试方法,其特征在于,所述第一测试数据包括线上性能数据、接口数据和与所述接口数据对应的场景数据;
所述分析所述第一测试数据,生成接口清单,包括:
统计所述待测系统的各个接口在所述第一测试数据中的接口数据;
判断各个接口的所述接口数据是否符合预设条件;
提取符合所述预设条件的接口数据,生成测试接口信息;
获取与提取的所述接口数据对应的所述场景数据,根据所述场景数据生成测试场景信息;
根据所述测试接口信息和所述测试场景信息,生成所述接口清单。
3.根据权利要求2所述的系统容量测试方法,其特征在于,所述预设条件包括以下至少一种条件:
所述接口数据的调用次数是否大于第一阈值;
所述接口数据的调用峰值是否平均;
所述接口数据的调用成功率是否大于第二阈值;
所述接口数据的平均延时时间是否小于第三阈值。
4.根据权利要求1所述的系统容量测试方法,其特征在于,所述根据所述接口清单中的所述测试接口信息和与所述测试接口信息对应的测试场景信息,生成测试脚本,包括:
提取脚本数据库中与各个所述测试场景信息对应的脚本模块,所述脚本数据库中存储多个用于测试不同场景的脚本模块;
依据与所述测试场景信息对应的所述测试接口信息,配置与所述测试场景信息关联的所述脚本模块;
将经配置的各个所述脚本模块合并生成所述测试脚本。
5.根据权利要求1所述的系统容量测试方法,其特征在于,所述第二测试数据为所述待测系统的线下性能数据,其中所述线下性能数据包括:线下吞吐量数据、线下内存数据、线下处理器数据和线下响应时间数据中的至少一种数据;
所述线上性能数据与所述线下性能数据相对应,所述线上性能数据包括:线上吞吐量数据、线上内存数据、线上处理器数据和线上响应时间数据中的至少一种数据;
所述根据所述第一测试数据和所述第二测试数据,获取线下测试的误差数据,基于误差数据和所述第二测试数据,生成所述待测系统的容量测试结果,包括:
根据所述第一测试数据和与所述第一测试数据对应的第二测试数据,获取线下测试的误差数据,基于误差数据和与所述第一测试数据对应的第二测试数据,生成所述待测系统的容量测试结果。
6.根据权利要求5所述的系统容量测试方法,其特征在于,所述根据所述第一测试数据和与所述第一测试数据对应的第二测试数据,获取线下测试的误差数据,基于误差数据和与所述第一测试数据对应的第二测试数据,生成所述待测系统的容量测试结果,包括:
根据所述第一测试数据生成线上性能曲线;
根据与所述第一测试数据对应的所述第二测试数据生成线下性能曲线;
计算所述上性能曲线与所述线下性能曲线之间的误差数据;
根据所述误差数据和与所述第一测试数据对应的所述第二测试数据,生成所述容量测试结果。
7.一种系统容量测试装置,其特征在于,包括:
监测单元,用于监测待测系统获取第一测试数据;
分析单元,用于分析所述第一测试数据生成接口清单,其中,所述接口清单包括测试接口信息和与所述测试接口信息对应的测试场景信息;
生成单元,用于根据所述接口清单中的所述测试接口信息和与所述测试接口信息对应的测试场景信息,生成测试脚本;
测试单元,用于采用所述测试脚本对所述待测系统进行线下测试,获取第二测试数据;
计算单元,用于根据所述第一测试数据和所述第二测试数据,获取线下测试的误差数据,基于误差数据和所述第二测试数据,生成所述待测系统的容量测试结果。
8.根据权利要求7所述的系统容量测试装置,其特征在于,所述生成单元用于提取脚本数据库中与各个所述测试场景信息对应的脚本模块,所述脚本数据库中存储多个用于测试不同场景的脚本模块;依据与所述测试场景信息对应的所述测试接口信息,配置与所述测试场景信息关联的所述脚本模块;将经配置的各个所述脚本模块合并生成所述测试脚本。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010595662.3A CN111723017A (zh) | 2020-06-28 | 2020-06-28 | 系统容量测试方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010595662.3A CN111723017A (zh) | 2020-06-28 | 2020-06-28 | 系统容量测试方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111723017A true CN111723017A (zh) | 2020-09-29 |
Family
ID=72569192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010595662.3A Pending CN111723017A (zh) | 2020-06-28 | 2020-06-28 | 系统容量测试方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111723017A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023125272A1 (zh) * | 2021-12-29 | 2023-07-06 | 天翼物联科技有限公司 | Radius环境下的全链路压测方法、装置、计算机设备及存储介质 |
CN117520129A (zh) * | 2023-11-21 | 2024-02-06 | 北京东青互联科技有限公司 | 一种数据中心设备监控方法、装置、设备及介质 |
-
2020
- 2020-06-28 CN CN202010595662.3A patent/CN111723017A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023125272A1 (zh) * | 2021-12-29 | 2023-07-06 | 天翼物联科技有限公司 | Radius环境下的全链路压测方法、装置、计算机设备及存储介质 |
CN117520129A (zh) * | 2023-11-21 | 2024-02-06 | 北京东青互联科技有限公司 | 一种数据中心设备监控方法、装置、设备及介质 |
CN117520129B (zh) * | 2023-11-21 | 2024-05-10 | 北京东青互联科技有限公司 | 一种数据中心设备监控方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11366738B2 (en) | System to determine performance based on entropy values | |
CN108491321B (zh) | 测试用例范围确定方法、装置及存储介质 | |
CN107436844B (zh) | 一种接口用例合集的生成方法及装置 | |
CN109992473B (zh) | 应用系统的监控方法、装置、设备及存储介质 | |
CN108241580B (zh) | 客户端程序的测试方法及终端 | |
EP2838022B1 (en) | User sensory quality estimation device, terminal bottleneck determination device, similar operation extraction device, and methods and programs therefor | |
CN111723017A (zh) | 系统容量测试方法、装置、计算机设备及存储介质 | |
CN112269744A (zh) | 系统异常测试方法、装置、计算机设备和存储介质 | |
CN111198797B (zh) | 操作监控方法及装置、操作分析方法及装置 | |
CN110647471A (zh) | 接口测试用例生成方法、电子装置及存储介质 | |
CN111258913A (zh) | 算法自动测试方法、装置、计算机系统及可读存储介质 | |
CN111240905B (zh) | 投屏诊断方法、装置、系统、存储介质和设备 | |
CN112395187A (zh) | 测试方法、系统、计算机设备及存储介质 | |
CN112131129A (zh) | 一种应用程序的测试方法及系统 | |
CN111124878A (zh) | 测试报告生成方法、装置、计算机设备及存储介质 | |
CN109656791B (zh) | 一种基于Jmeter的gRPC性能测试方法及装置 | |
CN113207146B (zh) | 无线通信网络质量监控系统及方法 | |
CN116383025A (zh) | 基于Jmeter的性能测试方法、装置、设备及介质 | |
CN107231268B (zh) | 测试网站性能的方法和装置 | |
CN106933694B (zh) | 应用程序错误定位方法及装置 | |
CN115358772A (zh) | 一种交易风险预测方法、装置、存储介质及计算机设备 | |
CN112631577B (zh) | 一种模型的调度方法、模型调度器以及模型安全测试平台 | |
CN110489201B (zh) | 容器性能测试装置及方法 | |
CN114531253A (zh) | 一种威胁情报生成方法、设备、系统及存储介质 | |
CN113535580A (zh) | 一种cts测试方法、装置及测试设备 |
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 |