CN111966556A - 性能压测方法、装置及服务器和计算机可读存储介质 - Google Patents

性能压测方法、装置及服务器和计算机可读存储介质 Download PDF

Info

Publication number
CN111966556A
CN111966556A CN202010831666.7A CN202010831666A CN111966556A CN 111966556 A CN111966556 A CN 111966556A CN 202010831666 A CN202010831666 A CN 202010831666A CN 111966556 A CN111966556 A CN 111966556A
Authority
CN
China
Prior art keywords
pressure measurement
target
measurement object
protocol type
data packet
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
CN202010831666.7A
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.)
Tencent Music Entertainment Technology Shenzhen Co Ltd
Original Assignee
Tencent Music Entertainment Technology Shenzhen 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 Tencent Music Entertainment Technology Shenzhen Co Ltd filed Critical Tencent Music Entertainment Technology Shenzhen Co Ltd
Priority to CN202010831666.7A priority Critical patent/CN111966556A/zh
Publication of CN111966556A publication Critical patent/CN111966556A/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/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • 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/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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/368Test management for test version control, e.g. updating test cases to a new software version

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)
  • Measuring Fluid Pressure (AREA)

Abstract

本申请公开了一种性能压测方法、装置及一种服务器和计算机可读存储介质,该方法包括:确定压测对象和压测对象对应的协议类型,并获取协议类型对应的目标文件;其中,目标文件用于描述符合协议类型的数据包的数据结构;基于压测对象的接入服务在目标设备上部署压测环境,并为压测对象分配进程;利用进程基于目标文件生成符合协议类型的数据包,并将数据包发送至目标设备,以便通过对压测环境进行压测得到压测对象的压测结果。由此可见,本申请提供的性能压测方法,提高了性能压测流程的适用性,使其能够适用于不同协议类型的服务的压测。

Description

性能压测方法、装置及服务器和计算机可读存储介质
技术领域
本申请涉及服务器技术领域,更具体地说,涉及一种性能压测方法、装置及服务器和计算机可读存储介质。
背景技术
由于不同的服务器采用不同类型的协议进行数据传输,相同服务器内的不同服务也可能采用不同类型的协议进行数据传输,对于服务器的性能压测,在相关技术中,测试人员需要为不同协议类型打包不同的压测代码,需要具有较高的代码能力和后台协议分析能力,压测脚本的适用性较差。
可见,在实现服务器的性能压测过程中,申请人发现相关技术中至少存在如下问题:压测流程适用性较差,无法适用于不同协议类型的服务。
发明内容
本申请的目的在于提供一种性能压测方法、装置及一种服务器和一种计算机可读存储介质,提高了性能压测流程的适用性,使其能够适用于不同协议类型的服务的压测。
为实现上述目的,本申请第一方面提供了一种性能压测方法,包括:
确定压测对象和所述压测对象对应的协议类型,并获取所述协议类型对应的目标文件;其中,所述目标文件用于描述符合所述协议类型的数据包的数据结构;
基于所述压测对象的接入服务在目标设备上部署压测环境,并为所述压测对象分配进程;
利用所述进程基于所述目标文件生成符合所述协议类型的数据包,并将所述数据包发送至所述目标设备,以便通过对所述压测环境进行压测得到所述压测对象的压测结果。
为实现上述目的,本申请第二方面提供了一种压测装置,包括:
确定模块,用于确定压测对象和所述压测对象对应的协议类型,并获取所述协议类型对应的目标文件;其中,所述目标文件用于描述符合所述协议类型的数据包的数据结构;
部署模块,用于基于所述压测对象的接入服务在目标设备上部署压测环境,并为所述压测对象分配进程;
压测模块,用于利用所述进程基于所述目标文件生成符合所述协议类型的数据包,并将所述数据包发送至所述目标设备,以便通过对所述压测环境进行压测得到所述压测对象的压测结果。
为实现上述目的,本申请第三方面提供了一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述性能压测方法的步骤。
为实现上述目的,本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述性能压测方法的步骤。
通过以上方案可知,本申请提供的一种性能压测方法,包括:确定压测对象和所述压测对象对应的协议类型,并获取所述协议类型对应的目标文件;其中,所述目标文件用于描述符合所述协议类型的数据包的数据结构;基于所述压测对象的接入服务在目标设备上部署压测环境,并为所述压测对象分配进程;利用所述进程基于所述目标文件生成符合所述协议类型的数据包,并将所述数据包发送至所述目标设备,以便通过对所述压测环境进行压测得到所述压测对象的压测结果。
本申请提供的性能压测方法,对于压测对象的性能压测,需要确定其使用的协议类型。不同的协议类型对应不同的目标文件,该目标文件用于描述符合对应的协议类型的数据包的数据结构,即基于目标文件可以生成符合对应的协议类型的数据包。获取压测对象的协议类型对应的目标文件,以便基于该目标文件符合该协议类型的数据包,从而对压测对象进行性能压测。可见,上述压测流程适用于不同协议类型的压测对象,压测流程的适用性较高。另外,本申请提供的性能压测方法,将压测对象的环境单独部署于目标设备上,将数据包发送至目标设备以实现对压测对象的压测,单独部署压测环境有利于定位具体的服务,即有利于定位产生性能问题的服务,提高了确定性能问题产生点的准确度。本申请还公开了一种压测装置及一种服务器和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1为本申请实施例提供的一种性能压测系统的架构图;
图2为本申请实施例提供的第一种性能压测方法的流程图;
图3为本申请实施例提供的第二种性能压测方法的流程图;
图4为本申请实施例提供的第三种性能压测方法的流程图;
图5为本申请实施例提供的一种进程分配的流程图;
图6为本申请实施例提供的第四种性能压测方法的流程图;
图7为本申请实施例提供的一种显示性能测试结果的示意图;
图8为本申请提供的一种应用实施例中性能压测方法的流程图;
图9为本申请实施例提供一种的用户选择压测对象时客户端的展示图;
图10为本申请实施例提供一种数据结构的展示图;
图11为本申请实施例提供一种的用户修改测试数据时客户端的展示图;
图12为本申请实施例提供的一种性能压测装置的结构图;
图13为本申请实施例提供的一种服务器的结构图。
具体实施方式
本申请的申请人研究发现,不同的服务器采用不同类型的协议进行数据传输,相同服务器内的不同服务也可能采用不同类型的协议进行数据传输。对于不同协议类型的压测对象,测试人员需要其打包不同的压测代码,压测流程的适用性较差。因此,在本申请中,获取压测对象的协议类型对应的目标文件,该目标文件用于描述符合对应的协议类型的数据包的数据结构,即基于目标文件可以生成符合对应的协议类型的数据包,从而对压测对象进行性能压测。可见,本申请提高的压测流程适用于不同协议类型的压测对象,即压测流程的适用性较高。
另外,本申请的申请人研究还发现,对于网状部署服务的压测对象来说,其服务调用链路复杂,压测与其他环境共用时,会互相影响,无法准确定位产生性能问题的服务。因此,在本申请中,将压测对象的环境单独部署于目标设备上,有利于定位产生性能问题的服务,提高了确定性能问题产生点的准确度。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解本申请提供的性能压测方法,下面对其使用的系统进行介绍。参见图1,其示出了本申请实施例提供的一种压测系统的架构图,如图1所示,包括客户端100、服务器200、目标设备300和压测对象400。客户端100和服务器200之间、服务器200和目标设备300、服务器200和压测对象400通过网络连接。
其中,客户端100可以为如手机等移动终端或如PC(中文全称:个人计算机,英文全称:personal computer)端等固定终端,用于与用户进行交互。用户可以通过客户端100的输入接口选择压测对象、输入该压测对象使用的协议类型、上传该协议类型对应的目标文件,服务器200可以通过客户端100向用户展示本次性能压测的压测数据,用户可以在客户端100的显示模块对压测数据进行调整,客户端100还可以向用户展示压测对象400的性能压测结果。
服务器200为压测流程的执行主体,首先获取压测对象400使用的协议类型对应的目标文件,该目标文件为描述符合该协议类型的数据包的数据结构,可以由用户通过客户端100进行手动上传,也可以在自身的存储器中存储常见协议类型对应的目标文件,测试时进行自动获取。其次,服务器200获取压测对象400的所有接入服务,并基于所有接入服务在目标设备300上单独部署压测环境,即在目标设备300上部署压测对象400中需要压测的服务。最后,服务器200基于目标文件生成并向目标设备400发送请求即数据包,以便实现对压测对象的性能压测。需要说明的是,服务器200可以将上述压测流程封装为压测脚本,例如python脚本,即当接收到压测对象400的压测命令时,基于压测对象400使用的协议类型为其封装对应的压测脚本,执行该压测脚本以便对压测对象400进行性能压测。
目标设备300用于单独部署压测环境,即在目标设备300上部署压测对象400中需要压测的服务,服务器200可以通过对目标设备300上的压测环境进行压测得到压测对象400的性能压测结果。
压测对象400可以为某一应用的后台服务器,也可以为该后台服务器所提供的一个或多个服务,本申请不进行具体限定。
本申请实施例公开了一种性能压测方法,提高了性能压测流程的适用性,使其能够适用于不同协议类型的服务的压测。
参见图2,本申请实施例提供的一种性能压测方法的流程图,如图2所示,包括:
S101:客户端向服务器发送压测对象;
在具体实施中,用户在客户端处填写本次压测的压测计划名称,并选择本次压测的压测对象,压测对象可以为某一应用的后台服务器,也可以为该后台服务器所提供的一个或多个服务,本实施例不进行具体限定,客户端将该压测对象的名称发送至服务器。
S102:服务器确定所述压测对象对应的协议类型,并获取所述协议类型对应的目标文件;其中,所述目标文件用于描述符合所述协议类型的数据包的数据结构;
可以理解的是,不同的压测对象使用不同的协议类型,因此,对于压测对象的性能压测,需要确定其使用的协议类型。此处的协议类型可以包括TCP(中文全称:传输控制协议,英文全称:Transmission Control Protocol)、UDP(中文全称:用户数据报协议,英文全称:User Datagram Protocol)、HTTP(中文全称:超文本传输协议,英文全称:Hyper TextTransfer Protocol)和RPC(中文全称:远程过程调用,英文全称:Remote Procedure Call)等,本实施例不进行具体限定。在具体实施中,用户可以在客户端处输入压测对象的协议类型,由客户端传输至服务器,也可以由服务器根据压测对象的名称自动确定其使用的协议类型,在此不进行具体限定。
不同协议类型的数据包具体不同的数据结构,该数据结构可以利用目标文件进行描述,即不同的协议类型对应不同的目标文件,该目标文件用于描述符合对应的协议类型的数据包的数据结构,基于目标文件服务器可以生成符合对应的协议类型的数据包。目标文件可以由用户通过客户端进行手动上传,也可以在服务器的存储器中存储常见协议类型对应的目标文件,测试时进行自动获取,本实施例不进行具体限定。服务器自动获取目标文件后,可以通过客户端对数据结构进行展示,以便用户修改其中的测试数据,为了清楚显示数据结构,可以以树型进行展示。
S103:服务器基于所述压测对象的接入服务在目标设备上部署压测环境;
在本步骤中,服务器获取压测对象的所有接入服务,并基于所有接入服务在目标设备上单独部署压测环境,即在目标设备上部署压测对象400中需要压测的服务,包括所有接入服务和每个接入服务的调用服务。可见,本步骤实现了压测环境与其他服务环境的隔离,有利于后续步骤定位性能问题的产生点。
S104:服务器为所述压测对象分配进程;
S105:服务器利用所述进程基于所述目标文件生成符合所述协议类型的数据包;
S106:服务器将所述数据包发送至所述目标设备;
S107:服务器通过对所述压测环境进行压测得到所述压测对象的压测结果。
在具体实施中,服务器基于压测对象需要的用户数和自身的资源使用情况为压测对象分配进程,每个进程分别基于目标文件生成并向目标设备发送请求,即符合压测对象对应协议类型的数据包,通过对目标设备中部署的压测环境的性能压测实现对压测对象的性能压测。上述用户数可以由用户通过客户端进行手动设置,也可以由服务器按照预设规则进行自动设置,例如,服务器预设基础用户数,首先将用户数设置为基础用户数,根据基础用户数分配进程,得到基础用户数对应的性能压测结果,再对用户数进行递增,得到此时的性能压测结果,即按照预设的递增数增加用户数,得到不同用户数对应的性能压测结果,据此确定产生性能瓶颈的用户数,确定压测对象的最大负载数。
需要说明的是,若发送至压测对象的请求需要构造登录态,则利用所述进程基于所述目标文件生成符合所述协议类型的数据包的步骤可以包括:确定目标账户池,并生成所述目标账户池中每个账户信息对应的登录态;若所述数据包需要登录态,则利用所述进程在所有所述登录态中选择目标登录态,并基于所述目标文件和所述目标登录态生成符合所述协议类型的数据包。在具体实施中,服务器存储至少一个账号池,每个账号池中包括多个账户信息,用于为发送至目标设备的请求构造登录态。对于用户选择的压测对象,若发送至该压测对象的请求需要构造登录态,服务器确定该压测对象对应的目标账户池,并为该目标账户池中的每个账户信息生成登录态。可以理解的是,该目标账户池可以由用户在客户端进行手动选择,也可以由服务器进行自动设置,在此不进行具体限定。服务器中的进程在构造发送至目标设备的数据包时,在所有登录态中选择目标登录态,并基于目标文件和目标登录态生成符合对应协议类型的数据包。此处不对选择目标登录态的具体规则进行限定,进程可以在每次构造数据包时,在所有登录态中进行随机选择,服务器也可以在预设时间段内指定目标登录态,所有进程在该预设时间段内构造数据包时均选择服务器指定的目标登录态,服务器定时更新目标登录态。
本申请实施例提供的性能压测方法,对于压测对象的性能压测,需要确定其使用的协议类型。不同的协议类型对应不同的目标文件,该目标文件用于描述符合对应的协议类型的数据包的数据结构,即基于目标文件可以生成符合对应的协议类型的数据包。获取压测对象的协议类型对应的目标文件,以便基于该目标文件符合该协议类型的数据包,从而对压测对象进行性能压测。可见,上述压测流程适用于不同协议类型的压测对象,压测流程的适用性较高。另外,本申请实施例提供的性能压测方法,将压测对象的环境单独部署于目标设备上,将数据包发送至目标设备以实现对压测对象的压测,单独部署压测环境有利于定位具体的服务,即有利于定位产生性能问题的服务,提高了确定性能问题产生点的准确度。
本申请实施例公开了一种性能压测方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。本申请实施例以服务器为执行主体进行介绍,具体的:
参见图3,本申请实施例提供的第二种性能压测方法的流程图,如图3所示,包括:
S201:确定压测对象和所述压测对象对应的协议类型,并获取所述协议类型对应的目标文件;其中,所述目标文件用于描述符合所述协议类型的数据包的数据结构;
S202:在所述目标设备上部署所述压测对象的所有接入服务;
S203:获取所述目标设备上每个已部署服务对应的配置文件,并根据所述配置文件中的负载均衡参数确定每个所述已部署服务对应的调用服务;
S204:在所述目标设备上部署所有所述调用服务;
在本实施例中,服务器首先获取并在目标设备上部署压测对象的所有接入服务,然后部署所有接入服务的关联服务。在具体实施中,服务器向目标设备上已部署的接入服务发送请求,以获取接入服务的配置文件,该配置文件中包括负载均衡参数,该参数记录了接入服务调用的所有其他服务,即接入服务对应的调用服务,在目标设备上部署接入服务对应的调用服务。对于目标设备上新增的已部署服务,均需要向其发送请求、获取其对应的配置文件、部署其对应的调用服务,以便在目标设备上部署所有接入服务的关联服务,即接入服务的关联服务包括接入服务调用的其他服务和所有其他服务对应的调用服务。
S205:为所述压测对象分配进程;
S206:利用所述进程基于所述目标文件生成符合所述协议类型的数据包,并将所述数据包发送至所述目标设备,以便通过对所述压测环境进行压测得到所述压测对象的压测结果。
由此可见,本实施例提供了一种具体的压测环境部署方法,首先在目标设备上部署压测对象的接入服务,再通过服务之间的调用关系部署所有接入服务的关联服务。对于网状部署服务、链路复杂的压测对象来说,利用服务之间的调用关系完成压测环境的部署,可以找全链路中的所有服务,
本申请实施例公开了一种性能压测方法,相对于第一个实施例,本实施例对技术方案作了进一步的说明和优化。本申请实施例以服务器为执行主体进行介绍,具体的:
参见图4,本申请实施例提供的第三种性能压测方法的流程图,如图4所示,包括:
S301:确定压测对象和所述压测对象对应的协议类型,并获取所述协议类型对应的目标文件;其中,所述目标文件用于描述符合所述协议类型的数据包的数据结构;
S302:基于所述压测对象的接入服务在目标设备上部署压测环境;
S303:获取需要压测的用户数,根据所述用户数计算所述压测对象对应的目标主进程数量和目标从进程数量;
在具体实施中,需要为压测对象分配多个进程,同时向目标设备发送请求。其中,从进程(slave)用于生成并向目标设备发送数据包,一个主进程(master)可以对应多个从进程,主进程用于收集对应的从进程的数据信息,当然主进程也可以生成并向目标设备发送数据包,即主进程收集自身和对应的从进程的数据信息。
如图5所示,根据压测对象需要的用户数(userNum)可以计算得到目标主进程数量(masterNum)和目标从进程数量(slaveNum),例如,slaveNum=[userNum/300]+1,masterNum=[slaveNum/8]+1,其中,每台压测机部署一个主进程,采用2400并发数,每个从进程向目标设备发送300个请求,1个主进程用于收集8个从进程的数据信息。
S304:若所述目标主进程数量小于或等于空闲主进程数量且所述目标从进程数量小于或等于空闲从进程数量,则为所述压测对象分配所述目标主进程数量的主进程和所述目标从进程数量的从进程;其中,所述从进程用于生成并向所述目标设备发送数据包,所述主进程用于收集对应的从进程的数据信息;
在本步骤中,查询服务器的压测资源分配(streesResource),若目标主进程数量小于或等于空闲主进程数量(curMasterNum)且目标从进程数量小于或等于空闲从进程数量(curSslaveNum),则为压测对象分配目标主进程数量的主进程和目标从进程数量的从进程,更新streesResource中的空闲主进程数量和空闲从进程数量,resourceUseRecord记录进程的分配信息,可以包括本次压测的标识(taskid)、压测对象的IP(中文全称:网际互连协议,英文全称:Internet Protocol)地址等。压测结束后,根据其标识查询其使用的资源,即为其分配的主进程和从进程,对主进程和从进程进行回收,更新streesResource中的空闲主进程数量和空闲从进程数量,更新resourceUseRecord中的记录。
S305:利用所述进程基于所述目标文件生成符合所述协议类型的数据包,并将所述数据包发送至所述目标设备,以便通过对所述压测环境进行压测得到所述压测对象的压测结果。
由此可见,本实施例公开了一种具体的进程分配方法,从进程用于生成并向目标设备发送多条数据请求,根据压测对象需要的用户数和每个主进程发送请求数量可以计算需要分配的目标从进程数量。主进程用于收集对应的从进程的数据信息,根据主进程数量与从进程数量的对应关系可以计算需要分配的目标主进程数量。
本申请实施例公开了一种性能压测方法,相对于第一个实施例,本实施例对技术方案作了进一步的说明和优化。本申请实施例以服务器为执行主体进行介绍,具体的:
参见图6,本申请实施例提供的第四种性能压测方法的流程图,如图6所示,包括:
S401:确定压测对象和所述压测对象对应的协议类型,并获取所述协议类型对应的目标文件;其中,所述目标文件用于描述符合所述协议类型的数据包的数据结构;
S402:基于所述压测对象的接入服务在目标设备上部署压测环境,并为所述压测对象分配进程;
S403:利用所述进程基于所述目标文件生成符合所述协议类型的数据包,并将所述数据包发送至所述目标设备;
S404:根据所有所述主进程收集的数据信息计算所述压测对象的压测结果项;其中,所述压测结果项包括响应时间、QPS、错误率和每个服务的资源使用率中任一项或任几项的组合。
在本实施例中,主进程用于数据包发送和响应的数据信息,根据所有主进程收集的数据信息可以计算得到压测结果项,可以包括响应时间、QPS(中文全称:每秒查询率,英文全称:Queries-per-second)、错误率和每个服务的资源使用率,可以在客户端处显示上述压测结果项。可以理解的是,上述响应时间为所有数据包响应时间的平均值。若错误率大于第一预设值,则通过链路确定失败的服务,并通过客户端进行展示,此处不对第一预设值进行具体限定,本领域技术人员可以根据实际情况灵活设置。
作为一种优选实施方式,本实施例还包括:若所述QPS小于第二预设值,则根据所述服务之间的调用关系和每个所述服务的资源使用率进行性能分析,以便确定出现性能瓶颈的服务。在具体实施中,若QPS小于第二预设值,则说明压测环境中的某一项或某几项服务出现性能瓶颈,此处同样不对第二预设值进行具体限定,本领域技术人员可以根据实际情况灵活设置。为了确定定位产生性能问题的服务,可以在客户端显示各个服务之间的调用关系和每个服务的资源使用率,以便测试人员进行定位。此处不对资源使用率的具体展示方式进行限定,可以直接显示资源使用率的数值,也可以通过不同的颜色表示不同范围的资源使用率,本领域技术人员可以根据实际情况灵活选择。例如,如图7所示,服务A调用服务B和服务C,服务B调用服务D、服务E和服务F,服务C调用服务G,图中双向阴影表示资源使用率大于或等于90%,单向阴影表示资源使用率小于90%大于或等于60%,空白表示资源使用率小于60%。可见,服务B为性能瓶颈点,其原因可能为调用服务过多,也可能为服务D的资源使用率过高,即服务D也为性能瓶颈点。对于产生性能问题的服务,还可以通过火焰图的方式显示其中各个操作的资源使用情况,方便开发优化。
由此可见,在本实施例中,可以根据主进程收集的数据信息可以计算得到压测结果项,据此进行性能分析,根据服务之间的调用关系和每个服务的资源使用率定位性能瓶颈点,提高了确定性能问题产生点的准确度。
为了便于理解,结合本申请的一种应用场景进行介绍,性能压测的流程如图8所示。首先,用户在客户端处进行页面填写,填写压测计划名称、选择压测对象和协议类型、上传用于描述符合该协议类型的数据包的数据结构的文件。如图9所示,若用户选择的压测对象为K歌系统,协议类型为HTTP类型,则数据编辑图如图10所示,HTTP类型的测试数据如图11所示,用户可以在其中进行测试数据的修改。
服务器生成不同协议类型的脚本,该脚本用于压测环境的部署、进程的分配和性能分析。在压测环境部署的过程中,首先部署压测对象的接入服务,向部署完成的服务发送请求,根据响应数据中的L5(一种负载均衡组件)参数判断是否有调用服务,若是,则部署调用服务,并向部署完成的服务发送请求的步骤,直到所有调用服务均部署完成。若用户选择压测机器,则部署该压测机器,若用户未选择,则服务器进行动态分配,利用部署完成的压测机器进行压测。每个压测机器中都具备一个主进程,用于收集数据。压测完成后,若存在多个压测机器参与压测,则获取多个压测机器的数据,计算压测结果项进行展示。判断服务成功率是否达到目标,若未达到目标,则链路展示失败的服务,并进行开发优化,若达到目标,则判断QPS否达到目标,若未达到目标,则分析服务的资源使用情况并通过火焰图进行展示,并进行开发优化。开发优化后,重新进行压测步骤,以验证优化是否生效。
下面对本申请实施例提供的一种性能压测装置进行介绍,下文描述的一种性能压测装置与上文描述的一种性能压测方法可以相互参照。
参见图12,本申请实施例提供的一种性能压测装置的结构图,如图12所示,包括:
确定模块100,用于确定压测对象和所述压测对象对应的协议类型,并获取所述协议类型对应的目标文件;其中,所述目标文件用于描述符合所述协议类型的数据包的数据结构;
部署模块200,用于基于所述压测对象的接入服务在目标设备上部署压测环境,并为所述压测对象分配进程;
压测模块300,用于利用所述进程基于所述目标文件生成符合所述协议类型的数据包,并将所述数据包发送至所述目标设备,以便通过对所述压测环境进行压测得到所述压测对象的压测结果。
本申请实施例提供的性能压测装置,对于压测对象的性能压测,需要确定其使用的协议类型。不同的协议类型对应不同的目标文件,该目标文件用于描述符合对应的协议类型的数据包的数据结构,即基于目标文件可以生成符合对应的协议类型的数据包。获取压测对象的协议类型对应的目标文件,以便基于该目标文件符合该协议类型的数据包,从而对压测对象进行性能压测。可见,上述压测流程适用于不同协议类型的压测对象,压测流程的适用性较高。另外,本申请实施例提供的性能压测装置,将压测对象的环境单独部署于目标设备上,将数据包发送至目标设备以实现对压测对象的压测,单独部署压测环境有利于定位具体的服务,即有利于定位产生性能问题的服务,提高了确定性能问题产生点的准确度。
在上述实施例的基础上,作为一种优选实施方式,所述部署模块200包括:
部署单元,用于基于所述压测对象的接入服务在目标设备上部署压测环境;
计算单元,用于获取需要压测的用户数,根据所述用户数计算所述压测对象对应的目标主进程数量和目标从进程数量;
分配单元,用于若所述目标主进程数量小于或等于空闲主进程数量且所述目标从进程数量小于或等于空闲从进程数量,则为所述压测对象分配所述目标主进程数量的主进程和所述目标从进程数量的从进程;其中,所述从进程用于生成并向所述目标设备发送数据包,所述主进程用于收集对应的从进程的数据信息。
在上述实施例的基础上,作为一种优选实施方式,所述部署单元包括:
第一部署子单元,用于在所述目标设备上部署所述压测对象的所有接入服务;
获取子单元,用于获取所述目标设备上每个已部署服务对应的配置文件,并根据所述配置文件中的负载均衡参数确定每个所述已部署服务对应的调用服务;
第二部署子单元,用于在所述目标设备上部署所有所述调用服务。
在上述实施例的基础上,作为一种优选实施方式,所述压测模块300包括:
确定单元,用于确定目标账户池,并生成所述目标账户池中每个账户信息对应的登录态;
生成单元,用于若所述数据包需要登录态,则利用所述进程在所有所述登录态中选择目标登录态,并基于所述目标文件和所述目标登录态生成符合所述协议类型的数据包;
发送单元,用于将所述数据包发送至所述目标设备,以便通过对所述压测环境进行压测得到所述压测对象的压测结果。
在上述实施例的基础上,作为一种优选实施方式,所述发送单元包括:
发送子单元,用于将所述数据包发送至所述目标设备;
计算子单元,用于根据所有所述主进程收集的数据信息计算所述压测对象的压测结果项;其中,所述压测结果项包括响应时间、QPS、错误率和每个服务的资源使用率中任一项或任几项的组合。
在上述实施例的基础上,作为一种优选实施方式,所述发送单元还包括:
分析子单元,用于若所述QPS小于第二预设值,则根据所述服务之间的调用关系和每个所述服务的资源使用率进行性能分析,以便确定出现性能瓶颈的服务。
在上述实施例的基础上,作为一种优选实施方式,所述发送单元还包括:
确定子单元,用于若所述错误率大于第一预设值,则通过链路确定失败的服务。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请还提供了一种服务器,参见图13,本申请实施例提供的一种服务器200的结构图,如图13所示,可以包括处理器21和存储器22。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器22可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器22还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器22至少用于存储以下计算机程序221,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的由服务器侧执行的性能压测方法中的相关步骤。另外,存储器22所存储的资源还可以包括操作系统222和数据223等,存储方式可以是短暂存储或者永久存储。其中,操作系统222可以包括Windows、Unix、Linux等。
在一些实施例中,服务器200还可包括有显示屏23、输入输出接口24、通信接口25、传感器26、电源27以及通信总线28。
当然,图13所示的服务器的结构并不构成对本申请实施例中服务器的限定,在实际应用中服务器可以包括比图13所示的更多或更少的部件,或者组合某些部件。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述任一实施例服务器所执行的性能压测方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种性能压测方法,其特征在于,包括:
确定压测对象和所述压测对象对应的协议类型,并获取所述协议类型对应的目标文件;其中,所述目标文件用于描述符合所述协议类型的数据包的数据结构;
基于所述压测对象的接入服务在目标设备上部署压测环境,并为所述压测对象分配进程;
利用所述进程基于所述目标文件生成符合所述协议类型的数据包,并将所述数据包发送至所述目标设备,以便通过对所述压测环境进行压测得到所述压测对象的压测结果。
2.根据权利要求1所述性能压测方法,其特征在于,为所述压测对象分配进程,包括:
获取需要压测的用户数,根据所述用户数计算所述压测对象对应的目标主进程数量和目标从进程数量;
若所述目标主进程数量小于或等于空闲主进程数量且所述目标从进程数量小于或等于空闲从进程数量,则为所述压测对象分配所述目标主进程数量的主进程和所述目标从进程数量的从进程;其中,所述从进程用于生成并向所述目标设备发送数据包,所述主进程用于收集对应的从进程的数据信息。
3.根据权利要求1所述性能压测方法,其特征在于,所述基于所述压测对象的接入服务在目标设备上部署压测环境,包括:
在所述目标设备上部署所述压测对象的所有接入服务;
获取所述目标设备上每个已部署服务对应的配置文件,并根据所述配置文件中的负载均衡参数确定每个所述已部署服务对应的调用服务;
在所述目标设备上部署所有所述调用服务。
4.根据权利要求1所述性能压测方法,其特征在于,所述利用所述进程基于所述目标文件生成符合所述协议类型的数据包,包括:
确定目标账户池,并生成所述目标账户池中每个账户信息对应的登录态;
若所述数据包需要登录态,则利用所述进程在所有所述登录态中选择目标登录态,并基于所述目标文件和所述目标登录态生成符合所述协议类型的数据包。
5.根据权利要求2至4中任一项所述性能压测方法,其特征在于,所述通过对所述压测环境进行压测得到所述压测对象的压测结果,包括:
根据所有所述主进程收集的数据信息计算所述压测对象的压测结果项;其中,所述压测结果项包括响应时间、QPS、错误率和每个服务的资源使用率中任一项或任几项的组合。
6.根据权利要求5所述性能压测方法,其特征在于,所述根据所有所述主进程收集的数据信息计算所述压测对象的压测结果项之后,还包括:
若所述QPS小于第二预设值,则根据所述服务之间的调用关系和每个所述服务的资源使用率进行性能分析,以便确定出现性能瓶颈的服务。
7.根据权利要求5所述性能压测方法,其特征在于,所述根据所有所述主进程收集的数据信息计算所述压测对象的压测结果项之后,还包括:
若所述错误率大于第一预设值,则通过链路确定失败的服务。
8.一种性能压测装置,其特征在于,包括:
确定模块,用于确定压测对象和所述压测对象对应的协议类型,并获取所述协议类型对应的目标文件;其中,所述目标文件用于描述符合所述协议类型的数据包的数据结构;
部署模块,用于基于所述压测对象的接入服务在目标设备上部署压测环境,并为所述压测对象分配进程;
压测模块,用于利用所述进程基于所述目标文件生成符合所述协议类型的数据包,并将所述数据包发送至所述目标设备,以便通过对所述压测环境进行压测得到所述压测对象的压测结果。
9.一种服务器,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述性能压测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述性能压测方法的步骤。
CN202010831666.7A 2020-08-18 2020-08-18 性能压测方法、装置及服务器和计算机可读存储介质 Pending CN111966556A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010831666.7A CN111966556A (zh) 2020-08-18 2020-08-18 性能压测方法、装置及服务器和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010831666.7A CN111966556A (zh) 2020-08-18 2020-08-18 性能压测方法、装置及服务器和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN111966556A true CN111966556A (zh) 2020-11-20

Family

ID=73389122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010831666.7A Pending CN111966556A (zh) 2020-08-18 2020-08-18 性能压测方法、装置及服务器和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111966556A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014657A (zh) * 2021-03-09 2021-06-22 北京大米科技有限公司 流量线路的切换方法、装置、存储介质及电子设备
CN113315677A (zh) * 2021-05-19 2021-08-27 湖南快乐阳光互动娱乐传媒有限公司 一种基于镜像流量的压测方法、装置、存储介质和设备
CN114338447A (zh) * 2021-12-29 2022-04-12 天翼物联科技有限公司 Radius环境下的全链路压测方法、装置、计算机设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014657A (zh) * 2021-03-09 2021-06-22 北京大米科技有限公司 流量线路的切换方法、装置、存储介质及电子设备
CN113315677A (zh) * 2021-05-19 2021-08-27 湖南快乐阳光互动娱乐传媒有限公司 一种基于镜像流量的压测方法、装置、存储介质和设备
CN114338447A (zh) * 2021-12-29 2022-04-12 天翼物联科技有限公司 Radius环境下的全链路压测方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN111966556A (zh) 性能压测方法、装置及服务器和计算机可读存储介质
Téllez et al. A tabu search method for load balancing in fog computing
CN110290189A (zh) 一种容器集群管理方法、装置及系统
CN107590075B (zh) 一种软件测试方法及装置
CN105677452B (zh) 任务平台任务处理方法和装置
CN108256118B (zh) 数据处理方法、装置、系统、计算设备以及存储介质
US10277475B2 (en) System and method for dynamically testing networked target systems
CN102868573B (zh) Web服务负载云测试方法和装置
CN109376088B (zh) 一种自动化测试系统及自动化测试方法
CN110289983B (zh) 负载均衡应用创建方法、装置、计算机设备及存储介质
CN109218133A (zh) 网络速度测试系统、方法、装置及计算机可读存储介质
CN103246606B (zh) Esb平台的性能测试方法和系统
CN103516851B (zh) 一种无线产品云测试平台系统
CN112311628A (zh) 网络测速方法、系统、网络设备和存储介质
CN111431730B (zh) 一种业务处理方法、系统、计算机设备及可读介质
CN113608751B (zh) 推理服务平台的运行方法、装置、设备及存储介质
CN107395663B (zh) 数据获取方法及装置
CN102929693B (zh) 整机柜服务器的性能评测方法及装置
CN108509256B (zh) 调度运行设备的方法、设备和运行设备
CN110502343B (zh) 一种资源分配方法、系统、装置及计算机可读存储介质
CN110971478B (zh) 云平台服务性能的压测方法、装置及计算设备
CN110932879B (zh) 网络性能测试方法、数据处理设备和存储介质
CN112631577B (zh) 一种模型的调度方法、模型调度器以及模型安全测试平台
CN115454878A (zh) 一种应用于微服务的接口调用测试方法及相关装置
CN111294250B (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