CN114567571B - 性能测试方法、装置、电子设备和计算机可读存储介质 - Google Patents
性能测试方法、装置、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN114567571B CN114567571B CN202210246570.3A CN202210246570A CN114567571B CN 114567571 B CN114567571 B CN 114567571B CN 202210246570 A CN202210246570 A CN 202210246570A CN 114567571 B CN114567571 B CN 114567571B
- Authority
- CN
- China
- Prior art keywords
- message
- pressure measurement
- slave
- sent
- master
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000011056 performance test Methods 0.000 title abstract description 25
- 238000009530 blood pressure measurement Methods 0.000 claims abstract description 156
- 238000012545 processing Methods 0.000 claims abstract description 99
- 238000004891 communication Methods 0.000 claims abstract description 88
- 238000012360 testing method Methods 0.000 claims abstract description 73
- 238000006243 chemical reaction Methods 0.000 claims abstract description 43
- 238000004590 computer program Methods 0.000 claims abstract description 13
- 238000005259 measurement Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 4
- 230000002708 enhancing effect Effects 0.000 claims 2
- 241000238814 Orthoptera Species 0.000 description 36
- 238000003825 pressing Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 15
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000010998 test method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种性能测试方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:启动从设备之后,基于命令行参数所对应的主设备的通信协议,向所述主设备发送准备就绪的消息;若接收到所述主设备发送的执行兼容处理的消息,则返回已完成兼容处理的消息至所述主设备,并开始执行压测;当执行完所述压测后,向所述主设备发送压测结果的消息;向所述主设备发送已完成压测的消息,并退出所述测压流程;其中,所述从设备和所述主设备之间传输的各所述消息是经过格式转换处理和序列化处理的。采用本方法能够有效提高性能测试的效率,满足分布式压测场景的需求。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种性能测试方法、装置、电子设备和计算机可读存储介质。
背景技术
随着计算机技术领域技术的发展,5G时代的来临,互联网的出现给现代生活带来了极大的便利,移动通信终端领域的快速发展让通信终端的形式越来越多样化,给人们的生活提供了更多的便利,用户可以通过使用各种类型的终端设备进行信息交互,因此,需要对各个信息交互的平台系统进行性能测试,以了解系统的性能情况。
然而,目前的性能测试方式中,由于开源的性能测试工具只能用在单机压测上,无法满足分布式压测场景的需求,使得性能测试的效率较低。
发明内容
本申请实施例提供了一种性能测试方法、装置、电子设备、计算机可读存储介质,可以有效提高性能测试的效率,满足分布式压测场景的需求。
一种性能测试方法,应用于从设备,包括:
启动从设备之后,基于命令行参数所对应的主设备的通信协议,向所述主设备发送准备就绪的消息;
若接收到所述主设备发送的执行兼容处理的消息,则返回已完成兼容处理的消息至所述主设备,并开始执行压测;
当执行完所述压测后,向所述主设备发送压测结果的消息;
向所述主设备发送已完成压测的消息,并退出所述测压流程;其中,所述从设备和所述主设备之间传输的各所述消息是经过格式转换处理和序列化处理的。
一种性能测试装置,包括:
发送模块,用于启动从设备之后,基于命令行参数所对应的主设备的通信协议,向所述主设备发送准备就绪的消息;
接收模块,用于若接收到所述主设备发送的执行兼容处理的消息,则返回已完成兼容处理的消息至所述主设备,并开始执行压测;
所述发送模块还用于当执行完所述压测后,向所述主设备发送压测结果的消息;
退出模块,用于向所述主设备发送已完成压测的消息,并退出所述测压流程;其中,所述从设备和所述主设备之间传输的各所述消息是经过格式转换处理和序列化处理的。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述的性能测试方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的方法的步骤。
上述性能测试方法,启动从设备之后,基于命令行参数所对应的主设备的通信协议,向主设备发送准备就绪的消息;若接收到主设备发送的执行兼容处理的消息,则返回已完成兼容处理的消息至主设备,并开始执行压测;当执行完压测后,向主设备发送压测结果的消息;向主设备发送已完成压测的消息,并退出测压流程;其中,从设备和主设备之间传输的各消息是经过格式转换处理和序列化处理的,由于从设备向主设备发送消息时,需要对消息进行格式转换处理和序列化处理,并在命令行参数中增加了主设备的相关参数,以便让从设备将数据上报给指定的主设备,故当启动从设备之后,从设备可以基于命令行参数所对应的主设备的通信协议,向主设备发送压测时的各种状态数据,并使得从设备将压测结果上报给指定的主设备进行结果汇总,从而能够实现多个从设备同时发压和压测结束之后进行数据汇总,有效提高了性能测试的效率,满足分布式压测场景的需求。
一种性能测试方法,应用于主设备,包括:
启动主设备之后,获取待执行压测的从设备的数量;
若接收到所述数量的从设备发送的准备就绪的消息,则分别向所述数量的各所述从设备发送执行兼容处理的消息;
接收所述数量的各所述从设备返回的已完成兼容处理的消息;
接收所述数量的各所述从设备发送的压测结果的消息;
若接收到所述数量的各所述从设备发送的已完成压测的消息,则开始进行分布式的结果汇总;其中,所述主设备在接收到所述从设备发送的各所述消息时,基于配置文件中新增的类型转换方式,将所述从设备发送的各所述消息的数据类型转换成整数类型。
一种性能测试装置,包括:
获取模块,用于启动主设备之后,获取待执行压测的从设备的数量;
发送模块,用于若接收到所述数量的从设备发送的准备就绪的消息,则分别向所述数量的各所述从设备发送执行兼容处理的消息;
接收模块,用于接收所述数量的各所述从设备返回的已完成兼容处理的消息;接收所述数量的各所述从设备发送的压测结果的消息;
汇总模块,用于若接收到所述数量的各所述从设备发送的已完成压测的消息,则开始进行分布式的结果汇总;其中,所述主设备在接收到所述从设备发送的各所述消息时,基于配置文件中新增的类型转换方式,将所述从设备发送的各所述消息的数据类型转换成整数类型。
一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述的性能测试方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的方法的步骤。
上述性能测试方法,启动主设备之后,获取待执行压测的从设备的数量;若接收到所述数量的从设备发送的准备就绪的消息,则分别向所述数量的各从设备发送执行兼容处理的消息;接收所述数量的各从设备返回的已完成兼容处理的消息;接收所述数量的各从设备发送的压测结果的消息;若接收到所述数量的各从设备发送的已完成压测的消息,则开始进行分布式的结果汇总;其中,主设备在接收到从设备发送的各消息时,基于配置文件中新增的类型转换方式,将从设备发送的各消息的数据类型转换成整数类型。由于在主设备配置文件中新增了类型转换方式,故当主设备接收到从设备发送的消息时,主设备可以基于配置文件中新增的类型转换方式,将从设备发送的各消息的数据类型转换成整数类型,以及时获取到各个从设备压测时的各种状态数据,并对各个从设备上报的压测结果数据进行分布式的结果汇总,从而能够实现多个从设备同时发压和压测结束之后进行数据汇总,有效提高了性能测试的效率,满足分布式压测场景的需求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中性能测试方法的应用环境图;
图2为一个实施例中性能测试方法的流程图;
图3为一个实施例中将序列化通信数据发送至主设备步骤的流程图;
图4为另一个实施例中性能测试方法的流程图;
图5为一个实施例中基于wrk的分布式性能测试的架构图;
图6为一个实施例中基于wrk的分布式性能测试的流程示意图;
图7为一个实施例中性能测试装置的结构框图;
图8为另一个实施例中性能测试装置的结构框图;
图9为一个实施例中电子设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的性能测试方法,可以应用于如图1所示的应用环境中。如图1所示,该应用环境包括主设备102、从设备104和被测系统106。其中,主设备102通过网络与从设备104进行通信,从设备104通过网络与被测系统106进行通信。数据存储系统可以存储被测系统106需要处理的数据。数据存储系统可以集成在被测系统106上,也可以放在云上或其他网络服务器上。启动从设备104之后,从设备104基于命令行参数所对应的主设备102的通信协议,向主设备102发送准备就绪的消息;若从设备104接收到主设备102发送的执行兼容处理的消息,则返回已完成兼容处理的消息至主设备102,并开始对被测系统106执行压测;当从设备104执行完压测后,向主设备102发送压测结果的消息;从设备104向主设备102发送已完成压测的消息,并退出测压流程;其中,从设备104和主设备102之间传输的各消息是经过格式转换处理和序列化处理的。
其中,主设备102和从设备104可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。被测系统106可以用独立的服务器或者是多个服务器组成的服务器集群来实现。可以理解,本申请实施例提供的性能测试方法也可以是由服务器执行的。
在一个实施例中,如图2所示,提供了一种性能测试方法,以该方法应用于图1中的从设备为例进行说明,包括以下步骤:
步骤202,启动从设备之后,基于命令行参数所对应的主设备的通信协议,向主设备发送准备就绪的消息。
其中,wrk是指一种现代HTTP基准测试工具,在单个多核CPU上运行时能够产生显著的负载,可以将多线程设计与可伸缩事件通知系统相结合。locust是指一种开源的基于python实现的性能测试工具。
从设备是指在架构为主从设备模式下所对应的从设备,从设备用于作为执行节点,用于执行压测。主从设备模式也叫做主仆模式(简称Master-Slave),核心思想是基于分而治之的思想,将一个原始任务分解为若干个语义等同的子任务,并由专门的工作者线程来并行执行这些任务,原始任务的结果是通过整合各个子任务的处理结果形成的。主从设备模式主要的使用场景可以包括并行计算,以提升计算性能;容错处理,以提升计算的可靠性;计算精度,以提高计算的精确程度。可以理解,本申请实施例中在进行分布式压测时,可以使用wrk作为slave即执行节点,即从设备中运行wrk。
命令行参数是指用户触发的用于执行性能测试的命令中所包含的参数,命令行参数中可以包括多个参数。
主设备是指在架构为主从设备模式下所对应的主设备,主设备作为管理节点,用于控制分布式压测的启动和汇总分布式压测数据。可以理解,本申请实施例中在进行分布式压测时,可以使用locust作为master即管理节点,即主设备中运行locust。
通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。例如,本申请实施例中主设备和从设备之间可以使用zeromq进行通信,zeromq是一个基于消息队列的多线程网络库。
准备就绪的消息是指从设备发送的表示已经准备就绪的消息,例如,本申请实施例中准备就绪的消息可以为client_ready,即可以在locust中自定义一种消息类型为client_ready。
具体地,当用户通过触发操作启动从设备之后,当从设备接收到主设备发送的命令行参数时,从设备可以基于命令行参数所对应的主设备的通信协议,向命令行参数所对应的主设备发送准备就绪的消息。
例如,当用户通过触发操作启动从设备之后,用户需要对系统A的端口A进行性能测试时,用户可以通过触发操作设置待执行压测的从设备为从设备1和从设备2,以及从设备1和从设备2上报压测结果所对应的主设备的参数,并以命令行参数的形式发送至主设备,以使得主设备基于用户所设置的待执行压测的从设备以及每个从设备上报压测结果所对应的主设备的参数,分别向从设备1和从设备2发送对应的命令行参数。进一步的,当从设备1接收到主设备发送的命令行参数时,从设备1可以基于命令行参数中所携带的主设备的相关参数,获取目标主设备所对应的通信协议,并基于通信协议向目标主设备发送准备就绪的消息。同时,当从设备2接收到主设备发送的命令行参数时,从设备2也可以基于命令行参数中所携带的主设备的相关参数,获取目标主设备所对应的通信协议,并基于通信协议向目标主设备发送准备就绪的消息。
假设使用wrk作为从设备,使用locust作为主设备,由于wrk是C语言编写的,locust是python编写的,这两种语言之间的数据结构不通用,因此在从设备向主设备发送准备就绪的消息之前,从设备需要将待发送的通信数据进行格式化处理,转换成locust可以识别的数据格式,例如从设备可以将待发送的通信数据转换成json格式的数据,并将转换后的数据发送至主设备,以使得主设备能够准确识别从设备所发送的数据。
步骤204,若接收到主设备发送的执行兼容处理的消息,则返回已完成兼容处理的消息至主设备,并开始执行压测。
其中,执行兼容处理的消息是指主设备发送的表示可以开始进行扩容处理的消息,例如,本申请实施例中执行兼容处理的消息可以为spawn,即可以在locust中自定义一种消息类型为spawn,由master发给slave,告诉slave可以开始进行扩容了。
已完成兼容处理的消息是指从设备发送的表示已完成兼容处理,即将开始执行压测的消息,例如,本申请实施例中已完成兼容处理的消息可以为spawning_complete,即可以在locust中自定义一种消息类型为spawning_complete,slave发送spawning_complete这个类型的消息给master,代表slave即将开始执行压测。
压测即压力测试,是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患。一般针对网络游戏压力测试从传统的意义来讲是对网络游戏的服务器不断施加“压力”的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。例如,一款网络游戏在上市前,游戏研发团队或运营商是会对其进行游戏压力测试,目的是为了了解游戏服务器的承受能力,以便更好的有目的的进行运营或研发。压测主要检测服务器的承受能力,包括用户承受能力、流量承受等。
具体的,当从设备基于命令行参数所对应的主设备的通信协议,向命令行参数所对应的主设备发送准备就绪的消息之后,若从设备接收到主设备发送的执行兼容处理的消息,则从设备返回已完成兼容处理的消息至主设备,并开始执行压测。
例如,当从设备1基于命令行参数所对应的主设备1的通信协议,向命令行参数所对应的主设备1发送client_ready消息之后,当从设备1接收到主设备1发送的spawn消息时,从设备1返回spawning_complete消息至主设备1,并开始执行压测,以使得主设备1能够及时获取到各个从设备的状态信息。
步骤206,当执行完压测后,向主设备发送压测结果的消息。
其中,压测结果的消息是指从设备发送的表示测试结果的消息,例如,本申请实施例中上报的压测结果的消息可以为stats,即可以在locust中自定义一种消息类型为stats,slave发送stats这个类型的消息给master,代表slave将完成压测后的测试结果数据上报至主设备。
具体的,从设备接收到主设备发送的执行兼容处理的消息,返回已完成兼容处理的消息至主设备后,从设备开始执行压测,当从设备执行完压测后,从设备向命令行参数所对应的主设备发送对应的压测结果的消息。
例如,从设备1接收到主设备1发送的执行兼容处理的消息,返回已完成兼容处理的消息至主设备1后,从设备1开始执行压测,当从设备1执行完压测后,从设备1向命令行参数所对应的主设备1发送压测结果的消息,以使得主设备1可以对各个从设备所上报的压测结果进行汇总。
步骤208,向主设备发送已完成压测的消息,并退出测压流程;其中,从设备和主设备之间传输的各消息是经过格式转换处理和序列化处理的。
其中,已完成压测的消息是指从设备发送的表示测试已经结束的消息,例如,本申请实施例中已完成压测的消息可以为quit,即可以在locust中自定义一种消息类型为quit,slave发送quit这个类型的消息给master,代表slave已完成压测,即测试已经结束。
格式转换处理是指对待发送的通信数据的格式进行转换,例如,将待发送的通信数据的格式转换成json格式的数据,并将转换后的数据发送至主设备,以使得主设备能够准确识别从设备所发送的数据。
序列化处理是指将通信数据进行序列化格式处理的步骤,例如,主设备和从设备之间传输的数据可以使用Message Pack进行序列化和反序列化处理。其中,Message Pack是指一种高效的二进制序列化格式。
具体的,当从设备向命令行参数所对应的主设备发送压测结果的消息之后,从设备向主设备发送已完成压测的消息,并退出测压流程;其中,从设备和主设备之间传输的各消息是经过格式转换处理和序列化处理的。即从设备向主设备发送任意消息前,从设备均需要对待发送的通信数据进行格式转换处理和序列化处理,并将处理后的通信数据发送至主设备,以使得主设备能够准确识别从设备所发送的数据。
例如,当从设备1向命令行参数所对应的主设备1发送stats的消息之后,从设备1向主设备1发送quit的消息,并退出测压流程。即从设备1向主设备1发送任意消息前,从设备1均需要对待发送的通信数据进行格式转换处理和序列化处理,例如,从设备1将待发送的通信数据转换为json格式的数据,并对json格式的数据进行序列化处理,得到二进制序列化格式的通信数据,并将处理后的二进制序列化格式的通信数据发送至主设备1,以使得主设备1能够准确识别从设备所发送的二进制序列化格式的通信数据。
上述性能测试方法中,启动从设备之后,基于命令行参数所对应的主设备的通信协议,向主设备发送准备就绪的消息;若接收到主设备发送的执行兼容处理的消息,则返回已完成兼容处理的消息至主设备,并开始执行压测;当执行完压测后,向主设备发送压测结果的消息;向主设备发送已完成压测的消息,并退出测压流程;其中,从设备和主设备之间传输的各消息是经过格式转换处理和序列化处理的,由于从设备向主设备发送消息时,需要对消息进行格式转换处理和序列化处理,并在命令行参数中增加了主设备的相关参数,以便让从设备将数据上报给指定的主设备,故当启动从设备之后,从设备可以基于命令行参数所对应的主设备的通信协议,向主设备发送压测时的各种状态数据,并使得从设备将压测结果上报给指定的主设备进行结果汇总,从而能够实现多个从设备同时发压和压测结束之后进行数据汇总,有效提高了性能测试的效率,满足分布式压测场景的需求。
在一个实施例中,当执行完压测后,向主设备发送压测结果的消息的步骤,包括:
获取命令行参数解析函数中的新增命令行参数;新增命令行参数包括IP地址和端口参数;
将完成压测后的压测结果以消息的方式发送至与IP地址和端口参数所对应的主设备。
具体的,从设备接收到主设备发送的执行兼容处理的消息,返回已完成兼容处理的消息至主设备后,从设备开始执行压测,当从设备执行完压测后,从设备可以获取命令行参数解析函数中的新增命令行参数,新增命令行参数包括IP地址和端口参数,从设备将完成压测后的压测结果数据以消息的方式发送至与IP地址和端口参数所对应的主设备。
例如,从设备1接收到主设备1发送的spawn消息,返回spawning_complete消息至主设备1后,从设备开始执行压测,当从设备1执行完压测后,从设备1可以获取命令行参数解析函数中的新增命令行参数master-host和master-port这两个参数,例如,命令行参数可以包括“static struct option longopts[]={
{connections,required_argument,null,"c"}
{master-host,no_argument,null,"a"}
{master-port,no_argument,null,"p"}
}。其中,master-host表示master节点的IP地址,master-port表示master节点的端口参数。假设master-host为XX1,master-host表示主设备的IP地址,master-port为02,master-port表示主设备的端口参数,则从设备可以将完成压测后的压测结果数据以消息的方式发送至与IP地址XX1和端口参数02所对应的主设备1。由此,通过在命令行参数中增加了主设备的相关参数,以便让从设备将数据上报给指定的主设备,使得主设备将各个从设备上报的压测结果进行结果汇总,从而能够实现多个从设备同时发压和压测结束之后进行数据汇总,有效提高了性能测试的效率,满足分布式压测场景的需求。
在一个实施例中,如图3所示,所述方法还包括将序列化通信数据发送至主设备的步骤,具体包括:
步骤302,当需要向主设备发送消息时,将消息转换成符合主设备所识别的数据格式的通信数据,并对通信数据进行序列化处理,得到序列化通信数据;
步骤304,将序列化通信数据发送至主设备,以使得主设备识别序列化通信数据。
具体的,当从设备需要向主设备发送消息时,从设备将待发送的消息转换成符合主设备所识别的数据格式的通信数据,并对通信数据进行序列化处理,得到序列化通信数据,进一步的,从设备可以将序列化通信数据发送至主设备,以使得主设备识别序列化通信数据。
例如,当从设备2需要向主设备1发送消息时,从设备2将待发送的消息转换成符合主设备1所识别的json格式的通信数据,并对json格式的通信数据进行序列化处理,得到二进制序列化格式的序列化通信数据,假设从设备2得到的二进制序列化格式的序列化通信数据为010010,进一步的,从设备2可以将序列化通信数据010010发送至主设备1,以使得主设备1识别序列化通信数据010010。由此,通过将消息转换成符合主设备所识别的数据格式的通信数据,并对通信数据进行序列化处理,使得主从设备能够实现各种数据的交互,实现同时发压和分布式压测结束后的数据汇总,达到分布式压测的目的。
在一个实施例中,所述方法还包括:
当接收到主设备发送的消息时,对消息进行反序列化处理,得到反序列化通信数据,并识别反序列化通信数据。
具体的,当从设备接收到主设备发送的消息时,从设备可以对消息进行反序列化处理,得到反序列化通信数据,并识别反序列化通信数据。
例如,当从设备2接收到主设备1发送的消息时,对消息进行反序列化处理,得到反序列化通信数据,假设从设备2得到反序列化通信数据为010010,从设备2识别反序列化通信数据010010,得到对应的原始通信数据为执行扩容处理的消息内容。由此使得,使用wrk作为从设备,locust作为主设备的主从设备能够实现各种数据的交互,既保留了wrk的高性能,又充分利用了locust的数据汇总功能,能够实现同时发压和分布式压测结束后的数据汇总,达到分布式压测的目的。
在另一个实施例中,如图4所示,提供了一种性能测试方法,以该方法应用于图1中的主设备为例进行说明,包括以下步骤:
步骤402,启动主设备之后,获取待执行压测的从设备的数量。
步骤404,若接收到所述数量的从设备发送的准备就绪的消息,则分别向所述数量的各从设备发送执行兼容处理的消息。
步骤406,接收所述数量的各从设备返回的已完成兼容处理的消息。
步骤408,接收所述数量的各从设备发送的压测结果的消息。
步骤410,若接收到所述数量的各从设备发送的已完成压测的消息,则开始进行分布式的结果汇总;其中,主设备在接收到从设备发送的各消息时,基于配置文件中新增的类型转换方式,将从设备发送的各消息的数据类型转换成整数类型。
其中,待执行压测的从设备的数量是指用户设置的命令行参数中携带的待执行压测的从设备的数量,例如,对系统A的接口A进行压测的从设备为从设备1和从设备2,则待执行压测的从设备的数量为2。
分布式的结果汇总是指主设备将各个从设备上报的压测结果数据进行汇总,得到最终的汇总结果。例如,主设备可以将3个从设备上报的压测结果A1、压测结果A2以及压测结果A3进行汇总,得到对应的汇总结果A123。
整数类型是指程序中用的最多的一种数据类型,整数类型(简称“整数类型”或“整型”),整数类型的类型名是“int”,int是关键字。
具体的,当用户通过触发操作启动主设备之后,主设备可以获取待执行压测的从设备的数量,当主设备接收到预设数量的各从设备发送的准备就绪的消息时,主设备分别向各从设备发送执行兼容处理的消息。进一步的,主设备可以接收到各从设备返回的已完成兼容处理的消息和各从设备发送的压测结果的消息。当主设备接收到预设数量的各从设备发送的已完成压测的消息时,主设备开始进行分布式的结果汇总;其中,主设备在接收到从设备发送的各个消息时,主设备可以基于配置文件中新增的类型转换方式,将从设备发送的各消息的数据类型转换成整数类型,由于从设备使用wrk传过来的json格式的key是字符串类型数据,字符串类型数据与int类型数据进行比较会报错,所以需要主设备进行数据类型转换,将字符串类型数据转换成int类型数据。
上述性能测试方法,启动主设备之后,获取待执行压测的从设备的数量;若接收到所述数量的从设备发送的准备就绪的消息,则分别向所述数量的各从设备发送执行兼容处理的消息;接收所述数量的各从设备返回的已完成兼容处理的消息;接收所述数量的各从设备发送的压测结果的消息;若接收到所述数量的各从设备发送的已完成压测的消息,则开始进行分布式的结果汇总;其中,主设备在接收到从设备发送的各消息时,基于配置文件中新增的类型转换方式,将从设备发送的各消息的数据类型转换成整数类型。由于在主设备配置文件中新增了类型转换方式,故当主设备接收到从设备发送的消息时,主设备可以基于配置文件中新增的类型转换方式,将从设备发送的各消息的数据类型转换成整数类型,以及时获取到各个从设备压测时的各种状态数据,并对各个从设备上报的压测结果数据进行分布式的结果汇总,从而能够实现多个从设备同时发压和压测结束之后进行数据汇总,有效提高了性能测试的效率,满足分布式压测场景的需求。
在一个实施例中,获取待执行压测的从设备的数量之前,所述方法还包括:
响应于用户的新增操作,在配置文件中新增强制类型转换,以使得主设备基于配置文件中新增强制类型转换,将各从设备发送的各消息的数据类型转换成整数类型。
由于使用wrk的各个从设备传过来的json格式的key是字符串类型,字符串类型与int类型进行比较会报错,所以主设备需要进行强制类型转换,即将字符串类型转成int类型。具体的,用户可以通过触发操作修改locust-1.5.3/locust/stats.py文件,即主设备响应于用户触发的的新增操作,在该配置文件中增加强制类型转换,以使得主设备基于配置文件中新增强制类型转换,将各从设备发送的各消息的数据类型转换成整数类型。由此使得,使用wrk作为从设备,locust作为主设备的主从设备能够实现各种数据的交互,既保留了wrk的高性能,又充分利用了locust的数据汇总功能,能够实现同时发压和分布式压测结束后的数据汇总,达到分布式压测的目的。
在一个实施例中,所述方法还包括:
响应于用户的修改操作,在配置文件中修改心跳间隔时间,得到修改后的心跳间隔时间,以使得主设备基于配置文件中修改后的心跳间隔时间,与各从设备保持心跳连接。
由于使用wrk的各个从设备向主设备发送通信数据时,需要对通信数据进行格式转换处理和序列化处理,同时,使用wrk的各个从设备在接收到主设备发送通信数据时,需要对接收到的通信数据进行反序列化处理,因此会增加处理的时间,需要延长主设备使用locust时所对应的心跳间隔时间。具体的,用户可以通过触发操作修改locust-1.5.3/locust/runners.py文件中的HEARTBEAT_INTERVAL=10,即主设备响应于用户的修改操作,在配置文件中修改心跳间隔时间,得到修改后的心跳间隔时间为10s,以使得主设备基于该配置文件中修改后的心跳间隔时间10s,与各从设备保持心跳连接。由此使得,使用wrk作为从设备,locust作为主设备的主从设备能够实现各种数据的交互,保持有效的心跳连接,从而实现了各个从设备将压测时的各种状态数据快速有效的传输至主设备,实现同时发压和分布式压测结束后的数据汇总,达到分布式压测的目的。
在一个实施例中,本申请实施例提供的方法,可以应用于基于wrk的分布式压测的场景中。以下以基于wrk的分布式压测的场景为例,对本申请实施例提供的性能测试方法进行说明。
传统方式中,开源的wrk只能用在单机压测上,无法满足分布式压测场景的需求。尽管wrk在单机上的性能已经足够优秀,但在实际测试中,并不是总可以申请到很高配置的机器,相反地,更容易申请到多台不具有高配置的机器,所以实现基于wrk的分布式压测成为一个亟需解决的问题。
因此,本申请实施例中提出一种基于wrk的分布式性能测试方法。由于传统的wrk不能支持分布式性能测试,因此,本实施例中针对wrk进行了改造,使得改造后的wrk可以用于分布式压测场景,当进行分布式压测时,使用wrk作为slave,locust作为master,实际发压的还是wrk,locust仅仅是作为master用来控制分布式压测的同时启动和汇总分布式压测数据。slave和master之间使用zeromq进行通信,数据使用Message Pack进行序列化和反序列化处理。
本申请实施例中之所以使用wrk作为slave,locust作为master是为了既保留了wrk的高性能,又充分利用了locust的数据汇总功能,能够实现几乎同时发压和分布式压测结束之后进行数据汇总,达到分布式压测的目的,有效提高分布式压测的效率。
如图5所示,为基于wrk的分布式性能测试的架构图。图5中的主设备是使用了locust的结果采集器,从设备是使用了wrk的压力生成器,被压系统是测试对象,可以理解,本实施例中压测对象可以是被压系统中的各个HTTP接口。
具体的,如图6所示,为基于wrk的分布式性能测试的流程示意图。本方案可以实现几乎同时开启多台机器的发压,首先在启动master即主设备的时候需要指定期望的slave即从设备的数量,当主设备收到指定数量的从设备都发送来的type=client_ready的消息的时候,就会分别给每台salve发送type=spawn的消息,slave收到type=spawn的消息之后,每台slave会给master发送type=spawning_complete的消息,并开始执行压测。当slave执行完压测之后会给master发送type=stats的消息上报结果数据,然后再给master发送type=quit的消息,然后slave自己就退出压测的流程,master只有收到所有的slave发来的quit消息的时候才会进行分布式的结果汇总。汇总之后master自己也会退出。其中,上报结果数据中可以包括最大响应时间、最小响应时间以及请求数量等数据。
在实现如图6所示的基于wrk的分布式性能测试方案中,对从设备slave的wrk源码进行了改造,增加了和locust的通信逻辑和数据序列化和反序列化的逻辑。在接收参数上增加了两个参数:分别是master-host和master-port,以便让从设备中wrk运行完把结果数据上报给master-host和master-port指定的主设备master。由于wrk是C语言编写的,locust是python编写的,这两种语言之间的数据结构不通用,因此我们在wrk中进入了json结构体,将通信的数据组织成locust可以识别的json格式,即在wrk引用了cJSON lib库封装来json数据,然后进行序列化之后发送给locust,同样地在接收到locust发回来的消息的时候也需要进行反序列化。其中,本申请实施例中进行序列化和反序列化的目的是为了以二进制传输数据,传输的数据包的大小会压缩,便于快速传输数据,从而提高性能测试的效率。
具体的,本申请实施例中对于从设备slave的wrk的命令行参数进行修改,以便让wrk将数据上报给指定的主设备master的,通过在命令行参数解析函数里面增加处理2个命令行参数:-a和-p,其中-a表示master的ip,-p表示master的port,当从设备获取到这两个参数就知道要上报给哪个master了。
同时,本申请实施例中对于主设备master使用的locust的locust1.5.4进行了部分改造,因为wrk是C语言编写的,locust是python语言编写,两个语言要进行通信,我们借助了json,根据locust的消息体结构在wrk里面组装成json格式,json的key都是字符串类型,locust1.5.3那边解析json的key会报错,所以对locust1.5.3报错的几处地方做个简单的修改,增加了强制类型转换转成int类型。即修改locust-1.5.3/locust/stats.py文件:增加强制类型转换,因为wrk传过来的json的key是字符串类型,字符串类型跟int类型进行比较会报错,所以需要进行强制类型转化转成int类型。
此外,还修改了对于主设备master使用的locust判断slave是否有心跳的间隔时间。即修改locust-1.5.3/locust/runners.py文件,修改HEARTBEAT_INTERVAL=10。
本实施例中,使用locust作为master,充分利用了locust的数据汇总功能,可以对多台wrk压测的结果数据进行汇总,并对wrk进行了改造,使得wrk作为slave可以跟locust进行通信,实现数据交互,并对wrk的命令行参数进行修改,以便让wrk将数据上报给指定的master,从而可以实现基于wrk的分布式压力测试,既保留了wrk的高性能,又充分利用了locust的数据汇总功能,能够实现几乎同时发压和分布式压测结束之后进行数据汇总,达到分布式压测的目的,有效提高了性能测试的效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的性能测试方法的性能测试装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个性能测试装置实施例中的具体限定可以参见上文中对于性能测试方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种性能测试装置,包括:发送模块702、接收模块704和退出模块706,其中:
发送模块702,用于启动从设备之后,基于命令行参数所对应的主设备的通信协议,向所述主设备发送准备就绪的消息。
接收模块704,用于若接收到所述主设备发送的执行兼容处理的消息,则返回已完成兼容处理的消息至所述主设备,并开始执行压测。
所述发送模块702还用于当执行完所述压测后,向所述主设备发送压测结果的消息。
退出模块706,用于向所述主设备发送已完成压测的消息,并退出所述测压流程;其中,所述从设备和所述主设备之间传输的各所述消息是经过格式转换处理和序列化处理的。
在一个实施例中,该装置还包括:获取模块。
获取模块用于获取所述命令行参数解析函数中的新增命令行参数;所述新增命令行参数包括IP地址和端口参数;发送模块还用于将完成所述压测后的压测结果以消息的方式发送至与所述IP地址和所述端口参数所对应的主设备。
在一个实施例中,该装置还包括:转换模块。
转换模块用于当需要向所述主设备发送消息时,将所述消息转换成符合所述主设备所识别的数据格式的通信数据,并对所述通信数据进行序列化处理,得到序列化通信数据;所述发送模块还用于将所述序列化通信数据发送至所述主设备,以使得所述主设备识别所述序列化通信数据。
在一个实施例中,该装置还包括:反序列化处理模块和识别模块。
反序列化处理模块用于当接收到所述主设备发送的消息时,对所述消息进行反序列化处理,得到反序列化通信数据;识别模块用于识别所述反序列化通信数据。
在另一个实施例中,如图8所示,提供了一种性能测试装置,包括:获取模块802、发送模块804、接收模块806和汇总模块808,其中:
获取模块802,用于启动主设备之后,获取待执行压测的从设备的数量。
发送模块804,用于若接收到所述数量的从设备发送的准备就绪的消息,则分别向所述数量的各所述从设备发送执行兼容处理的消息。
接收模块806,用于接收所述数量的各所述从设备返回的已完成兼容处理的消息;接收所述数量的各所述从设备发送的压测结果的消息。
汇总模块808,用于若接收到所述数量的各所述从设备发送的已完成压测的消息,则开始进行分布式的结果汇总;其中,所述主设备在接收到所述从设备发送的各所述消息时,基于配置文件中新增的类型转换方式,将所述从设备发送的各所述消息的数据类型转换成整数类型。
上述性能测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种性能测试方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行性能测试方法的步骤。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行性能测试方法。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种性能测试方法,其特征在于,应用于从设备,包括:
启动从设备之后,当所述从设备接收到主设备发送的命令行参数时,基于所述命令行参数中的IP地址和端口参数,向所述IP地址和所述端口参数所对应的主设备发送准备就绪的消息;
若接收到所述主设备发送的执行兼容处理的消息,则返回已完成兼容处理的消息至所述主设备,并开始执行压测;所述执行兼容处理的消息是所述主设备接收到预设数量的从设备发送的所述准备就绪的消息时触发发送的;
当执行完所述压测后,向所述主设备发送压测结果的消息;其中,所述压测结果是所述从设备对被测系统的端口执行压测所得的;
向所述主设备发送已完成压测的消息,并退出所述压测流程,以使当所述主设备接收到预设数量的各所述从设备发送的已完成压测的消息时,所述主设备对各所述从设备所上报的所述压测结果进行分布式的结果汇总;其中,所述从设备和所述主设备之间传输的各所述消息是经过格式转换处理和序列化处理的;所述主设备用于控制分布式压测的启动和汇总分布式压测数据。
2.根据权利要求1所述的方法,其特征在于,所述当执行完所述压测后,向所述主设备发送压测结果的消息,包括:
获取所述命令行参数解析函数中的新增命令行参数;所述新增命令行参数包括IP地址和端口参数;
将完成所述压测后的压测结果以消息的方式发送至与所述IP地址和所述端口参数所对应的主设备。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:当需要向所述主设备发送消息时,将所述消息转换成符合所述主设备所识别的数据格式的通信数据,并对所述通信数据进行序列化处理,得到序列化通信数据;
将所述序列化通信数据发送至所述主设备,以使得所述主设备识别所述序列化通信数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到所述主设备发送的消息时,对所述消息进行反序列化处理,得到反序列化通信数据,并识别所述反序列化通信数据。
5.一种性能测试方法,其特征在于,应用于主设备,包括:
响应于新增操作,在配置文件中新增强制类型转换方式;
启动主设备之后,获取待执行压测的从设备的预设数量;
若接收到所述预设数量的从设备发送的准备就绪的消息,则分别向所述预设数量的各所述从设备发送执行兼容处理的消息;
接收所述预设数量的各所述从设备返回的已完成兼容处理的消息;
接收所述预设数量的各所述从设备发送的压测结果的消息;
若接收到所述预设数量的各所述从设备发送的已完成压测的消息,则开始进行分布式的结果汇总;其中,所述主设备在接收到所述从设备发送的各所述消息时,基于所述配置文件中新增的所述强制类型转换方式,将所述从设备发送的各所述消息的数据类型转换成整数类型。
6.一种性能测试装置,其特征在于,包括:
发送模块,用于启动从设备之后,当所述从设备接收到主设备发送的命令行参数时,基于所述命令行参数中的IP地址和端口参数,向所述IP地址和所述端口参数所对应的主设备发送准备就绪的消息;
接收模块,用于若接收到所述主设备发送的执行兼容处理的消息,则返回已完成兼容处理的消息至所述主设备,并开始执行压测;所述执行兼容处理的消息是所述主设备接收到预设数量的从设备发送的所述准备就绪的消息时触发发送的;
所述发送模块还用于当执行完所述压测后,向所述主设备发送压测结果的消息;其中,所述压测结果是所述从设备对被测系统的端口执行压测所得的;
退出模块,用于向所述主设备发送已完成压测的消息,并退出所述压测流程,以使当所述主设备接收到预设数量的各所述从设备发送的已完成压测的消息时,所述主设备对各所述从设备所上报的所述压测结果进行分布式的结果汇总;其中,所述从设备和所述主设备之间传输的各所述消息是经过格式转换处理和序列化处理的;所述主设备用于控制分布式压测的启动和汇总分布式压测数据。
7.根据权利要求6所述的性能测试装置,其特征在于,所述装置还包括:
获取模块,用于获取所述命令行参数解析函数中的新增命令行参数;所述新增命令行参数包括IP地址和端口参数;
所述发送模块还用于将完成所述压测后的压测结果以消息的方式发送至与所述IP地址和所述端口参数所对应的主设备。
8.一种性能测试装置,其特征在于,包括:
获取模块,用于响应于新增操作,在配置文件中新增强制类型转换方式;启动主设备之后,获取待执行压测的从设备的预设数量;
发送模块,用于若接收到所述预设数量的从设备发送的准备就绪的消息,则分别向所述预设数量的各所述从设备发送执行兼容处理的消息;
接收模块,用于接收所述预设数量的各所述从设备返回的已完成兼容处理的消息;接收所述预设数量的各所述从设备发送的压测结果的消息;
汇总模块,用于若接收到所述预设数量的各所述从设备发送的已完成压测的消息,则开始进行分布式的结果汇总;其中,所述主设备在接收到所述从设备发送的各所述消息时,基于所述配置文件中新增的所述强制类型转换方式,将所述从设备发送的各所述消息的数据类型转换成整数类型。
9.一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,其特征在于,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至5中任一项所述的性能测试方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210246570.3A CN114567571B (zh) | 2022-03-14 | 2022-03-14 | 性能测试方法、装置、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210246570.3A CN114567571B (zh) | 2022-03-14 | 2022-03-14 | 性能测试方法、装置、电子设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114567571A CN114567571A (zh) | 2022-05-31 |
CN114567571B true CN114567571B (zh) | 2023-11-10 |
Family
ID=81720668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210246570.3A Active CN114567571B (zh) | 2022-03-14 | 2022-03-14 | 性能测试方法、装置、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114567571B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174249A (zh) * | 2022-07-18 | 2022-10-11 | 湖北天融信网络安全技术有限公司 | 安全日志的处理方法及电子设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662217B1 (en) * | 1999-01-19 | 2003-12-09 | Microsoft Corporation | Distributed and automated test administration system for administering automated tests on server computers over the internet |
CN109684228A (zh) * | 2019-01-07 | 2019-04-26 | 武汉斗鱼鱼乐网络科技有限公司 | 一种性能测试方法、装置、系统和存储介质 |
CN109739708A (zh) * | 2019-01-02 | 2019-05-10 | 网易(杭州)网络有限公司 | 测试压力的方法、装置和系统 |
CN113032244A (zh) * | 2021-02-23 | 2021-06-25 | 中国工商银行股份有限公司 | 接口测试方法、装置、计算机系统和计算机可读存储介质 |
WO2021135809A1 (zh) * | 2019-12-30 | 2021-07-08 | 北京金山云网络技术有限公司 | 一种测试方法、装置、终端设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6889158B2 (en) * | 2003-06-30 | 2005-05-03 | Microsoft Corporation | Test execution framework for automated software testing |
US9164859B2 (en) * | 2009-09-25 | 2015-10-20 | Qualcomm Incorporated | Computing device for enabling concurrent testing |
-
2022
- 2022-03-14 CN CN202210246570.3A patent/CN114567571B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662217B1 (en) * | 1999-01-19 | 2003-12-09 | Microsoft Corporation | Distributed and automated test administration system for administering automated tests on server computers over the internet |
CN109739708A (zh) * | 2019-01-02 | 2019-05-10 | 网易(杭州)网络有限公司 | 测试压力的方法、装置和系统 |
CN109684228A (zh) * | 2019-01-07 | 2019-04-26 | 武汉斗鱼鱼乐网络科技有限公司 | 一种性能测试方法、装置、系统和存储介质 |
WO2021135809A1 (zh) * | 2019-12-30 | 2021-07-08 | 北京金山云网络技术有限公司 | 一种测试方法、装置、终端设备及存储介质 |
CN113032244A (zh) * | 2021-02-23 | 2021-06-25 | 中国工商银行股份有限公司 | 接口测试方法、装置、计算机系统和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114567571A (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Palade et al. | An evaluation of open source serverless computing frameworks support at the edge | |
WO2020233369A1 (zh) | 基于模拟端口改进软件集成系统的方法及相关设备 | |
CN111478798B (zh) | 故障处理方法、故障处理的装置和存储介质 | |
CN110083455B (zh) | 图计算处理方法、装置、介质及电子设备 | |
CN104954453A (zh) | 基于云计算的数据挖掘rest服务平台 | |
CN102214099B (zh) | 用于autosar的rte代码自动生成方法 | |
CN112835782B (zh) | 接口的接入测试方法和系统 | |
CN114567571B (zh) | 性能测试方法、装置、电子设备和计算机可读存储介质 | |
CN114398179B (zh) | 一种跟踪标识的获取方法、装置、服务器及存储介质 | |
CN112468589A (zh) | 数据分发方法、装置、计算机设备和存储介质 | |
CN111913743B (zh) | 数据处理方法及装置 | |
CN113849356B (zh) | 一种设备测试方法、装置、电子设备和存储介质 | |
CN114610598A (zh) | 测试方法、装置、电子设备及计算机可读存储介质 | |
CN113391972A (zh) | 一种接口测试方法及装置 | |
CN116662132A (zh) | 评估方法、虚拟部署方法、计算机设备和存储介质 | |
CN109669829A (zh) | 一种基于bmc的诊断调试方法、装置及服务器 | |
CN112379967B (zh) | 模拟器检测方法、装置、设备及介质 | |
CN115269331A (zh) | 面向微服务组的服务拓扑监控方法及相关设备 | |
CN114217927A (zh) | 一种线程调用方法、装置、计算机设备及存储介质 | |
CN115129708A (zh) | 数据处理方法、装置和存储介质及电子设备 | |
CN117270833B (zh) | 服务调用及发布方法、介质和计算机设备 | |
CN117573730B (zh) | 数据处理方法、装置、设备、可读存储介质及程序产品 | |
CN115378792B (zh) | 告警处理方法、装置及存储介质 | |
US20220405143A1 (en) | Hardware Accelerator Service Discovery | |
CN110191141B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |