CN111752786A - 压力测试过程中的数据存储方法、汇总方法、设备及介质 - Google Patents

压力测试过程中的数据存储方法、汇总方法、设备及介质 Download PDF

Info

Publication number
CN111752786A
CN111752786A CN201910248634.1A CN201910248634A CN111752786A CN 111752786 A CN111752786 A CN 111752786A CN 201910248634 A CN201910248634 A CN 201910248634A CN 111752786 A CN111752786 A CN 111752786A
Authority
CN
China
Prior art keywords
time
preset
pressure measurement
time period
reading
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
CN201910248634.1A
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN201910248634.1A priority Critical patent/CN111752786A/zh
Publication of CN111752786A publication Critical patent/CN111752786A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/24Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Testing Of Devices, Machine Parts, Or Other Structures Thereof (AREA)

Abstract

本公开提供了一种压力测试过程中的数据存储方法,应用于压测容器,所述方法包括:监听获知当前时刻满足预设存储时刻,根据所述当前时刻确定目标时间段;统计所述目标时间段内对预设接口执行所述压力测试对应的压测数据;根据所述压测数据,确定目标数据;发送所述目标数据至数据库以进行存储。本公开还提供了一种压力测试过程中的数据汇总方法、一种计算机设备及一种计算机可读存储介质。

Description

压力测试过程中的数据存储方法、汇总方法、设备及介质
技术领域
本发明涉及压力测试技术领域,尤其涉及一种压力测试过程中的数据存储方法、压力测试过程中的数据汇总方法、计算机设备及计算机可读存储介质。
背景技术
随着主流系统的服务化设计,接口已经成为各系统间通信的桥梁,因此,接口的性能压测也变得越来越重要。
传统上通常使用专业压测工具如JMeter对接口进行压力测试。JMeter在对接口进行压力测试时,会实时将测试结果存储在jtl文件中,这种存储方式非常低效;且每次执行压力测试时产生的jtl文件非常大,甚至高达数十G,极其耗费文件系统资源;另外,由于jtl文件过大,也会导致解析jtl文件时耗时严重。
发明内容
本公开的目的是提供一种压力测试过程中的数据存储方法、一种压力测试过程中的数据汇总方法、一种计算机设备及一种计算机可读存储介质,用于解决现有技术中存储测试结果的方式过于低效、将测试结果存储在jtl文件中过于耗费文件系统资源以及解析jtl文件耗时严重的缺陷。
本公开的一个方面提供了一种压力测试过程中的数据存储方法,应用于压测容器,上述方法包括:监听获知当前时刻满足预设存储时刻,根据上述当前时刻确定目标时间段;统计上述目标时间段内对预设接口执行上述压力测试对应的压测数据;根据上述压测数据,确定目标数据;发送上述目标数据至数据库以进行存储。
根据本公开的实施例,在上述监听获知当前时刻满足预设存储时刻,根据上述当前时刻确定目标时间段之前,上述方法还包括:获取上述预设接口对应的预设请求地址,并基于上述预设请求地址创建加载请求;向上述预设请求地址发送上述加载请求,并记录发送上述加载请求的发送时间;接收上述加载请求对应的加载响应,并确定接收上述加载响应的接收时间。
根据本公开的实施例,在上述目标时间段内创建有至少一个上述加载请求,上述统计上述目标时间段内对预设接口执行上述压力测试对应的压测数据,包括:确定上述预设接口的接口名称;确定上述压测容器的容器名称;统计至少一个上述加载请求的数量;统计至少一个上述加载请求中每个上述加载请求的响应时间,得到至少一个上述响应时间,其中,上述响应时间通过对应加载请求的发送时间和该加载请求对应加载响应的接收时间得到;统计至少一个上述加载请求中出现错误的数量;统计上述当前时刻存在的工作线程的数量,其中,上述工作线程用于执行压测任务。
根据本公开的实施例,上述根据上述压测数据,确定目标数据,包括:根据统计出的至少一个上述加载请求的数量和上述目标时间段的时间间隔,计算与上述压测容器对应的QPS;根据统计出的至少一个上述加载请求的数量和统计出的至少一个上述响应时间,计算与上述压测容器对应的平均响应时间;确定统计出的至少一个上述响应时间的预设分位值;将上述接口名称、上述容器名称、上述至少一个上述加载请求的数量、上述与上述压测容器对应的QPS、上述与上述压测容器对应的平均响应时间、上述预设分位值、上述错误的数量和上述工作线程的数量,确定为上述目标数据。
根据本公开的实施例,上述监听获知当前时刻满足预设存储时刻,根据上述当前时刻确定目标时间段,包括:根据上述当前时刻和开始对上述预设接口执行上述压力测试的开始时刻,确定上述目标时间段;或者根据上述当前时刻和预设时间间隔,确定上述目标时间段。
本公开的另一个方面提供了压力测试过程中的数据汇总方法,应用于压测容器管理平台,上述压测容器管理平台管理多个压测容器,上述方法包括:监听获知当前时刻大于预设存储时刻,从数据库中读取与上述预设存储时刻对应的目标数据组,其中,上述目标数据组包括多条目标数据,上述目标数据与上述压测容器一一对应,上述压测容器在上述预设存储时刻统计目标时间段内对预设接口执行上述压力测试对应的压测数据并将由上述压测数据转换后的目标数据发送给上述数据库以进行存储,上述目标时间段通过上述预设存储时刻确定;将读取出的上述目标数据组进行汇总。
根据本公开的实施例,上述监听获知当前时刻大于预设存储时刻,从数据库中读取与上述预设存储时刻对应的目标数据组,包括:获取上述预设存储时刻,根据上述预设存储时刻确定读取时间段,其中,上述预设存储时刻被包含在上述读取时间段内;监听获知上述当前时刻大于上述预设存储时刻,从上述数据库中读取上述读取时间段内存储的上述目标数据组。
根据本公开的实施例,上述根据上述预设存储时刻确定读取时间段,包括:获取预设时间间隔,根据上述预设存储时刻和上述预设时间间隔确定上述读取时间段,其中,上述读取时间段的段首大于上述压测容器开始执行上述压力测试的开始时刻,或者上述读取时间段的段首与上述预设存储时刻之间的间隔小于上述预设时间间隔。
根据本公开的实施例,上述从上述数据库中读取上述读取时间段内存储的上述目标数据组,包括:从上述数据库中读取上述读取时间段内存储的每个上述压测容器创建加载请求的数量;从上述数据库中读取上述读取时间段内存储的每个上述压测容器对应的平均响应时间;从上述数据库中读取上述读取时间段内存储的每个上述压测容器对应的预设分位值,其中,上述预设分位值表征响应时间的分位值。
根据本公开的实施例,上述将读取出的上述目标数据组进行汇总,包括:根据读取的上述每个上述压测容器创建加载请求的数量,统计多个上述压测容器对应的所有加载请求的总数量;根据统计的上述所有加载请求的总数量和上述预设时间间隔,计算与多个上述压测容器对应的QPS;根据读取的上述每个上述压测容器创建加载请求的数量、读取的上述每个上述压测容器对应的平均响应时间和统计的上述所有加载请求的总数量,计算多个上述压测容器对应的平均响应时间;根据读取的上述每个压测容器对应的预设分位值和多个上述压测容器的数量,计算上述预设分位值的平均值。
本公开的再一个方面提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述计算机程序时用于实现如上任一项所述的压力测试过程中的数据存储方法的步骤或者如上任一项所述的压力测试过程中的数据汇总方法的步骤。
本公开的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时用于实现如上任一项所述的压力测试过程中的数据存储方法的步骤或者如上任一项所述的压力测试过程中的数据汇总方法的步骤。
本公开提供的压力测试过程中的数据存储方法,可以应用于每一个压测容器,对于每一个压测容器而言,在当前时刻满足预设存储时刻时,统计目标时间段内的压测数据,然后将由目标时间段内的压测数据确定的目标数据主动发送至数据库中以进行存储。本公开的实施例通过定期存储转换后的压测数据,可以有效的解决现有技术中存储测试结果的方式过于低效的缺陷;另外,本公开的实施例通过将转换后的压测数据存储至外部的数据库中,可以有效解决现有技术中将测试结果存储在jtl文件中过于耗费文件系统资源以及解析jtl文件耗时严重的缺陷,进而达到减轻系统负担、降低解析耗时压力的效果。
本公开提供的压力测试过程中的数据汇总方法,可以应用于压测容器管理平台,该压测容器管理平台可以管理多个压测容器,这些压测容器在根据压力测试过程中的数据存储方法将目标时间段内的压测数据转换成目标数据并存储至数据库之后,压测容器管理平台可以从数据库中读取出这些压测容器的目标数据,得到目标数据组,然后压测容器管理平台可以将目标数据组按照某种规则进行汇总,以便工作人员更加方便了解预设接口的性能。
附图说明
图1示意性示出了根据本公开实施例的压力测试过程中的数据存储方法的流程图;
图2示意性示出了根据本公开实施例的压力测试过程中的数据存储方案的示意图;
图3示意性示出了根据本公开实施例的压力测试过程中的数据汇总方法的流程图;
图4示意性示出了根据本公开实施例的压力测试过程中的数据汇总方案的示意图;
图5示意性示出了根据本公开实施例的压力测试过程中的数据存储系统的框图;
图6示意性示出了根据本公开实施例的压力测试过程中的数据汇总系统的框图;以及
图7示意性示出了根据本公开实施例的适于实现压力测试过程中的数据存储方法或者压力测试过程中的数据汇总方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本公开,并不用于限定本公开。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开提供的压力测试过程中的数据存储方法,可以应用于每一个压测容器,对于每一个压测容器而言,在当前时刻满足预设存储时刻时,统计目标时间段内的压测数据,然后将由目标时间段内的压测数据确定的目标数据主动发送至数据库中以进行存储。本公开的实施例通过定期存储转换后的压测数据,可以有效的解决现有技术中存储测试结果的方式过于低效的缺陷;另外,本公开的实施例通过将转换后的压测数据存储至外部的数据库中,可以有效解决现有技术中将测试结果存储在jtl文件中过于耗费文件系统资源以及解析jtl文件耗时严重的缺陷,进而达到减轻系统负担、降低解析耗时压力的效果。
图1示意性示出了根据本公开实施例的压力测试过程中的数据存储方法的流程图。
如图1所示,该压力测试过程中的数据存储方法可以包括步骤S101~步骤S104,其中:
步骤S101,监听获知当前时刻满足预设存储时刻,根据当前时刻确定目标时间段。
需要说明的是,压力测试过程中的数据存储方法可以应用于压测容器,压测容器可以用于提供压力测试工具的运行环境,压力测试工具可以用于对预设接口执行压力测试。其中,一个压测容器可以占用物理机的部分或全部资源,一个物理机上也可以存在多个压测容器,此时的每个压测容器可以占用物理机的部分资源。对于每一个压测容器,均可以执行本公开提供的压力测试过程中的数据存储方法。
在本公开的实施例中,预设存储时刻可以包括多个,每两个紧邻的预设存储时刻之间的间隔可以相同,例如可以为预设时间间隔。一旦当前时刻达到了任一预设存储时刻,压测容器便可以根据当前时刻确定目标时间段。其中,监听获知当前时刻满足预设存储时刻,根据当前时刻确定目标时间段,可以包括:根据当前时刻和开始对预设接口执行压力测试的开始时刻,确定目标时间段;或者根据当前时刻和预设时间间隔,确定目标时间段。
若是当前时刻达到了首个预设存储时刻,则可以确定出开始对预设接口执行压力测试的开始时刻,然后将开始时刻和首个预设存储时刻之间的时间段确定为目标时间段。若是当前时刻达到了除首个预设存储时刻之外的任一预设存储时刻,则可以以当前时刻作为目标时间段的段尾,将当前时刻与预设时间间隔做减法后得到的差数作为目标时间段的段首。
此外,在监听获知当前时刻满足预设存储时刻,根据当前时刻确定目标时间段之前,该压力测试过程中的数据存储方法还可以包括:获取预设接口对应的预设请求地址,并基于预设请求地址创建加载请求;向预设请求地址发送加载请求,并记录发送加载请求的发送时间;接收加载请求对应的加载响应,并确定接收加载响应的接收时间。
由于本公开的压力测试过程中的数据存储方法是对预设接口执行压力测试,因此可以基于预设接口的预设请求地址自动创建加载请求,并向该预设请求地址发送创建的加载请求,还可以记录发送加载请求的加载时间。进一步,可以接收返回的与加载请求对应的加载响应,并记录接收加载响应的接收时间。然后,可以继续执行上述一系列的操作,如继续基于预设接口的预设请求地址自动创建加载请求,…,等。
步骤S102,统计目标时间段内对预设接口执行压力测试对应的压测数据。
由于本公开的方案可以定期(如在预设存储时刻)对压测数据执行数据落地操作,因此在当前时刻达到预设存储时刻的情况下,压测容器可以统计出目标时间段内对预设接口执行压力测试对应的压测数据。
其中,在目标时间段内可以创建有至少一个加载请求,统计目标时间段内对预设接口执行压力测试对应的压测数据,可以包括:确定预设接口的接口名称;确定压测容器的容器名称;统计至少一个加载请求的数量;统计至少一个加载请求中每个加载请求的响应时间,得到至少一个响应时间,其中,响应时间通过对应加载请求的发送时间和该加载请求对应加载响应的接收时间得到;统计至少一个加载请求中出现错误的数量;统计当前时刻存在的工作线程的数量,其中,工作线程用于执行压测任务。
对于每一个响应时间,可以通过对应加载响应的接收时间与对应加载请求的发送时间做减法得到。
在统计至少一个加载请求中出现错误的数量之前,对于每一次接收到的加载响应,压测容器可以判断该加载响应中携带的响应码是否为错误码,若是,则表明出现错误;若否,则继续通过业务逻辑判断是否出现错误,比如加载请求想要请求打开百度首面,但是加载响应返回的却是腾讯首页,此种情况下也可以认为出现错误。在当前时刻达到预设存储时刻时,可以统计目标时间段内至少一个加载请求中出现错误的数量。例如,在目标时间段内创建了10次加载请求,也接收到了对应的10次加载响应,通过上述实施例判断出第1次加载响应中的响应码为错误码,第3次加载响应中的响应码为正确码但是不符合业务逻辑,则在目标时间段内出现错误的数量为2次。
对于“统计当前时刻存在的工作线程的数量”这一步骤,例如,在预设存储时刻有5个工作线程正在执行压测任务,如创建加载请求、发送加载请求、接收加载响应等等,则统计出的当前时刻存在的工作线程的数量为5个。
步骤S103,根据压测数据,确定目标数据。
其中,根据压测数据,确定目标数据,包括:根据统计出的至少一个加载请求的数量和目标时间段的时间间隔,计算与压测容器对应的QPS;根据统计出的至少一个加载请求的数量和统计出的至少一个响应时间,计算与压测容器对应的平均响应时间;确定统计出的至少一个响应时间的预设分位值;将接口名称、容器名称、至少一个加载请求的数量、与压测容器对应的QPS、与压测容器对应的平均响应时间、预设分位值、出现错误的数量和工作线程的数量,确定为目标数据。
与压测容器对应的QPS(queries per second,又称为每秒查询率)可以通过统计出的至少一个加载请求的数量与目标时间段的时间间隔做除法得到,其中,目标时间段的时间间隔可以通过目标时间段的段尾与目标时间段的段首做减法得到。计算与压测容器对应的平均响应时间可以是:先对所有响应时间求和得到总时间,然后通过总时间与统计出的至少一个加载请求的数量作除法可以得到平均响应时间。预设分位值可以包括至少一个,例如50分位值、90分位值、95分位值等。
步骤S104,发送目标数据至数据库以进行存储。
其中,数据库中包含有预设数据表,所述目标数据占用数据库表中的一行。若有多个压测容器,则每个压测容器在每个预设存储时刻对应的目标数据均占用预设数据表中的一行。
如图2所示,图2示意性示出了根据本公开实施例的压力测试过程中的数据存储方案的示意图。在图2中,预设接口为接口A,共有n个压测容器分别对接口A执行压力测试,压测容器1发送给数据库的目标数据为A1,压测容器2发送给数据库的目标数据为A2,…,压测容器n发送给数据库的目标数据为An。
进一步,在存在多个压测容器均对预设接口执行压力测试任务且每个压测容器均将预设存储时刻对应的目标数据发送给数据库之后,压测容器管理平台还可以从数据库中读取这多个压测容器中各个压测容器存储的目标数据并进行汇总,以便工作人员更加方便了解预设接口的性能。其中,压测容器管理平台可以管理上述多个压测容器。
本公开提供的压力测试过程中的数据汇总方法,可以应用于压测容器管理平台,该压测容器管理平台可以管理多个压测容器,这些压测容器在根据压力测试过程中的数据存储方法将目标时间段内的压测数据转换成目标数据并存储至数据库之后,压测容器管理平台可以从数据库中读取出这些压测容器中各个压测容器的目标数据,得到目标数据组,然后压测容器管理平台可以将目标数据组按照某种规则进行汇总,以便工作人员更加方便了解预设接口的性能。
图3示意性示出了根据本公开实施例的压力测试过程中的数据汇总方法的流程图。
如图3所示,该压力测试过程中的数据汇总方法可以包括步骤S301~步骤S302,其中:
步骤S301,监听获知当前时刻大于预设存储时刻,从数据库中读取与预设存储时刻对应的目标数据组,其中,目标数据组包括多条目标数据,目标数据与压测容器一一对应,压测容器在预设存储时刻统计目标时间段内对预设接口执行压力测试对应的压测数据并将由压测数据转换后的目标数据发送给数据库以进行存储,目标时间段通过预设存储时刻确定。
其中,监听获知当前时刻大于预设存储时刻,从数据库中读取与预设存储时刻对应的目标数据组,可以包括:获取预设存储时刻,根据预设存储时刻确定读取时间段,其中,预设存储时刻被包含在读取时间段内;监听获知当前时刻大于预设存储时刻,从数据库中读取读取时间段内存储的目标数据组。
本公开的实施例主要是将多个压测容器最近一次存储在数据库中的目标数据组进行汇总,因此从数据库读取出的目标数据组应该是最新的,本公开可以通过设定读取时间段的范围确保压测容器管理平台读取的目标数据组为最新的数据。具体地,可以包括:获取预设时间间隔,根据预设存储时刻和预设时间间隔确定读取时间段,其中,读取时间段的段首大于压测容器开始执行压力测试的开始时刻,或者读取时间段的段首与预设存储时刻之间的间隔小于预设时间间隔。在首次读取目标数据组时,可以将读取时间段的段首设定为开始执行压力测试的开始时刻之后;在非首次读取目标数据组时,可以将读取时间段的段首设定在上一次预设存储时刻与本次预设存储时刻之间。优选地,读取时间段的段尾与预设存储时刻之间的间隔也小于预设时间间隔。其中,每两个相邻的读取时间段的段首之间的间隔为预设时间间隔,每两个相邻的读取时间段的段尾之间的间隔也为预设时间间隔。
例如,3个压测容器开始对预设接口执行压力测试的开始时间均为3点1分3秒,第一个预设存储时刻为3点1分5秒,第2个预设存储时刻为3点1分10秒。在当前时刻大于第一个预设存储时刻时,设定的读取时间段的范围可以是3点1分4秒至3点1分8秒;在当前时刻大于第一个预设存储时刻时,设定的读取时间段的范围可以是3点1分9秒至3点1分13秒。
可选地,压测容器管理平台可以获知压测容器开始执行压力测试的开始时间、第一个预设存储时刻和预设时间间隔,然后可以通过第一个预设存储时刻和预设时间间隔自动计算后续的预设存储时刻,进而设定读取时间段。可选地,每一个压测容器在将目标数据发送至数据库中之后,可以将发送目标数据至数据库的时间发送给压测容器管理平台,压测容器管理平台在接收到该时间之后,可以根据该时间设定读取时间段。其中,设定读取时间段的方式与上述实施例一致,本公开在此不作限定。
从数据库中读取读取时间段内存储的目标数据组,可以包括:从数据库中读取读取时间段内存储的每个压测容器创建加载请求的数量;从数据库中读取读取时间段内存储的每个压测容器对应的平均响应时间;从数据库中读取读取时间段内存储的每个压测容器对应的预设分位值,其中,预设分位值表征响应时间的分位值。
例如,有3个压测容器,读取时间段为3点1分9秒至3点1分13秒,在该读取时间段内存储的数据为与预设存储时刻3点1分10秒对应的数据。其中,在该读取时间段内的加载请求的数量有3条,分别对应3个压测容器;在该读取时间段内的平均响应时间有3条,分别对应3个压测容器;在该读取时间段内的预设分位值有3条,分别对应3个压测容器,其中,每条预设分位值可以包括多个预设分位值。
步骤S302,将读取出的目标数据组进行汇总。
将读取出的目标数据组进行汇总,可以包括:根据读取的每个压测容器创建加载请求的数量,统计多个压测容器对应的所有加载请求的总数量;根据统计的所有加载请求的总数量和预设时间间隔,计算与多个压测容器对应的QPS;根据读取的每个压测容器创建加载请求的数量、读取的每个压测容器对应的平均响应时间和统计的所有加载请求的总数量,计算多个压测容器对应的平均响应时间;根据读取的每个压测容器对应的预设分位值和多个压测容器的数量,计算预设分位值的平均值。
具体地,通过计算读取的每个压测容器创建加载请求的数量的总和可以得出多个压测容器对应的所有加载请求的总数量。通过将所有加载请求的总数量和预设时间间隔做除法可以计算出与多个压测容器对应的QPS。
计算多个压测容器对应的平均响应时间,具体可以是:将读取的每个压测容器创建加载请求的数量与该压测容器对应的平均响应时间做乘法,然后将所有的乘积相加,再通过相加后的乘积与统计的所有加载请求的总数量做除法,可以得到多个压测容器对应的平均响应时间。例如,有3个压测容器,分别对应的加载请求的数量为100个、95个、93个,平均响应时间为0.2秒、0.25秒、0.12秒,所有加载请求的总数量为288个,则这3个压测容器对应的平均响应时间为(100×0.2+95×0.25+93×0.12)÷288≈0.19秒。
计算预设分位值的平均值,具体可以是:对于每一个相同地位的预设分位值,将所有压测容器对应的该处于相同地位的预设分位值相加,然后通过相加后的处于相同地位的预设分位值与多个压测容器的数量做除法,可以得到该处于相同地位的预设分位值的平均值。例如,有3个压测容器,这3个压测容器分别对应的90分位值为0.22秒、0.27秒、0.13秒,则90分位值的平均值为(0.22+0.27+0.13)÷3≈0.21秒。
如图4所示,图4示意性示出了根据本公开实施例的压力测试过程中的数据汇总方案的示意图。在图4中,预设接口为接口A,每次汇总时可以将目标数据A1、目标数据A2,…,目标数据An进行汇总,并且预设时间间隔可以设定为5秒。
图5示意性示出了根据本公开实施例的压力测试过程中的数据存储系统的框图。
如图5所示,该压力测试过程中的数据存储系统500可以包括第一确定模块510、统计模块520、第二确定模块530和第一发送模块540,其中:
第一确定模块510,用于监听获知当前时刻满足预设存储时刻,根据当前时刻确定目标时间段。
统计模块520,用于统计目标时间段内对预设接口执行压力测试对应的压测数据。
第二确定模块530,用于根据压测数据,确定目标数据。
第一发送模块540,用于发送目标数据至数据库以进行存储。
本公开提供的压力测试过程中的数据存储系统,可以应用于每一个压测容器,对于每一个压测容器而言,在当前时刻满足预设存储时刻时,统计目标时间段内的压测数据,然后将由目标时间段内的压测数据确定的目标数据主动发送至数据库中以进行存储。本公开的实施例通过定期存储转换后的压测数据,可以有效的解决现有技术中存储测试结果的方式过于低效的缺陷;另外,本公开的实施例通过将转换后的压测数据存储至外部的数据库中,可以有效解决现有技术中将测试结果存储在jtl文件中过于耗费文件系统资源以及解析jtl文件耗时严重的缺陷,进而达到减轻系统负担、降低解析耗时压力的效果。
作为一种可选的实施例,该压力测试过程中的数据存储系统还可以包括:获取模块,用于在监听获知当前时刻满足预设存储时刻,根据当前时刻确定目标时间段之前,获取预设接口对应的预设请求地址,并基于预设请求地址创建加载请求;第二发送模块,用于向预设请求地址发送加载请求,并记录发送加载请求的发送时间;接收模块,用于接收加载请求对应的加载响应,并确定接收加载响应的接收时间。
作为一种可选的实施例,在目标时间段内创建有至少一个加载请求,统计模块可以包括:第一确定单元,用于确定预设接口的接口名称;第二确定单元,用于确定压测容器的容器名称;第一统计单元,用于统计至少一个加载请求的数量;第二统计单元,用于统计至少一个加载请求中每个加载请求的响应时间,得到至少一个响应时间,其中,响应时间通过对应加载请求的发送时间和该加载请求对应加载响应的接收时间得到;第三统计单元,用于统计至少一个加载请求中出现错误的数量;第四统计单元,用于统计当前时刻存在的工作线程的数量,其中,工作线程用于执行压测任务。
作为一种可选的实施例,第二确定模块可以包括:第一计算单元,用于根据统计出的至少一个加载请求的数量和目标时间段的时间间隔,计算与压测容器对应的QPS;第二计算单元,用于根据统计出的至少一个加载请求的数量和统计出的至少一个响应时间,计算与压测容器对应的平均响应时间;第三确定单元,用于确定统计出的至少一个响应时间的预设分位值;第四确定单元,用于将接口名称、容器名称、至少一个加载请求的数量、与压测容器对应的QPS、与压测容器对应的平均响应时间、预设分位值、错误的数量和工作线程的数量,确定为目标数据。
作为一种可选的实施例,第一确定模块可以包括:第五确定单元,用于根据当前时刻和开始对预设接口执行压力测试的开始时刻,确定目标时间段;或者第六确定单元,用于根据当前时刻和预设时间间隔,确定目标时间段。
图6示意性示出了根据本公开实施例的压力测试过程中的数据汇总系统的框图。
如图6所示,该压力测试过程中的数据存储系统600可以包括读取模块610和汇总模块620,其中:
读取模块610,用于监听获知当前时刻大于预设存储时刻,从数据库中读取与预设存储时刻对应的目标数据组,其中,目标数据组包括多条目标数据,目标数据与压测容器一一对应,压测容器在预设存储时刻统计目标时间段内对预设接口执行压力测试对应的压测数据并将由压测数据转换后的目标数据发送给数据库以进行存储,目标时间段通过预设存储时刻确定。
汇总模块620,用于将读取出的目标数据组进行汇总。
本公开提供的压力测试过程中的数据汇总系统,可以应用于压测容器管理平台,该压测容器管理平台可以管理多个压测容器,这些压测容器在根据压力测试过程中的数据存储方法将目标时间段内的压测数据转换成目标数据并存储至数据库之后,压测容器管理平台可以从数据库中读取出这些压测容器的目标数据,得到目标数据组,然后压测容器管理平台可以将目标数据组按照某种规则进行汇总,由于以便工作人员更加方便了解预设接口的性能。
作为一种可选的实施例,读取模块可以包括:获取单元,用于获取预设存储时刻,根据预设存储时刻确定读取时间段,其中,预设存储时刻被包含在读取时间段内;读取单元,用于监听获知当前时刻大于预设存储时刻,从数据库中读取读取时间段内存储的目标数据组。
作为一种可选的实施例,获取单元在根据预设存储时刻确定读取时间段时还可以用于:获取预设时间间隔,根据预设存储时刻和预设时间间隔确定读取时间段,其中,读取时间段的段首大于压测容器开始执行压力测试的开始时刻,或者读取时间段的段首与预设存储时刻之间的间隔小于预设时间间隔。
作为一种可选的实施例,读取单元在从数据库中读取读取时间段内存储的目标数据组时还可以包括:第一读取子单元,用于从数据库中读取读取时间段内存储的每个压测容器创建加载请求的数量;第二读取子单元,用于从数据库中读取读取时间段内存储的每个压测容器对应的平均响应时间;第三读取子单元,用于从数据库中读取读取时间段内存储的每个压测容器对应预设分位值,其中,预设分位值表征响应时间的分位值。
作为一种可选的实施例,汇总模块可以包括:第五统计单元,用于根据读取的每个压测容器创建加载请求的数量,统计多个压测容器对应的所有加载请求的总数量;第三计算单元,用于根据统计的所有加载请求的总数量和预设时间间隔,计算与多个压测容器对应的QPS;第四计算单元,用于根据读取的每个压测容器创建加载请求的数量、读取的每个压测容器对应的平均响应时间和统计的所有加载请求的总数量,计算多个压测容器对应的平均响应时间;第五计算单元,用于根据读取的每个压测容器对应的预设分位值和多个压测容器的数量,计算预设分位值的平均值。
图7示意性示出了根据本公开实施例的适于实现压力测试过程中的数据存储方法或者压力测试过程中的数据汇总方法的计算机设备的硬件架构示意图。本实施例中,计算机设备700是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,计算机设备700至少包括但不限于:可通过系统总线相互通信连接存储器710、处理器720、网络接口730。其中:
存储器710至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器710可以是计算机设备700的内部存储模块,例如该计算机设备700的硬盘或内存。在另一些实施例中,存储器710也可以是计算机设备700的外部存储设备,例如该计算机设备700上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器710还可以既包括计算机设备700的内部存储模块也包括其外部存储设备。本实施例中,存储器710通常用于存储安装于计算机设备700的操作系统和各类应用软件,例如压力测试过程中的数据存储方法的程序代码或者压力测试过程中的数据汇总方法的程序代码等。此外,存储器710还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器720在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器720通常用于控制计算机设备700的总体操作,例如执行与计算机设备700进行数据交互或者通信相关的控制和处理等。本实施例中,处理器720用于运行存储器710中存储的程序代码或者处理数据。
网络接口730可包括无线网络接口或有线网络接口,该网络接口730通常用于在计算机设备700与其他计算机设备之间建立通信连接。例如,网络接口730用于通过网络将计算机设备700与外部终端相连,在计算机设备700与外部终端之间的建立数据传输通道和通信连接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图7仅示出了具有部件710-730的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器710中的压力测试过程中的数据存储方法或者压力测试过程中的数据汇总方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器720)所执行,以完成本发明。
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的压力测试过程中的数据存储方法的步骤或者压力测试过程中的数据汇总方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的压力测试过程中的数据存储方法的程序代码或者压力测试过程中的数据汇总方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (12)

1.一种压力测试过程中的数据存储方法,其特征在于,应用于压测容器,所述方法包括:
监听获知当前时刻满足预设存储时刻,根据所述当前时刻确定目标时间段;
统计所述目标时间段内对预设接口执行所述压力测试对应的压测数据;
根据所述压测数据,确定目标数据;
发送所述目标数据至数据库以进行存储。
2.根据权利要求1所述的方法,其特征在于,在所述监听获知当前时刻满足预设存储时刻,根据所述当前时刻确定目标时间段之前,所述方法还包括:
获取所述预设接口对应的预设请求地址,并基于所述预设请求地址创建加载请求;
向所述预设请求地址发送所述加载请求,并记录发送所述加载请求的发送时间;
接收所述加载请求对应的加载响应,并确定接收所述加载响应的接收时间。
3.根据权利要求2所述的方法,其特征在于,在所述目标时间段内创建有至少一个所述加载请求,所述统计所述目标时间段内对预设接口执行所述压力测试对应的压测数据,包括:
确定所述预设接口的接口名称;
确定所述压测容器的容器名称;
统计至少一个所述加载请求的数量;
统计至少一个所述加载请求中每个所述加载请求的响应时间,得到至少一个所述响应时间,其中,所述响应时间通过对应加载请求的发送时间和该加载请求对应加载响应的接收时间得到;
统计至少一个所述加载请求中出现错误的数量;
统计所述当前时刻存在的工作线程的数量,其中,所述工作线程用于执行压测任务。
4.根据权利要求3所述的方法,其特征在于,所述根据所述压测数据,确定目标数据,包括:
根据统计出的至少一个所述加载请求的数量和所述目标时间段的时间间隔,计算与所述压测容器对应的QPS;
根据统计出的至少一个所述加载请求的数量和统计出的至少一个所述响应时间,计算与所述压测容器对应的平均响应时间;
确定统计出的至少一个所述响应时间的预设分位值;
将所述接口名称、所述容器名称、所述至少一个所述加载请求的数量、所述与所述压测容器对应的QPS、所述与所述压测容器对应的平均响应时间、所述预设分位值、所述错误的数量和所述工作线程的数量,确定为所述目标数据。
5.根据权利要求1所述的方法,其特征在于,所述监听获知当前时刻满足预设存储时刻,根据所述当前时刻确定目标时间段,包括:
根据所述当前时刻和开始对所述预设接口执行所述压力测试的开始时刻,确定所述目标时间段;或者
根据所述当前时刻和预设时间间隔,确定所述目标时间段。
6.一种压力测试过程中的数据汇总方法,其特征在于,应用于压测容器管理平台,所述压测容器管理平台管理多个压测容器,所述方法包括:
监听获知当前时刻大于预设存储时刻,从数据库中读取与所述预设存储时刻对应的目标数据组,其中,所述目标数据组包括多条目标数据,所述目标数据与所述压测容器一一对应,所述压测容器在所述预设存储时刻统计目标时间段内对预设接口执行所述压力测试对应的压测数据并将由所述压测数据转换后的目标数据发送给所述数据库以进行存储,所述目标时间段通过所述预设存储时刻确定;
将读取出的所述目标数据组进行汇总。
7.根据权利要求6所述的方法,其特征在于,所述监听获知当前时刻大于预设存储时刻,从数据库中读取与所述预设存储时刻对应的目标数据组,包括:
获取所述预设存储时刻,根据所述预设存储时刻确定读取时间段,其中,所述预设存储时刻被包含在所述读取时间段内;
监听获知所述当前时刻大于所述预设存储时刻,从所述数据库中读取所述读取时间段内存储的所述目标数据组。
8.根据权利要求7所述的方法,其特征在于,所述根据所述预设存储时刻确定读取时间段,包括:
获取预设时间间隔,根据所述预设存储时刻和所述预设时间间隔确定所述读取时间段,其中,所述读取时间段的段首大于所述压测容器开始执行所述压力测试的开始时刻,或者所述读取时间段的段首与所述预设存储时刻之间的间隔小于所述预设时间间隔。
9.根据权利要求7所述的方法,其特征在于,所述从所述数据库中读取所述读取时间段内存储的所述目标数据组,包括:
从所述数据库中读取所述读取时间段内存储的每个所述压测容器创建加载请求的数量;
从所述数据库中读取所述读取时间段内存储的每个所述压测容器对应的平均响应时间;
从所述数据库中读取所述读取时间段内存储的每个所述压测容器对应的预设分位值,其中,所述预设分位值表征响应时间的分位值。
10.根据权利要求9所述的方法,其特征在于,所述将读取出的所述目标数据组进行汇总,包括:
根据读取的所述每个所述压测容器创建加载请求的数量,统计多个所述压测容器对应的所有加载请求的总数量;
根据统计的所述所有加载请求的总数量和所述预设时间间隔,计算与多个所述压测容器对应的QPS;
根据读取的所述每个所述压测容器创建加载请求的数量、读取的所述每个所述压测容器对应的平均响应时间和统计的所述所有加载请求的总数量,计算多个所述压测容器对应的平均响应时间;
根据读取的所述每个压测容器对应的预设分位值和多个所述压测容器的数量,计算所述预设分位值的平均值。
11.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至5任一项所述方法的步骤或者权利要求6至10任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时用于实现权利要求1至5任一项所述方法的步骤或者权利要求6至10任一项所述方法的步骤。
CN201910248634.1A 2019-03-29 2019-03-29 压力测试过程中的数据存储方法、汇总方法、设备及介质 Pending CN111752786A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910248634.1A CN111752786A (zh) 2019-03-29 2019-03-29 压力测试过程中的数据存储方法、汇总方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910248634.1A CN111752786A (zh) 2019-03-29 2019-03-29 压力测试过程中的数据存储方法、汇总方法、设备及介质

Publications (1)

Publication Number Publication Date
CN111752786A true CN111752786A (zh) 2020-10-09

Family

ID=72671790

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910248634.1A Pending CN111752786A (zh) 2019-03-29 2019-03-29 压力测试过程中的数据存储方法、汇总方法、设备及介质

Country Status (1)

Country Link
CN (1) CN111752786A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685271A (zh) * 2020-12-23 2021-04-20 北京字节跳动网络技术有限公司 压测数据处理方法、装置、电子设备及可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159603A (zh) * 2007-10-30 2008-04-09 中兴通讯股份有限公司 一种无线网络海量数据存储方法
CN103455575A (zh) * 2013-08-22 2013-12-18 北京炎黄盈动科技发展有限责任公司 数据统计分析方法和装置
CN103605664A (zh) * 2013-10-22 2014-02-26 芜湖大学科技园发展有限公司 满足不同时间粒度的海量动态数据的快速查询方法
CN103678402A (zh) * 2012-09-21 2014-03-26 厦门雅迅网络股份有限公司 一种海量数据下数据实时统计的方法
US8959048B1 (en) * 2011-10-21 2015-02-17 Google Inc. Index for set emptiness in temporal databases
CN107193909A (zh) * 2017-05-08 2017-09-22 杭州东方通信软件技术有限公司 数据处理方法及系统
CN108763093A (zh) * 2018-06-01 2018-11-06 政采云有限公司 一种自动化测试方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159603A (zh) * 2007-10-30 2008-04-09 中兴通讯股份有限公司 一种无线网络海量数据存储方法
US8959048B1 (en) * 2011-10-21 2015-02-17 Google Inc. Index for set emptiness in temporal databases
CN103678402A (zh) * 2012-09-21 2014-03-26 厦门雅迅网络股份有限公司 一种海量数据下数据实时统计的方法
CN103455575A (zh) * 2013-08-22 2013-12-18 北京炎黄盈动科技发展有限责任公司 数据统计分析方法和装置
CN103605664A (zh) * 2013-10-22 2014-02-26 芜湖大学科技园发展有限公司 满足不同时间粒度的海量动态数据的快速查询方法
CN107193909A (zh) * 2017-05-08 2017-09-22 杭州东方通信软件技术有限公司 数据处理方法及系统
CN108763093A (zh) * 2018-06-01 2018-11-06 政采云有限公司 一种自动化测试方法和系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685271A (zh) * 2020-12-23 2021-04-20 北京字节跳动网络技术有限公司 压测数据处理方法、装置、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN110287052B (zh) 一种异常任务的根因任务确定方法及装置
CN111400294B (zh) 数据异常监测方法、装置及系统
CN110502366B (zh) 案例执行方法、装置、设备及计算机可读存储介质
CN107329881B (zh) 应用系统性能测试方法及装置、计算机设备及存储介质
WO2016155996A1 (en) Production system and method for controlling same
CN111881014A (zh) 一种系统测试方法、装置、存储介质及电子设备
CN113656174A (zh) 资源分配方法、系统、计算机设备和存储介质
CN109918221B (zh) 一种硬盘报错解析方法、系统、终端及存储介质
CN111752786A (zh) 压力测试过程中的数据存储方法、汇总方法、设备及介质
CN111290942A (zh) 压力测试方法、装置以及计算机可读介质
CN107092556B (zh) 测试方法、装置及设备
CN112416648A (zh) 数据校验方法及装置
CN116303320A (zh) 基于日志文件的实时任务管理方法、装置、设备及介质
CN116011677A (zh) 时序数据的预测方法、装置、电子设备及存储介质
CN111506422B (zh) 事件分析方法及系统
CN114385498A (zh) 性能测试方法、系统、计算机设备及可读存储介质
CN114490196A (zh) 数据库切换方法、系统、设备及介质
CN111290897A (zh) 异步存储测试方法、电子装置、计算机设备及存储介质
CN113360389A (zh) 一种性能测试方法、装置、设备及存储介质
CN112612773A (zh) 数据库同步测试方法、装置、计算机设备及存储介质
CN112256516A (zh) 一种酒店直连系统用数据分析处理方法
CN114461138B (zh) 存储资源的调度方法、装置、电子设备及可读存储介质
CN115129610B (zh) 一种飞机工程算法的测试方法及系统
CN110489967B (zh) 程序运行风险的分析方法及装置
CN113010424B (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