CN113609026B - 对服务器进行压力测试的方法和装置 - Google Patents

对服务器进行压力测试的方法和装置 Download PDF

Info

Publication number
CN113609026B
CN113609026B CN202110971249.7A CN202110971249A CN113609026B CN 113609026 B CN113609026 B CN 113609026B CN 202110971249 A CN202110971249 A CN 202110971249A CN 113609026 B CN113609026 B CN 113609026B
Authority
CN
China
Prior art keywords
request
pressure measurement
server
parameter
queue
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.)
Active
Application number
CN202110971249.7A
Other languages
English (en)
Other versions
CN113609026A (zh
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.)
Yancheng Tianyanchawei Technology Co ltd
Original Assignee
Yancheng Jindi 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 Yancheng Jindi Technology Co Ltd filed Critical Yancheng Jindi Technology Co Ltd
Priority to CN202110971249.7A priority Critical patent/CN113609026B/zh
Publication of CN113609026A publication Critical patent/CN113609026A/zh
Application granted granted Critical
Publication of CN113609026B publication Critical patent/CN113609026B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种对服务器进行压力测试的方法和装置。其中,该方法包括:接收对服务器进行压测的请求信息,启动压测任务;解析所述请求信息,确定压测参数;基于压测参数,构建计数队列;以及基于所述计数队列,调用对服务器进行访问的请求数据,以执行所述压测任务,对所述服务器进行压力测试。能够在压测任务执行时,不需要重新配置脚本,不需要重新执行压测任务,就可以动态修改测压参数QPS,从而对服务器的压力进行测试。

Description

对服务器进行压力测试的方法和装置
技术领域
本申请涉及计算机技术领域,特别是涉及一种对服务器进行压力测试的方法和装置。
背景技术
服务器压力测试,是保障程序后台能够稳定运行的重要保障手段。但当前市面可选择的压测工具,均为单点、脚本化执行。
目前,现有的技术方案不能同时执行多个压测任务,并且仅能够通过重新配置脚本并重新执行脚本的方式实现调整或更新压测参数,过程繁琐耗时,且压测参数调整准确度低,进而会导致压测结果不可靠。
发明内容
本公开的实施例提供了一种对服务器进行压力测试的方法和装置,以至少解决现有技术中存在的目前qps在执行过程中,无法动态修改,当 qps未达到请求上限,则需要重新配置脚本,重新执行,过程繁琐耗时,并且无法同时支持多任务并行的技术问题。
根据本公开实施例的一个方面,提供了一种对服务器进行压力测试的方法,所述包括:接收对服务器进行压测的请求信息,启动压测任务;解析所述请求信息,确定压测参数;基于压测参数,构建计数队列;以及基于所述计数队列,调用对服务器进行访问的请求数据,以执行所述压测任务,对所述服务器进行压力测试。
可选地,所述方法还包括:接收更新请求信息;解析所述更新请求信息,确定更新压测参数;以及基于所述更新压测参数,对所述计数队列进行更新,以获得更新后的计数队列。
可选地,所述方法还包括:基于所述压测参数,确定所述计数队列中的计数新增频率;和/或基于所述更新压测参数,更新所述计数队列中的计数新增频率。
可选地,所述方法还包括通过以下方式构建所述请求数据:获取请求参数和预设请求数据结构;以及基于所述请求参数和预设请求数据结构,构建所述请求数据。
可选地,所述基于所述请求参数和预设请求数据结构,构建所述请求数据包括:根据所述预设请求数据结构,确定请求参数排列顺序;对所述请求参数的参数值进行排列组合处理以得到组合参数值;以及根据所述请求参数排列顺序对所述组合参数值进行排序,以构建所述请求数据。
可选地,所述基于所述请求参数和预设请求数据结构,构建所述请求数据包括:根据所述预设请求数据结构,确定请求参数排列顺序;获取各请求参数中最大参数值数量,以确定执行次数i;以执行次数i分别对各请求参数的参数值数量进行求余处理,并将求余处理后的余数作为参数值获取位数,其中,i依次取1至N且i为正整数,N为所述最大参数值数量;基于所述参数值获取位数获取各请求参数的参数值,以确定与所述执行次数i对应的组合参数值;根据所述请求参数排列顺序对所述组合参数值进行排序,以构建所述请求数据。
可选地,所述基于所述计数队列调用对服务器进行访问的请求数据包括:访问所述计数队列以获取返回值;以及在获取到所述返回值时,调用所述对服务器进行访问的请求数据。
可选地,所述基于所述计数队列调用对服务器进行访问的请求数据包括:基于预设时间间隔访问所述计数队列以获取返回值;以及在获取到所述返回值时,调用所述对服务器进行访问的请求数据。
可选地,所述方法还包括:接收压测参数的调整请求信息;基于所述调整请求信息,更新所述计数队列和所述预设时间间隔。
可选地,所述方法还包括:接收对服务器进行压测的至少两条请求信息;响应于所述至少两条请求信息,启动与所述至少两条请求信息对应的至少两个压测任务;以及并行执行所述至少两个压测任务。
可选地,所述方法还包括:获取所述服务器进行压力测试时的压测状态数据。
可选地,所述压测状态数据包括以下一者或多者:平均请求耗时、预定分位的请求耗时、最小的请求耗时、最大的请求耗时和请求成功率。
可选地,所述压测参数包括每秒查询率。
根据本申请的另一个方面,还提供了一种对服务器进行压力测试的装置,所述装置包括:压测任务启动模块,用于接收对服务器进行压测的请求信息,启动压测任务;压测参数确定模块,用于解析所述请求信息,确定压测参数;计数队列构建模块,用于基于所述压测参数,构建计数队列;压测任务执行模块,用于基于所述计数队列,调用对服务器进行访问的请求数据,以执行所述压测任务,对所述服务器进行压力测试。
可选地,所述压测任务执行模块还包括压测任务执行子模块,所述装置还包括:关联模块,用于将所述压测任务与所述压测任务执行子模块进行关联,以并行执行所述压测任务。
根据本发明实施例的另一个方面,提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一项所述的方法。
根据本发明实施例的另一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于执行本发明上述任一实施例所述的方法。
根据本发明实施例的另一个方面,提供了一种计算机程序,包括计算机可读代码,当所述计算机可读代码在设备上运行时,所述设备中的处理器用于实现上述中任一项所述的方法。
本发明的方法能够在压测任务执行时,不需要重新配置脚本,不需要重新执行压测任务,就可以动态修改测压参数QPS,从而对服务器的压力进行测试。并且,本发明还可以将至少两个压测任务并行执行,在执行时更加效率更加方便。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1为根据本发明一示例性实施例提供的对服务器进行压力测试的方法100的流程图;
图2为根据本发明一示例性实施例提供的基于请求参数和预设请求数据结构,构建请求数据的方法200的流程图;
图3为根据本发明一示例性实施例提供的基于计数队列调用对服务器进行访问的请求数据的方法300的流程图;
图4是根据本发明一示例性实施例提供的对服务器进行压力测试的装置400的结构示意图。
图5是本发明一示例性实施例提供的电子设备的结构。
具体实施方式
下面,将参考附图详细地描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
本领域技术人员可以理解,本发明实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本发明实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本发明实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本发明中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本发明中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本发明对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本发明实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
示例性方法
图1是本发明一示例性实施例提供的一种对服务器进行压力测试的方法100的流程示意图。本实施例可应用在电子设备上,如图1所示,包括以下步骤:
步骤101,接收对服务器进行压测的请求信息,启动压测任务。
其中,所述请求信息可以包括一条或多条,并且一条或多条请求息可以同时被接收,或者可以响应于被发送的一条或多条请求息而接收。
例如,可以接收对服务器进行压测的至少两条请求信息;响应于所述至少两条请求信息,启动与所述至少两条请求信息对应的至少两个压测任务;以及并行执行所述至少两个压测任务。
具体地,对服务器进行压力测试时,首先接收对服务器进行压测的至少两条请求信息。其中,请求信息包括多个请求参数,例如,多个参数可以是ID,name,mode,value等等。本实施例以ID和name进行阐述。
进一步地,响应于至少两条请求信息,启动与每条请求信息对应的压测任务task,即至少两个压测任务task,可以直接执行至少两个压测任务task,也可以存储至少两个压测任务task并执行。其中,在执行至少两个压测任务task时,可以对其同步执行,也可以基于实际需求顺序执行等。
步骤102,解析所述请求信息,确定压测参数。
可选地,所述压测参数包括每秒查询率。
所述每秒查询率QPS可以通过接收请求信息并解析请求信息而被确定。例如在每秒查询率QPS的初始值可以设置为固定值1,即在未接收到具有压测参数的请求信息而需要执行压测任务时,可以以每秒1次的频率执行压测任务。所述每秒查询率QPS可以基于对接收到的请求信息的解析结果进行调整,例如基于所接收的请求信息的解析结果,可以确定将每秒查询率QPS的值调整为100(即以每秒100次的频率执行压测任务)等。
其中,所述每秒查询率QPS的初始值可以根据实际需求自行设定,不限于上述示例。
步骤103,基于压测参数,构建计数队列。
具体的,通过压测参数可以确定所述计数队列构建先关的参数,并能够基于该参数实现计数队列的构建。
以压测参数包括每秒查询率QPS为例,可以基于每秒查询率QPS确定计数队列中的计数新增频率,例如可以以1/QPS的频率新增计数,也可以以高于1/QPS的频率新增计数等。
例如,当压测参数中包括每秒查询率QPS时,若每秒查询率QPS的值为10,则表示每秒访问服务器10次,由于1/QPS=1/10=0.1秒,因此将计数队列的数据新增频率设定为每秒新增10条计数(或者称为每100毫秒新增1条计数),或者也可以以高于每100毫秒新增1条计数的频率新增计数。
步骤104,基于所述计数队列,调用对服务器进行访问的请求数据,以执行所述压测任务,对所述服务器进行压力测试。
可选地,在基于所述计数队列,调用对服务器进行访问的请求数据之前还包括通过以下方式构建所述请求数据:获取请求参数和预设请求数据结构;以及基于所述请求参数和预设请求数据结构,构建所述请求数据。
具体地,请求信息可以不包括请求参数,也可以包括至少一种请求参数。例如,至少一种请求参数可以是ID,name,mode和value等等。
现以请求信息由两种请求参数(ID和name)构成为例进行阐述。
首先获取请求参数和预设请求数据结构。其中,请求参数为ID和name, 预设请求数据结构可以为拼接样式,也可以是其他类型的数据结构。例如基于请求参数“ID+name”以拼接方式构建请求数据“ID,name”。
其中,所获请求参数包括参数名和参数值,参数名中的一种或多种可包括任意多的参数值。
针对至少一种参数名包括至少两个参数值的情况,本发明实施例还提供了具有的构建请求数据的方法。
在一些可选实施例中,可通过以下方式构建所述请求数据:根据预设请求数据结构,确定请求参数排列顺序;对所述请求参数的参数值进行排列组合处理以得到组合参数值;以及根据所述请求参数排列顺序对所述组合参数值进行排序,以构建所述请求数据。
本发明该实施例提供的方案,可以基于以获取的请求参数的参数名和参数值,构建尽可能多的请求数据,并且不会出现请求数据重复的情况。
在一些可选实施例中,还可通过以下方式构建请求数据:根据所述预设请求数据结构,确定请求参数排列顺序;获取各请求参数中最大参数值数量,以确定执行次数i;以执行次数i分别对各请求参数的参数值数量进行求余处理,并将求余处理后的余数作为参数值获取位数,其中,i依次取1至N且i为正整数,N为所述最大参数值数量;基于所述参数值获取位数获取各请求参数的参数值,以确定与所述执行次数i对应的组合参数值;根据所述请求参数排列顺序对所述组合参数值进行排序,以构建所述请求数据。
本发明上述实施例提供的不同的构建请求数据的方法中,所获取的预设请求数据结构可以相同,也可以不相同,本发明实施例对此不进行限定。
通过本发明该实施例提供的方案构建的请求数据,能够保证在使用了全部的参数值的基础上,生成的请求数据的比例与参数名的种类之间的比例相同,以满足不同的服务器压测需求。
现结合一具体示例以详细解释本发明实施例提供的技术方案。在该示例中,请求数据的数据结构为{ID:值,name:值},请求参数具有两种,分别为ID和name,ID的值有100个,name的值有10个。基于上述数据结构可知,请求参数排列顺序为ID、name。
首先,获取各请求参数中最大参数值数量,以请求参数数量的最大值为基准进行循环。由于参数ID的参数值的数量最大且为100,因此确定执行次数i=100次。以执行次数i分别对各请求参数的参数值数量进行求余处理,并将求余处理后的余数作为参数值获取位数。因此每一循环包括对100个ID和10个name执行100次。
例如,i=1时,第一次执行,1除以100,余1,即ID取第1位参数值, 1除以10余1,name取第1位参数值;
i=2时,第二次执行,2除以100余2,ID取第2位参数值,2除以10 余2,name取2位参数值;
……;
i=9时,第九次执行,9除以100余9,ID取第9位参数值,9除以 100余9,name取第9位参数值;
i=10时,第十次执行,10除以100余10,ID取第10位参数值,10 除以10余0,name取第0位参数值;
i=11时,第十一次执行,11除以100余11,ID取第11位参数值, 11除以10余1,name取第1位参数值;
……;
i=100时,第一百次执行,100除以100余0,ID取第0位参数值, 100除以10余0,name取第0位参数值。
以此类推,将100个ID和10个name执行完,每一循环执行100次。
再按照所获取的请求数据结构,将参数及参数值进行拼接,即可得到数量与执行次数相同的请求数据。
采用本发明上述实施例提供的方法构建的请求数据,可以保证数量最大的请求参数的每一参数值都被采用一次,满足相应的请求数据使用需求。
在一些可选实施例中,所获得的请求数据或者构建的请求数据可以预先存储如内存等,以便于后续执行压测任务时直接调用。
可选地,所述基于所述计数队列调用对服务器进行访问的请求数据包括:访问所述计数队列以获取返回值;以及在获取到所述返回值时,调用所述对服务器进行访问的请求数据。
具体地,可以每隔预设间隔访问所述计数队列以获取返回值,或者实时访问计数队列以获取返回值。所述返回值以用于表面可以调用请求数据访问一次服务器。
可选地,所述基于所述计数队列调用对服务器进行访问的请求数据包括:基于预设时间间隔访问所述计数队列以获取返回值;以及在获取到所述返回值时,调用所述对服务器进行访问的请求数据。
具体地,基于预设时间间隔访问计数队列获取加压数据。例如,压测参数QPS的值为10时,表示每秒访问服务器10次,因而需要控制每秒生成10个数据存放到计数队列中,即计数队列中的计数新增的优选频率为 10条每秒,对应的每100毫秒获取一条请求数据并基于所述访问请求数据访问服务器一次。
根据每100毫秒获取一条计数队列的计数的频率,调用对服务器进行访问的请求数据。
可选地,所述方法还包括:接收压测参数调整请求信息;基于所述调整请求信息,更新所述计数队列和所述预设时间间隔。
具体地,当压测参数QPS的值从1调整到10时,基于该调整请求信息,更新计数队列和预设时间间隔,将每1秒获取一条加压数据更新为每 100毫秒获取一条加压数据。
本发明该实施例提供的方案,还可以在执行对服务器进行压力测试的任务过程中,接收对所述压测任务进行调整的更新请求信息,并根据所述更新请求信息对压测任务进行调整,以满足不同的服务器压测需求。
具体的,本发明该实施例提供的方案还包括:接收更新请求信息;解析所述更新请求信息,确定更新压测参数;以及基于所述更新压测参数,对所述初始计数队列进行更新,以获得更新后的计数队列。
现以一具体示例详细解释本发明该实施例提供的方案。
接收对服务器进行压测的请求信息。基于对所述请求信息的解析确定该压测任务对应的访问服务器频率和计数队列的计数新增频率。
例如解析出压测参数包括的QPS的值为10,则表明以10次/秒的频率访问服务器。在此基础上,构建一初始计数队列,该初始计数队列的计数新增频率为100毫秒新增一个计数。在执行压测任务过程中,每读取到一次计数队列中的计数即可获取一个返回值,响应于该返回值,调用一条对服务器进行访问的请求数据以访问服务器一次。
在接收到更新请求信息的情况下,解析更新请求信息,以确定更新后的访问服务器频率和计数队列的计数新增频率。
例如解析出更新压测参数包括的QPS的值更新为100,则表明现需以 100次/秒的频率访问服务器。在此基础上,对已构建的初始计数队列进行更新,其包括将计数队列的计数新增频率更新为10毫秒新增一个计数。在执行压测更新后的压测任务的过程中,与上述过程相同,每读取到一次计数队列中的计数即可获取一个返回值,响应于该返回值,调用一条对服务器进行访问的请求数据以访问服务器一次。
本发明任意实施例提供的计数队列中的计数可以为任意自然数等,优选为1,以提高硬件处理效率,并有效降低数据处理复杂度。
在本发明任意实施例提供的方案中,读取计数队列的时间间隔应小于或等于计数队列的计数更新时间间隔,即小于或等于1/QPS的值。以便于能够精准调控访问服务器频率,提高响应于请求信息和/或更新请求信息的响应速度。
通过本发明实施例提供的技术方案,能够精确控制在执行压测任务期间访问服务器的频率,
在一些可选实施例中,本发明提供的方案还包括:获取所述服务器进行压力测试时的压测状态数据。
具体地,执行压测任务时,会得到相应的反应服务器压力状态的压测状态数据,获取该压测状态数据存入到数据库中,以便后续分析服务器压力状态。
可选地,所述压测状态数据包括以下一者或多者:平均请求耗时、预定分位的请求耗时、最小的请求耗时、最大的请求耗时和请求成功率。
例如,预定分位的请求耗时可以为90%分位的请求耗时等,具体的分位可由用户根据实际需求自行限定,不限于此。
本发明的方法能够在压测任务执行时,不需要重新配置脚本,不需要重新执行压测任务,就可以动态修改测压参数QPS,从而对服务器的压力进行测试。
本发明提供的方案相较于现有的控制工具,新增了计数队列,能够有效提高QPS控制精确度,使得服务器压测结果更加可靠。
本发明提供的方案还可以将至少两个压测任务并行执行,即多个压测任务能够互相独立且并行运行,能够有效提高服务器压力测试的效率,还能够满足用户的多种需求,且更加方便。
示例性装置
图4是本发明一示例性实施例提供的一种对服务器进行压力测试的装置400的结构示意图。如图4所示,本实施例包括:
压测任务启动模块410,用于接收对服务器进行压测的请求信息,启动压测任务。
其中,压测任务启动模块410包括:
接收请求信息单元,用于接收对服务器进行压测的至少两条请求信息;
启动压测任务单元,用于响应于所述至少两条请求信息,启动与所述至少两条请求信息对应的至少两个压测任务;以及
执行压测任务单元,用于并行执行所述至少两个压测任务。
压测参数确定模块420,用于解析所述请求信息,确定压测参数。
其中,压测参数确定模块420,包括:
接收更新请求信息单元,用于接收更新请求信息;
确定更新压测参数单元,用于解析所述更新请求信息,确定更新压测参数;以及
获得计数队列单元,用于基于所述更新压测参数,对所述初始计数队列进行更新,以获得更新后的计数队列。
其中,所述压测参数包括每秒查询率。
计数队列构建模块430,用于基于所述压测参数,构建计数队列。
其中,计数队列构建模块430,包括:
确定计数新增频率单元,用于基于所述压测参数,确定所述计数队列中的计数新增频率;和/或
更新计数新增频率单元,用于基于所述更新压测参数,更新所述计数队列中的计数新增频率。
压测任务执行模块440,用于基于所述计数队列,调用对服务器进行访问的请求数据,以执行所述压测任务,对所述服务器进行压力测试。
其中,压测任务执行模块440,包括:
获取参数和结构单元,用于获取请求参数和预设请求数据结构;以及
构建请求数据单元,用于基于所述请求参数和预设请求数据结构,构建所述请求数据。
其中,构建请求数据单元,包括:
确定排列顺序子单元,用于根据所述预设请求数据结构,确定请求参数排列顺序;
得到组合参数值子单元,用于对所述请求参数的参数值进行排列组合处理以得到组合参数值;以及
构建请求数据子单元,用于根据所述请求参数排列顺序对所述组合参数值进行排序,以构建所述请求数据。
在一实施例中,构建请求数据单元,还包括:
确定排列顺序子单元,用于根据所述预设请求数据结构,确定请求参数排列顺序;
确定执行次数子单元,用于获取各请求参数中最大参数值数量,以确定执行次数i;
确定参数值获取位数子单元,用于以执行次数i分别对各请求参数的参数值数量进行求余处理,并将求余处理后的余数作为参数值获取位数,其中,i依次取1至N且i为正整数,N为所述最大参数值数量;
确定组合参数值子单元,用于基于所述参数值获取位数获取各请求参数的参数值,以确定与所述执行次数i对应的组合参数值;
构建请求数据子单元,用于根据所述请求参数排列顺序对所述组合参数值进行排序,以构建所述请求数据。
在一实施例中,压测任务执行模块440,还包括:
获取返回值单元,用于访问所述计数队列以获取返回值;以及
调用请求数据单元,用于在获取到所述返回值时,调用所述对服务器进行访问的请求数据。
在一实施例中,压测任务执行模块440,还包括:
获取返回值单元,用于基于预设时间间隔访问所述计数队列以获取返回值;以及
调用请求数据单元,用于在获取到所述返回值时,调用所述对服务器进行访问的请求数据。
在一实施例中,压测任务执行模块440,还包括:
更新队列和间隔模块,用于接收压测参数调整请求信息,基于所述调整请求信息,更新所述计数队列和所述预设时间间隔。
获取压测状态数据模块,用于获取所述服务器进行压力测试时的压测状态数据。
其中,所述压测状态数据包括以下一者或多者:平均请求耗时、预定分位的请求耗时、最小的请求耗时、最大的请求耗时和请求成功率。
本发明的实施例的一种对服务器进行压力测试的装置400与本发明的另一个实施例的一种对服务器进行压力测试的方法100相对应,在此不再赘述。
示例性电子设备
图5是本发明一示例性实施例提供的电子设备的结构。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。图5图示了根据本公开实施例的电子设备的框图。如图5所示,电子设备包括一个或多个处理器51和存储器52。
处理器51可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
存储器52可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM) 和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器51可以运行所述程序指令,以实现上文所述的本公开的各个实施例的软件程序的对历史变更记录进行信息挖掘的方法以及/或者其他期望的功能。在一个示例中,电子设备还可以包括:输入装置53和输出装置54,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置53还可以包括例如键盘、鼠标等等。
该输出装置54可以向外部输出各种信息。该输出设备34可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图5中仅示出了该电子设备中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的对历史变更记录进行信息挖掘的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的对历史变更记录进行信息挖掘的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器 (RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (14)

1.一种对服务器进行压力测试的方法,其特征在于,包括:
接收对服务器进行压测的请求信息,启动压测任务;
解析所述请求信息,确定压测参数,其中所述压测参数包括每秒查询率;
基于压测参数,构建计数队列,在执行压测任务的过程中,每读取到一次计数队列中的计数即可获取一个返回值,响应于该返回值,调用一条对服务器进行访问的请求数据以访问服务器一次;以及
基于所述计数队列,调用对服务器进行访问的请求数据,以执行所述压测任务,对所述服务器进行压力测试;
所述方法还包括:
接收更新请求信息;
解析所述更新请求信息,确定每秒查询率;以及
基于所述每秒查询率,对所述计数队列进行更新,以获得更新后的计数队列;
所述方法还包括:
基于所述每秒查询率,确定所述计数队列中的计数新增频率;和/或
基于所述每秒查询率,更新所述计数队列中的计数新增频率。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括通过以下方式构建所述请求数据:
获取请求参数和预设请求数据结构;以及
基于所述请求参数和预设请求数据结构,构建所述请求数据。
3.根据权利要求2所述的方法,其特征在于,所述基于所述请求参数和预设请求数据结构,构建所述请求数据包括:
根据所述预设请求数据结构,确定请求参数排列顺序;
对所述请求参数的参数值进行排列组合处理以得到组合参数值;以及
根据所述请求参数排列顺序对所述组合参数值进行排序,以构建所述请求数据。
4.根据权利要求2所述的方法,其特征在于,所述基于所述请求参数和预设请求数据结构,构建所述请求数据包括:
根据所述预设请求数据结构,确定请求参数排列顺序;
获取各请求参数中最大参数值数量,以确定执行次数i;
以执行次数i分别对各请求参数的参数值数量进行求余处理,并将求余处理后的余数作为参数值获取位数,其中,i依次取1至N且i为正整数,N为所述最大参数值数量;
基于所述参数值获取位数获取各请求参数的参数值,以确定与所述执行次数i对应的组合参数值;
根据所述请求参数排列顺序对所述组合参数值进行排序,以构建所述请求数据。
5.根据权利要求1所述的方法,其特征在于,所述基于所述计数队列调用对服务器进行访问的请求数据包括:
访问所述计数队列以获取返回值;以及
在获取到所述返回值时,调用所述对服务器进行访问的请求数据。
6.根据权利要求1所述的方法,其特征在于,所述基于所述计数队列调用对服务器进行访问的请求数据包括:
基于预设时间间隔访问所述计数队列以获取返回值;以及
在获取到所述返回值时,调用所述对服务器进行访问的请求数据。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
接收压测参数调整请求信息;
基于所述调整请求信息,更新所述计数队列和所述预设时间间隔。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收对服务器进行压测的至少两条请求信息;
响应于所述至少两条请求信息,启动与所述至少两条请求信息对应的至少两个压测任务;以及
并行执行所述至少两个压测任务。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述服务器进行压力测试时的压测状态数据。
10.根据权利要求9所述的方法,其特征在于,所述压测状态数据包括以下一者或多者:平均请求耗时、预定分位的请求耗时、最小的请求耗时、最大的请求耗时和请求成功率。
11.一种对服务器进行压力测试的装置,其特征在于,包括:
压测任务启动模块,用于接收对服务器进行压测的请求信息,启动压测任务;
压测参数确定模块,用于解析所述请求信息,确定压测参数,其中所述压测参数包括每秒查询率;以及,接收更新请求信息;解析所述更新请求信息,确定每秒查询率;基于所述每秒查询率,对计数队列进行更新,以获得更新后的计数队列;
计数队列构建模块,用于基于所述压测参数,构建计数队列,基于所述每秒查询率,确定所述计数队列中的计数新增频率;和/或基于所述每秒查询率,更新所述计数队列中的计数新增频率;
压测任务执行模块,用于基于所述计数队列,调用对服务器进行访问的请求数据,以执行所述压测任务,对所述服务器进行压力测试,在执行压测任务的过程中,每读取到一次计数队列中的计数即可获取一个返回值,响应于该返回值,调用一条对服务器进行访问的请求数据以访问服务器一次。
12.根据权利要求11所述的装置,其特征在于,所述压测任务执行模块还包括压测任务执行子模块,所述装置还包括:
关联模块,用于将所述压测任务与所述压测任务执行子模块进行关联,以并行执行所述压测任务。
13.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-10任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-10任一项所述的方法。
CN202110971249.7A 2021-08-20 2021-08-20 对服务器进行压力测试的方法和装置 Active CN113609026B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110971249.7A CN113609026B (zh) 2021-08-20 2021-08-20 对服务器进行压力测试的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110971249.7A CN113609026B (zh) 2021-08-20 2021-08-20 对服务器进行压力测试的方法和装置

Publications (2)

Publication Number Publication Date
CN113609026A CN113609026A (zh) 2021-11-05
CN113609026B true CN113609026B (zh) 2022-09-16

Family

ID=78341670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110971249.7A Active CN113609026B (zh) 2021-08-20 2021-08-20 对服务器进行压力测试的方法和装置

Country Status (1)

Country Link
CN (1) CN113609026B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116483718B (zh) * 2023-04-25 2023-11-14 无锡市软测认证有限公司 一种利用大数据实现大规模压力测试系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959000A (zh) * 2018-06-20 2018-12-07 深圳市腾讯网络信息技术有限公司 一种服务器压力测试方法、系统及终端
CN111552622A (zh) * 2020-04-30 2020-08-18 上海英方软件股份有限公司 一种行情数据的回放装置及方法
CN112181748A (zh) * 2020-10-14 2021-01-05 深圳壹账通智能科技有限公司 基于环形队列的并发测试方法、装置、设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8984341B1 (en) * 2012-05-08 2015-03-17 Amazon Technologies, Inc. Scalable testing in a production system with autoscaling
US10353806B1 (en) * 2015-12-07 2019-07-16 Mx Technologies, Inc. Multi-platform testing automation
CN107766245B (zh) * 2017-10-18 2020-12-15 浙江理工大学 基于ott策略的可变力度组合测试用例优先级在线排序方法
CN109388561A (zh) * 2018-09-18 2019-02-26 深圳壹账通智能科技有限公司 接口测试用例生成方法、装置、计算机设备和存储介质
CN110134589B (zh) * 2019-04-17 2023-02-03 深圳壹账通智能科技有限公司 接口测试用例的生成方法、装置、计算机设备和存储介质
CN110351345B (zh) * 2019-06-25 2021-10-12 创新先进技术有限公司 用于业务请求处理的方法及装置
CN110704312B (zh) * 2019-09-25 2023-09-12 浙江大搜车软件技术有限公司 压力测试的方法、装置、计算机设备和存储介质
CN111625469A (zh) * 2020-06-11 2020-09-04 深圳前海微众银行股份有限公司 压力测试方法、装置、设备及计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959000A (zh) * 2018-06-20 2018-12-07 深圳市腾讯网络信息技术有限公司 一种服务器压力测试方法、系统及终端
CN111552622A (zh) * 2020-04-30 2020-08-18 上海英方软件股份有限公司 一种行情数据的回放装置及方法
CN112181748A (zh) * 2020-10-14 2021-01-05 深圳壹账通智能科技有限公司 基于环形队列的并发测试方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN113609026A (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
US11640320B2 (en) Correlation of thread intensity and heap usage to identify heap-hoarding stack traces
CN110175110B (zh) 压力测试方法、装置、系统、设备及计算机可读存储介质
EP2040170B1 (en) System configuration parameter set optimizing method, program, and device
US9811400B2 (en) End-to-end application tracking framework
US8677324B2 (en) Evaluating performance of an application using event-driven transactions
US8606905B1 (en) Automated determination of system scalability and scalability constraint factors
US10452522B1 (en) Synthetic data generation from a service description language model
JP2010524060A (ja) 分散コンピューティングにおけるデータマージング
US11971882B2 (en) System and method for batch and real-time feature computation
CN109815119B (zh) 一种app链接渠道的测试方法及装置
CN112035363A (zh) 接口自动化测试方法及装置
US10970200B2 (en) Test result triage for a failed code validation
CN110647471A (zh) 接口测试用例生成方法、电子装置及存储介质
CN111045911A (zh) 性能测试方法、性能测试装置、存储介质与电子设备
CN115686540A (zh) 基于鸿蒙系统的rpa控制方法及系统
CN113609026B (zh) 对服务器进行压力测试的方法和装置
Awad et al. Performance model derivation of operational systems through log analysis
CN115221033A (zh) 接口协议测试方法、装置、计算机可读介质及电子设备
CN113297153A (zh) 数据导出方法、装置、设备及存储介质
CN112433933A (zh) 一种接口自动化测试的方法及设备
CN114328090A (zh) 一种程序监控方法、装置、电子设备及存储介质
CN114003497A (zh) 业务系统的测试方法、装置、设备及存储介质
CN112115118A (zh) 数据库压测的优化方法及装置、存储介质、电子设备
CN111752847A (zh) 接口比对方法和微服务器、计算机可读存储介质、电子设备
EP4195052A1 (en) Systems and methods for validating a cloud-hosted application

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230803

Address after: Room 404-405, 504, Building B-17-1, Big data Industrial Park, Kecheng Street, Yannan High tech Zone, Yancheng, Jiangsu Province, 224000

Patentee after: Yancheng Tianyanchawei Technology Co.,Ltd.

Address before: 224000 room 501-503, building b-17-1, Xuehai road big data Industrial Park, Kecheng street, Yannan high tech Zone, Yancheng City, Jiangsu Province

Patentee before: Yancheng Jindi Technology Co.,Ltd.

TR01 Transfer of patent right