CN110912786A - 网关压力测试方法、装置、计算机设备及存储介质 - Google Patents
网关压力测试方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110912786A CN110912786A CN201911376046.2A CN201911376046A CN110912786A CN 110912786 A CN110912786 A CN 110912786A CN 201911376046 A CN201911376046 A CN 201911376046A CN 110912786 A CN110912786 A CN 110912786A
- Authority
- CN
- China
- Prior art keywords
- target terminal
- gateway
- tested
- thread
- acquiring
- 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.)
- Granted
Links
Images
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
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- 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
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- 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
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- 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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/58—Caching of addresses or names
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
Abstract
本申请涉及一种网关压力测试方法,所述方法包括:获取待测试网关接收到的目标终端的连接请求;获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中;建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包;根据所述多个数据包,分析得到测试结果。通过目标终端对待测试网关进行数据读写,可以准确测试网关压力、且不依赖于机器性能。此外,还提出了一种网关压力测试装置、计算机设备和存储介质。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种网关压力测试方法、装置、计算机设备及存储介质。
背景技术
目前,网关压力测试都是使用loadRunner、V12.0等压测软件实现的,但loadRunner的使用对于新手来说学习成本不低,一方面,loadRunner软件安装较繁琐,且需要付费;另一方面,还需要新手自己编写脚本语言,对于TCP的压测依赖于机器性能,一般8G内存左右的机器最多能模拟5000终端的并发,如果要模拟上十万的并发,那么机器的数据就远不够支撑了。因此,loadRunner存在不易上手并依赖机器的问题。
发明内容
基于此,本发明提出了一种可以准确测试网关压力、且不依赖于机器性能的网关压力测试方法、装置、计算机设备及存储介质。
一种网关压力测试方法,所述方法包括:
获取待测试网关接收到的目标终端的连接请求;
获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中;
建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包;
根据所述多个数据包,分析得到测试结果。
在其中一个实施例中,所述根据所述多个数据包,分析得到测试结果,包括:获取预设占用系数,获取所述多个数据包中的实际占用时间和总占用时间,根据所述实际占用时间和所述总占用时间计算得到所述待测试网关的目标占用系数,根据所述预设占用系数和所述目标占用系数,确定所述测试结果是否准确;获取所述多个数据包中的当前链路数量,根据所述当前链路数量确定所述待测试网关是否稳定;获取所述多个数据包中的位置数据包的发送数量,根据所述发送数量确定所述待测试网关是否丢包;根据所述多个数据包,统计得到所述待测试网关的并发量。
在其中一个实施例中,所述建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包,包括:建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息;建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包;建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包。
在其中一个实施例中,在所述建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息之前,还包括:获取所述目标终端向待测试网关发送的登录信息,获取所述待测试网关响应所述目标终端的响应信息,将所述响应信息记录于所述缓存链路表;根据所述响应信息,确定所述目标终端是否登录成功;所述建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息,包括:当所述目标终端登录成功时,根据所述第一线程,获取所述目标终端向所述待测试网关发送的鉴权请求,获取所述待测试网关返回所述目标终端的鉴权成功信息,将所述鉴权成功信息记录于所述缓存链路表;当所述目标终端登录失败时,重新进入所述获取所述目标终端向待测试网关发送的登录信息的步骤。
在其中一个实施例中,在所述建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包之前,还包括:根据所述缓存链路表,确定所述目标终端是否鉴权成功;当所述目标终端鉴权失败时,所述目标终端重新向所述待测试网关发送的鉴权信息;当所述目标终端鉴权成功时,获取预设时间间隔,获取当前系统时间,获取所述缓存链路表中的上次下发时间;根据所述第一预设时间间隔,确定所述当前系统时间与所述上次下发时间之间的时间差是否大于所述第一预设时间间隔;所述建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包,包括:当所述时间差大于所述第一预设时间间隔时,所述目标终端向所述待测试网关发送的位置数据包,获取所述待测试网关返回所述目标终端的位置数据包时的下发时间,将所述下发时间记录于所述缓存链路表。
在其中一个实施例中,在所述建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包之前,还包括:获取第二预设时间间隔,获取当前系统时间,根据所述缓存链路表获取上次下发心跳包时间;根据所述第二预设时间间隔,确定所述当前系统时间与所述上次下发心跳包时间之间的差值是否大于所述第二预设时间间隔;所述建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包,包括:当所述差值大于所述第二预设时间间隔时,所述目标终端向所述待测试网关发送的心跳数据包,获取所述待测试网关返回所述目标中的心跳数据包时的返回时间,将所述返回时间记录于所述缓存链路表。
在其中一个实施例中,在所述获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中之后,还包括:当所述链路创建失败时,重新进入所述获取待测试网关接收到的目标终端的连接请求的步骤。
第二方面,本发明实施例提供了一种网关压力测试装置,所述装置包括:
第一获取模块,用于获取待测试网关接收到的目标终端的连接请求;
第二获取模块,用于获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中;
建立模块,用于建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包;
分析模块,用于根据所述多个数据包,分析得到测试结果。
第三方面,本发明实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
获取待测试网关接收到的目标终端的连接请求;
获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中;
建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包;
根据所述多个数据包,分析得到测试结果。
第四方面,本发明实施例提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
获取待测试网关接收到的目标终端的连接请求;
获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中;
建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包;
根据所述多个数据包,分析得到测试结果。
上述网关压力测试方法、装置、计算机设备及存储介质,通过获取待测试网关接收到的目标终端的连接请求,获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中,然后建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包;最后根据所述多个数据包,分析得到测试结果。通过目标终端对待测试网关进行数据读写,可以准确测试网关压力,且不依赖于机器性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为一个实施例中网关压力测试方法的流程图;
图2为一个实施例中分析得到测试结果的流程图;
图3为一个实施例中建立线程池的流程图;
图4为一个实施例中建立第一线程的流程图;
图5为一个实施例中建立第二线程的流程图;
图6为一个实施例中建立第三线程的流程图;
图7为一个实施例中网关压力测试装置的结构框图;
图8为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,提出了一种网关压力测试方法。该网关压力测试方法具体包括以下步骤:
步骤102,获取待测试网关接收到的目标终端的连接请求。
其中,待测试网关是指需要进行测试的网间连接器或协议转换器;目标终端是指对待测试网关进行数据读写的客户端,目标终端可以是多个,可以通过设备标识对多个目标终端进行区分。在实现目标终端对待测试网关进行数据读写前,需要先实现目标终端与待测试网关之间的互通信息,所以可以是先获取目标终端向待测试网关发起的连接请求。在一个实施例中,目标终端可以是netty客户端,netty客户端可以是多个。假设目标终端的数量为10个,则10个目标终端需要循环向待测试网关发起连接,可得循环次数为10次,从而可以实现目标终端与待测试网关之间的互通信息。
步骤104,获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中。
其中,链路创建情况是指目标终端与待测试网关之间链路是否创建成功的状态,包括:链路创建成功和链路创建失败;缓存链路表是指缓存读写信息的阻塞列队;登录信息是指目标终端登录待测试网关的信息。获取链路创建状态的目的是确定目标终端是否连上待测试网关,当链路创建成功时,可以确定目标终端连上待测试网关;当链路创建失败时,可以确定目标终端没有连上待测试网关。缓存链路表可以用于将目标终端对待测试网关的数据读写过程记录下来。在一个实施例中,目标终端可以是多个,可以由多个目标终端对链路创建状态进行监听。当监听到链路创建成功时,可以根据每个链路匹配的设备标识对多个目标终端对应的链路进行区分;然后可以根据channelConnected方法将每个链路创建成功的信息缓存到缓存链路表中,缓存链路表中链路创建成功的信息的数量,即为连上待测试网关的目标终端的数量,例如,假设是将100个链路创建成功的信息缓存到缓存链路表中,则可以得到100个目标终端连上了待测试网关。
步骤106,建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包。
其中,多个线程是指多个目标终端中的程序关于某数据集合上的一次运作活动的多个实际运作单位;线程池是由多个线程构成的集合;多个数据包是指在线程中进行传输的多个数据,多个数据包可以包括:登录数据包、鉴权数据包、位置数据包、心跳数据包,多个数据包可以分别在多个线程中进行传输。由于目标终端需要对待测试网关进行数据读写,所以可以通过建立包括多个线程的线程池,根据多个线程和缓存链路表,实现目标终端向待测试网关上报数据包,进行待测试网关的压力测试。在一个实施例中,可以是根据缓存链路表中的链路创建成功的信息,建立一个线程,根据该线程获取目标终端向待测试网关发送的登录数据包;可以是根据缓存链路表中的登陆成功信息,建立一个线程,根据该线程获取目标终端向待测试网关发送的鉴权数据包;可以是根据缓存链路表中的鉴权成功信息,建立一个线程,根据该线程获取目标终端向待测试网关发送的位置数据包;可以是根据缓存链路表中的鉴权成功信息,建立一个线程,根据该线程获取目标终端向待测试网关发送的心跳数据包。由此可以得到目标终端向待测试网关发送的多个数据包。
步骤108,根据所述多个数据包,分析得到测试结果。
其中,测试结果是指对待测试网关进行测试后得到的结果。通过线程池,可以得到多个数据包,可以是根据多个数据包生成各个测试指标,然后可以根据各个测试指标进行结果分析,得到待测试网关的测试结果。在一个实施例中,多个数据包可以包括:登录数据包、鉴权数据包、位置数据包、心跳数据包,可以是根据上述四个数据包生成多个测试指标,例如,可以是根据心跳数据包生成请求数,分析所得请求数可以确定所述待测试网关是否稳定。可以是分别对多个测试指标进行分析,得到待测试网关的测试结果。
上述网关压力测试方法,通过目标终端对待测试网关进行数据读写,可以准确测试网关压力、且不依赖于机器。
如图2所示,在一个实施例中,所述根据所述多个数据包,分析得到测试结果,包括:
步骤202,获取预设占用时间,获取所述多个数据包中的实际占用时间和总占用时间,根据所述总占用时间和所述实际占用时间计算得到所述待测试网关的目标占用系数,根据所述预设占用系数和所述目标占用系数,确定所述测试结果是否准确。
其中,实际占用时间是指多个数据包在传输时占用的CPU时间;总占用时间是指总的CPU运行时间;预设占用系数是指预先设置的多个数据包在传输时占用的CPU时间占总的CPU运行时间的百分比,预设占用系数可以用于表示CPU的总负载;目标占用系数是指多个数据包在传输时占用的CPU时间占总的CPU时间的百分比,目标占用系数也可以用于表示CPU的实际负载。在整个测试过程中,需要确保机器的性能稳定,防止机器原因导致测试结果不准,可以是通过计算得到目标占用系数,然后可以根据预设占用系数和目标占用系数,确定测试结果是否准确。在一个实施例中,根据预设占用系数和目标占用系数确定测试结果是否准确,可以是判断预设占用系数和目标占用系数之间的大小关系,当目标占用系数大于或等于预设占用系数时,可以确定测试结果不准确;当目标占用系数小于预设占用系数时,可以确定测试结果准确。例如,假设预设占用系数为80%,假设实际占用时间为20s,总的CPU占用时间为43s,则计算得到目标占用系数为:20/43=46.51%。此时的目标占用系数小于预设占用系数,可以确定机器的性能稳定,从而可以确定测试结果准确。在另个一实施例中,假设预设占用系数为90%,假设实际占用时间为45s,总的CPU占用时间为50s,则计算得到目标占用系数为:45/50=90%。此时的目标占用系数等于预设占用系数,且待测试网关的CPU已经达到极限,可以确定机器的性能不稳定,从而可以确定测试结果不准确。
步骤204,获取所述多个数据包中的当前链路数量,根据所述当前链路数量确定所述待测试网关是否稳定。
其中,当前链路数量是指当前目标终端与待测试网关之间的数据交换次数,当前链路数量也可以是目标终端向待测试网关发起的请求数,当前链路数量可以以秒为单位计算。可以是根据多个数据包中的心跳数据包,得到当前链路数量,例如,假设心跳数据包中是两秒钟检测一次心跳,如果两秒内请求了5次,则可以得到当前链路数量为5。可以根据当前链路数量反映系统的负载特性,从而可以确定待测试网关是否稳定。在一个实施例中,假设每两秒内可以处理的最大数据量为5。当当前链路数量没有超出这个范围时,可以确定待测试网关稳定;当当前链路数量超出这个范围时,可以确定待测试网关不稳定。
步骤206,获取所述多个数据包中的位置数据包的发送数量,根据所述发送数量确定所述待测试网关是否丢包。
其中,发送数量是指单位时间内输出发送位置数据包的数量,可以是指一秒内发送的位置数据包的数量。由于发送数量可以表示目标终端与待测试网关之间的位置数据包的发送情况,所以可以通过获取位置数据包的发送数量,与待测试网关的接收数量进行核实,从而可以确定待测试网关是否存在丢包的情况。在一个实施例中,假设发送数量为25,假设待测试网关的接受数量为25,则此时的待测试网关不存在丢包情况;在另一个实施例中,假设发送数量为28,假设待测试网关的接受数量为26,则此时的待测试网关存在丢包的情况。
步骤208,根据所述多个数据包,统计得到所述待测试网关的并发量。
其中,并发量是指待测试网关同时被请求次数。由于并发量可以说明待测试网关的实际压力,所以可以根据多个数据包,统计得到并发量,从而可以根据并发量得到待测试网关的实际压力。因为不同的目标终端会存在不同的使用模式,进而会导致不同目标终端在单位时间内向待测试网关发出不同数量的请求,在一个实施例中,假设统计得到的并发数为2000,则可以得到待测试网关在本次测试中本次测试运行的最大同时被请求的次数为2000,则可以直观地得到待测试网关的实际压力。通过获取多个数据包中的多个测试指标,可以分别对测试指标进行分析,从而可以得到更全面、直观的待测试网关的压力测试结果,可以更准确地对待测试网关的网关压力进行测试。
如图3所示,在一个实施例中,所述建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包,包括:
步骤302,建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息。
其中,第一线程是指线程池中的预先设置的第一个线程;鉴权信息是指验证目标终端是否拥有访问待测试网关的权利的信息,鉴权信息可以包括:鉴权成功信息和鉴权失败信息。通过对目标终端的鉴权可以防止非目标终端的其他终端入侵待测试网关,从而可以保证待测试网关的测试结果准确,所以需要获取目标中的鉴权信息。在一个实施例中,可以是根据缓存链路表得到目标终端的登录成功信息,在目标终端登录成功后,可以通过开启第一线程,由目标终端向待测试网关发送鉴权请求,然后获取待测试网关返回目标终端的鉴权信息。
步骤304,建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包。
其中,第二线程是指线程池中的预先设置的第二个线程;位置数据包是指目标终端对应的位置信息的集合,位置数据包可以是GPS位置信息的集合。在一个实施例中,可以是根据缓存链路表得到目标终端的鉴权成功信息,在目标终端鉴权成功后,可以开启第二线程,由目标终端向待测试网关发送GPS位置数据,然后获取待测试网关返回目标终端的位置信息的集合,即可得到目标终端的位置数据包。
步骤306,建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包。
其中,第三线程是指线程池中的预先设置的第三个线程;心跳数据包是在目标终端和待测试网关之间定时通知对方自己状态的一个自己定义的命令字的信息的集合,心跳数据包是按照一定的时间间隔发送的,类似于心跳;在一个实施例中,可以开启第二线程,可以是根据缓存链路表得到待测试网关上次下发心跳包的上次下发时间,由目标终端向待测试网关发送心跳信息,然后获取待测试网关返回目标终端的心跳信息的集合,从而可以得到心跳数据包。根据缓存链路表和线程池,可以获取到目标终端向待测试网关发送的多个数据包,且线程池中的每个线程仅定期被唤醒以轮循更改或更新状态信息,简化对线程的管理的同时,还可以实现目标终端对待测试网关进行有效的数据读写。
如图4所示,在一个实施例中,在所述建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息之前,还包括:
步骤402,获取所述目标终端向待测试网关发送的登录信息,获取所述待测试网关响应所述目标终端的响应信息,将所述响应信息记录于所述缓存链路表。
其中,登录信息是指目标终端向待测试网关发起的登录请求信息;响应信息是指待测试网关对目标终端发送的登录信息的响应数据,可以包括:登录成功的响应信息和登录失败的响应信息。在一个实施例中,在链路创建成功后,可以根据缓存链路表中链路创建成功的信息的数量,由目标终端向待测试网关发送登录信息。链路创建成功的信息的数量可以根据计算机的配置得到,例如,假设每缓存50个链路创建成功的信息,就由目标终端向待测试网关发送登录信息,然后可以获取待测试网关的响应信息,可以将得到的响应信息记录于缓存链路表。
步骤404,根据所述响应信息,确定所述目标终端是否登录成功;当所述目标终端登录成功时,进入步骤406;当所述目标终端登录失败时,进入步骤408。
其中,确定目标终端是否登录成功,是指确认响应信息是否为登录成功的响应信息。在一个实施例中,仅在目标终端登录成功时建立第一线程。当响应信息为登录成功的响应信息时,可以确定目标终端登录成功,目标终端登录成功时,进入建立第一个线程的步骤406;当响应信息为登录失败的响应信息时,可以确定目标终端登录失败,当所述目标终端登录失败时,进入建立第一线程的步骤408。
所述建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息,包括:
步骤406,根据所述第一线程,获取所述目标终端向所述待测试网关发送的鉴权请求,获取所述待测试网关返回所述目标终端的鉴权成功信息,将所述鉴权成功信息缓存于所述缓存链路表。
其中,鉴权请求是指验证目标终端是否拥有访问待测试网关的权利的请求;鉴权成功信息是指待测试网关返回的目标终端拥有访问待测试网关的权利的信息。在目标终端登录成功之后,可以进一步验证目标终端是否有访问待测试网关的权利,所以可以是由目标终端向待测试网关发送鉴权请求,从而可以验证目标终端是否有访问待测试网关的权利。在一个实施例中,可以是通过缓存链路表中记录的目标终端登录成功的响应信息,建立第一线程,由目标终端根据第一线程向待测试网关发起鉴权请求,再获取待测试网关返回的鉴权成功信息,从而可以验证目标终端有权访问待测试网关。例如,在登录成功后,可以根据缓存链路表中登录成功的信息的数量,由目标终端向待测试网关发送鉴权请求。登录成功的信息的数量可以根据计算机的配置得到,例如,假设每缓存100个登录成功的信息,就由目标终端向待测试网关发送鉴权请求。可以将鉴权成功信息记录于缓存链接表中,从而可以更新目标终端的鉴权标志为成功。
步骤408,重新进入所述获取所述目标终端向待测试网关发送的登录信息的步骤。
由于目标终端没有登录成功,所以不能继续由目标终端向待测试网关进行数据读写,所以目标终端需要重新登录待测试网关。在一个实施例中,目标终端重新登录待测试网关,可以是重新进入获取所述目标终端向待测试网关发送的登录信息的步骤,使得目标终端可以重新登录待测试网关。例如,在登录失败后,可以根据缓存链路表中登录失败的信息的数量,由目标终端向待测试网关发送登录信息。登录失败的信息的数量可以根据计算机的配置得到,例如,假设每缓存100个登录失败的信息,就由目标终端向待测试网关发送登录信息。通过响应信息可以确定目标终端是否登录成功,仅在目标终端登录成功时,建立第一线程,可以根据第一线程获取目标终端的鉴权信息;在目标终端登录失败时,目标终端需要重新登录待测试网关,可以实现对待测试网关进行准确测试。
如图5所示,在一个实施例中,在所述建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包之前,还包括:
步骤502,根据所述缓存链路表,确定所述目标终端是否鉴权成功;当所述目标终端鉴权失败时,进入步骤504;当所述目标终端鉴权成功时,进入步骤506。
其中,确定目标终端是否鉴权成功,是指缓存链路表中的鉴权信息是否为鉴权成功信息。在一个实施例中,仅在目标终端鉴权成功时建立第二线程。当鉴权信息为鉴权失败信息时,可以确定目标终端鉴权失败,当目标终端鉴权失败时,进入重新鉴权步骤504;当鉴权信息为鉴权成功信息时,可以确定目标终端鉴权成功,当目标终端鉴权成功时,进入建立第二线程的步骤506。
步骤504,所述目标终端重新向所述待测试网关发送的鉴权信息。
由于目标终端没有鉴权成功,所以目标终端需要重新向待测试网关发起鉴权请求。在一个实施例中,在鉴权失败后,可以根据缓存链路表中鉴权失败的信息的数量,由目标终端向待测试网关发送鉴权信息。鉴权失败的信息的数量可以根据计算机的配置得到,例如,假设每缓存100个鉴权失败的信息,就由目标终端向待测试网关发送鉴权信息。
步骤506,获取第一预设时间间隔,获取当前系统时间,获取所述缓存链路表中的上次下发时间。
其中,当前系统时间是指目标终端即将向待测试网关发送位置数据时对应的时间点;上次下发时间是指待测试网关上次下发位置信息包的时间;第一预设时间间隔是指当前系统时间与上次下发时间之间的时间差,第一预设时间间隔可以根据需求进行设置。在一个实施例中,假设第一预设时间间隔为10s,假设当前系统时间为20:20,假设上次下发时间为20:00,则可以分别获取第一预设时间间隔为10s,获取当前系统时间为20:20,获取上次下发时间为20:00。
步骤508,根据所述第一预设时间间隔,确定所述当前系统时间与所述上次下发时间之间的时间差是否大于所述第一预设时间间隔。当所述时间差大于所述第一预设时间间隔时,进入建立第二线程的步骤510。
其中,当前系统时间与上次下发时间之间的时间差,是指当前系统时间与上次下发时间之间的差值。在一个实施例中,假设第一预设时间间隔为20s,假设当前系统时间为19:40,假设上次下发时间为19:15,则当前系统时间和上次下发时间之间的时间差为25s,所得时间差大于第一预设时间间隔。当所得时间差大于第一预设时间间隔,进入建立第二线程的步骤510。
所述建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包,包括:
步骤510,所述目标终端向所述待测试网关发送的位置数据包,获取所述待测试网关返回所述目标终端的位置数据包时的下发时间,将所述下发时间记录于所述缓存链路表。
其中,位置数据包是指目标终端向待测试网关发送的位置信息的集合;下发时间是指待测试网关响应目标终端后返回位置信息对应的时间点。在一个实施例中,在时间差小于第一预设时间间隔时,可以根据缓存链路表中的鉴权成功信息,建立第二线程,由目标终端根据第一线程向待测试网关发送位置数据包,再获取待测试网关响应上述数据包时返回目标终端的下发时间。例如,在鉴权成功后,可以根据缓存链路表中鉴权成功的信息的数量,由目标终端向待测试网关发送位置数据包。鉴权成功的信息的数量可以根据计算机的配置得到,例如,假设每缓存100个鉴权成功的信息,就由目标终端向待测试网关发送位置数据包,然后获取待测试网关下发位置数据包时的下发时间。可以将下发时间记录于缓存链接表中,从而可以实现目标终端每隔一个第一预设时间间隔,就向待测试网关上报一条位置数据,例如,目标终端每隔10s上报一条GPS数据。通过鉴权信息可以确定目标终端是否鉴权成功,仅在目标终端鉴权成功时,建立第二线程,可以根据第二线程获取待测试网关向目标终端发送的位置数据包时的下发时间;在目标终端鉴权失败时,目标终端需要重新向待测试网关发起鉴权请求,直至目标终端鉴权成功,从而可以实现对待测试网关进行准确测试。
如图6所示,在一个实施例中,在所述建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包之前,还包括:
步骤602,获取第二预设时间间隔,获取当前系统时间,根据所述缓存链路表获取上次下发心跳包时间。
其中,当前系统时间是指目标终端即将向待测试网关发送心跳数据时对应的时间点;上次下发心跳包时间是指待测试网关上次向目标终端发送心跳数据包时对应的时间点;第二预设时间间隔是指当前系统时间与上次下发心跳包时间之间的时间差,第二预设时间间隔可以根据需求进行设置,例如,可以根据JT808协议要求,设置第二预设时间间隔为50s。在一个实施例中,假设第二预设时间间隔为50s,假设当前系统时间为9:20,假设上次下发时间为8:50,则可以分别获取第二预设时间间隔为50s,获取当前系统时间为9:20,获取上次下发时间为8:50。
步骤604,根据所述第二预设时间间隔,确定当前系统时间与所述上次下发心跳包时间之间的差值是否大于所述第二预设时间间隔;当所述差值大于所述第二预设时间间隔时,进入步骤606。
在一个实施例中,可以计算当前系统时间与上次下发心跳包时间之间的差值,通过判断所得差值与第二预设时间间隔之间的大小关系,可以确定所得时间差是否符合要求。例如,假设第二预设时间差是根据JT808协议要求设置为50s,当所得时间差大于第二预设时间间隔时,可以确定所得时间差不符合JT808协议要求。当所得时间差不符合要求时,不进入建立第三线程的步骤,直至所得时间差符合要求;当所得时间差大于第二预设时间间隔时,可以确定所得时间差符合JT808协议要求。当所得时间差符合要求时,进入建立第三线程的步骤606。
所述建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包,包括:
步骤606,所述目标终端向所述待测试网关发送的心跳数据包,获取所述待测试网关返回所述目标中的心跳数据包时的返回时间,将所述返回时间记录于所述缓存链路表。
其中,心跳数据包可以是自定义的结构体;返回时间是指待测试网关响应目标终端发送的心跳数据包后,向目标终端下发心跳数据包时对应的时间点。目标终端向待测试网关发送心跳数据包,即目标终端定时向待测试网关发送一个自定义的结构体(即心跳数据包),让待测试网关知道目标终端“在线”,从而可以确保目标终端和待测试网关之间的链路的有效性。在一个实施例中,当差值大于第二预设时间间隔时,可以根据缓存链路表中的上次下发心跳包时间,建立第三线程,由目标终端根据第三线程向待测试网关发送心跳数据包,再获取待测试网关返回心跳数据包时的时间点,从而可以得到返回时间,可以将返回时间记录于缓存链路表,从而可以实现目标终端每隔一个第二预设时间间隔,就向待测试网关上报一个心跳数据包,例如,目标终端每隔50s上报一条心跳数据包。通过当前系统时间和上次下发心跳包时间可以确定目标终端两次上报心跳数据包之间的时间差,通过第二预设时间间隔可以确定所得时间差是否符合要求,仅在所得时间差符合要求时,建立第三线程,可以根据第三线程获取待测试网关向目标终端发送的心跳数据包时的返回时间。从而可以实现对待测试网关进行准确测试。
在一个实施例中,在获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中之后,还包括:
当所述链路创建失败时,重新进入所述获取待测试网关接收到的目标终端的连接请求的步骤。
其中,获取链路创建状态的目的是确定目标终端是否连上待测试网关,当链路创建成功时,可以确定目标终端连上待测试网关;当链路创建失败时,可以确定目标终端没有连上待测试网关。当目标终端没有连上待测试网关时,为实现对待测试网关的压力测试,可以由目标终端重新向待测试网关发起连接请求,直至目标终端连上待测试网关为止。在一个实施例中,可以由目标终端对链路创建状态进行监听,当监听到链路创建失败时,重新进入所述获取待测试网关接收到的目标终端的连接请求的步骤,直至监听到链路创建成功。通过目标终端循环向待测试网关发起连接请求,直至目标终端连上待测试网关,使得目标终端与待测试网关之间可以保持正常连接,从而可以确保测试结果的准确性。
如图7所示,本发明实施例提出了一种一种网关压力测试装置,所述装置包括:
第一获取模块,用于获取待测试网关接收到的目标终端的连接请求;
第二获取模块,用于获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中;
建立模块,用于建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包;
分析模块,用于根据所述多个数据包,分析得到测试结果。
在一个实施例中,所述根据所述多个数据包,分析得到测试结果,包括:分析模块708还用于获取预设占用系数,获取所述多个数据包中的实际占用时间和总占用时间,根据所述实际占用时间和所述总占用时间计算得到所述待测试网关的目标占用系数,根据所述预设占用系数和所述目标占用系数,确定所述测试结果是否准确;分析模块708还用于获取所述多个数据包中的当前链路数量,根据所述当前链路数量确定所述待测试网关是否稳定;分析模块708还用于获取所述多个数据包中的位置数据包的发送数量,根据所述发送数量确定所述待测试网关是否丢包;分析模块708还用于根据所述多个数据包,统计得到所述待测试网关的并发量。
在一个实施例中,所述建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包,包括:建立模块706还用于建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息;建立模块706还用于建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包;建立模块706还用于建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包。
在一个实施例中,在所述建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息之前,还包括:第一获取模块702还用于获取所述目标终端向待测试网关发送的登录信息,获取所述待测试网关响应所述目标终端的响应信息,将所述响应信息记录于所述缓存链路表;分析模块708还用于根据所述响应信息,确定所述目标终端是否登录成功;所述建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息,包括:第二获取模块704还用于当所述目标终端登录成功时,根据所述第一线程,获取所述目标终端向所述待测试网关发送的鉴权请求,获取所述待测试网关返回所述目标终端的鉴权成功信息,将所述鉴权成功信息记录于所述缓存链路表;当所述目标终端登录失败时,重新进入所述获取所述目标终端向待测试网关发送的登录信息的步骤。
在一个实施例中,在所述建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包之前,还包括:分析模块708还用于根据所述缓存链路表,确定所述目标终端是否鉴权成功;当所述目标终端鉴权失败时,所述目标终端重新向所述待测试网关发送的鉴权信息;当所述目标终端鉴权成功时,获取预设时间间隔,获取当前系统时间,获取所述缓存链路表中的上次下发时间;分析模块708还用于根据所述第一预设时间间隔,确定所述当前系统时间与所述上次下发时间之间的时间差是否大于所述第一预设时间间隔;所述建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包,包括:第二获取模块704还用于当所述时间差大于所述第一预设时间间隔时,所述目标终端向所述待测试网关发送的位置数据包,获取所述待测试网关返回所述目标终端的位置数据包时的下发时间,将所述下发时间记录于所述缓存链路表。
在一个实施例中,在所述建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包之前,还包括:第一获取模块702还用于获取第二预设时间间隔,获取当前系统时间,根据所述缓存链路表获取上次下发心跳包时间;分析模块708还用于根据所述第二预设时间间隔,确定所述当前系统时间与所述上次下发心跳包时间之间的差值是否大于所述第二预设时间间隔;所述建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包,包括:第二获取模块704还用于当所述差值大于所述第二预设时间间隔时,所述目标终端向所述待测试网关发送的心跳数据包,获取所述待测试网关返回所述目标中的心跳数据包时的返回时间,将所述返回时间记录于所述缓存链路表。
在一个实施例中,在所述获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中之后,还包括:当所述链路创建失败时,重新进入所述获取待测试网关接收到的目标终端的连接请求的步骤。
图8示出了一个实施例中计算机设备的内部结构图。该计算机设备可以是终端。如图8所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现网关压力测试方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行网关压力测试方法。网络接口用于与外界进行通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的网关压力测试方法可以实现为一种计算机程序的形式,计算机程序可在如图8所示的计算机设备上运行。计算机设备的存储器中可存储组成该网关压力测试装置的各个程序模板。比如,第一获取模块702,第二获取模块704,建立模块706,分析模块708。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:一种网关压力测试方法,其特征在于,所述方法包括:获取待测试网关接收到的目标终端的连接请求;获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中;建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包;根据所述多个数据包,分析得到测试结果。
在一个实施例中,所述根据所述多个数据包,分析得到测试结果,包括:获取预设占用系数,获取所述多个数据包中的实际占用时间和总占用时间,根据所述实际占用时间和所述总占用时间计算得到所述待测试网关的目标占用系数,根据所述预设占用系数和所述目标占用系数,确定所述测试结果是否准确;获取所述多个数据包中的当前链路数量,根据所述当前链路数量确定所述待测试网关是否稳定;获取所述多个数据包中的位置数据包的发送数量,根据所述发送数量确定所述待测试网关是否丢包;根据所述多个数据包,统计得到所述待测试网关的并发量。
在一个实施例中,所述建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包,包括:建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息;建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包;建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包。
在一个实施例中,在所述建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息之前,还包括:获取所述目标终端向待测试网关发送的登录信息,获取所述待测试网关响应所述目标终端的响应信息,将所述响应信息记录于所述缓存链路表;根据所述响应信息,确定所述目标终端是否登录成功;所述建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息,包括:当所述目标终端登录成功时,根据所述第一线程,获取所述目标终端向所述待测试网关发送的鉴权请求,获取所述待测试网关返回所述目标终端的鉴权成功信息,将所述鉴权成功信息记录于所述缓存链路表;当所述目标终端登录失败时,重新进入所述获取所述目标终端向待测试网关发送的登录信息的步骤。
在一个实施例中,在所述建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包之前,还包括:根据所述缓存链路表,确定所述目标终端是否鉴权成功;当所述目标终端鉴权失败时,所述目标终端重新向所述待测试网关发送的鉴权信息;当所述目标终端鉴权成功时,获取预设时间间隔,获取当前系统时间,获取所述缓存链路表中的上次下发时间;根据所述第一预设时间间隔,确定所述当前系统时间与所述上次下发时间之间的时间差是否大于所述第一预设时间间隔;所述建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包,包括:当所述时间差大于所述第一预设时间间隔时,所述目标终端向所述待测试网关发送的位置数据包,获取所述待测试网关返回所述目标终端的位置数据包时的下发时间,将所述下发时间记录于所述缓存链路表。
在一个实施例中,在所述建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包之前,还包括:获取第二预设时间间隔,获取当前系统时间,根据所述缓存链路表获取上次下发心跳包时间;根据所述第二预设时间间隔,确定所述当前系统时间与所述上次下发心跳包时间之间的差值是否大于所述第二预设时间间隔;所述建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包,包括:当所述差值大于所述第二预设时间间隔时,所述目标终端向所述待测试网关发送的心跳数据包,获取所述待测试网关返回所述目标中的心跳数据包时的返回时间,将所述返回时间记录于所述缓存链路表。
在一个实施例中,在所述获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中之后,还包括:当所述链路创建失败时,重新进入所述获取待测试网关接收到的目标终端的连接请求的步骤。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:获取待测试网关接收到的目标终端的连接请求;获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中;建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包;根据所述多个数据包,分析得到测试结果。
在一个实施例中,所述根据所述多个数据包,分析得到测试结果,包括:获取预设占用系数,获取所述多个数据包中的实际占用时间和总占用时间,根据所述实际占用时间和所述总占用时间计算得到所述待测试网关的目标占用系数,根据所述预设占用系数和所述目标占用系数,确定所述测试结果是否准确;获取所述多个数据包中的当前链路数量,根据所述当前链路数量确定所述待测试网关是否稳定;获取所述多个数据包中的位置数据包的发送数量,根据所述发送数量确定所述待测试网关是否丢包;根据所述多个数据包,统计得到所述待测试网关的并发量。
在一个实施例中,所述建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包,包括:建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息;建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包;建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包。
在一个实施例中,在所述建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息之前,还包括:获取所述目标终端向待测试网关发送的登录信息,获取所述待测试网关响应所述目标终端的响应信息,将所述响应信息记录于所述缓存链路表;根据所述响应信息,确定所述目标终端是否登录成功;所述建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息,包括:当所述目标终端登录成功时,根据所述第一线程,获取所述目标终端向所述待测试网关发送的鉴权请求,获取所述待测试网关返回所述目标终端的鉴权成功信息,将所述鉴权成功信息记录于所述缓存链路表;当所述目标终端登录失败时,重新进入所述获取所述目标终端向待测试网关发送的登录信息的步骤。
在一个实施例中,在所述建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包之前,还包括:根据所述缓存链路表,确定所述目标终端是否鉴权成功;当所述目标终端鉴权失败时,所述目标终端重新向所述待测试网关发送的鉴权信息;当所述目标终端鉴权成功时,获取预设时间间隔,获取当前系统时间,获取所述缓存链路表中的上次下发时间;根据所述第一预设时间间隔,确定所述当前系统时间与所述上次下发时间之间的时间差是否大于所述第一预设时间间隔;所述建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包,包括:当所述时间差大于所述第一预设时间间隔时,所述目标终端向所述待测试网关发送的位置数据包,获取所述待测试网关返回所述目标终端的位置数据包时的下发时间,将所述下发时间记录于所述缓存链路表。
在一个实施例中,在所述建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包之前,还包括:获取第二预设时间间隔,获取当前系统时间,根据所述缓存链路表获取上次下发心跳包时间;根据所述第二预设时间间隔,确定所述当前系统时间与所述上次下发心跳包时间之间的差值是否大于所述第二预设时间间隔;所述建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包,包括:当所述差值大于所述第二预设时间间隔时,所述目标终端向所述待测试网关发送的心跳数据包,获取所述待测试网关返回所述目标中的心跳数据包时的返回时间,将所述返回时间记录于所述缓存链路表。
在一个实施例中,在所述获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中之后,还包括:当所述链路创建失败时,重新进入所述获取待测试网关接收到的目标终端的连接请求的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种网关压力测试方法,其特征在于,所述方法包括:
获取待测试网关接收到的目标终端的连接请求;
获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中;
建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包;
根据所述多个数据包,分析得到测试结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个数据包,分析得到测试结果,包括:
获取预设占用系数,获取所述多个数据包中的实际占用时间和总占用时间,根据所述实际占用时间和所述总占用时间计算得到所述待测试网关的目标占用系数,根据所述预设占用系数和所述目标占用系数,确定所述测试结果是否准确;
获取所述多个数据包中的当前链路数量,根据所述当前链路数量确定所述待测试网关是否稳定;
获取所述多个数据包中的位置数据包的发送数量,根据所述发送数量确定所述待测试网关是否丢包;
根据所述多个数据包,统计得到所述待测试网关的并发量。
3.根据权利要求1所述的方法,其特征在于,所述建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包,包括:
建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息;
建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包;
建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包。
4.根据权利要求3所述的方法,其特征在于,在所述建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息之前,还包括:
获取所述目标终端向待测试网关发送的登录信息,获取所述待测试网关响应所述目标终端的响应信息,将所述响应信息记录于所述缓存链路表;
根据所述响应信息,确定所述目标终端是否登录成功;
所述建立第一线程,根据所述缓存链路表和所述第一线程获取所述目标终端的鉴权信息,包括:
当所述目标终端登录成功时,根据所述第一线程,获取所述目标终端向所述待测试网关发送的鉴权请求,获取所述待测试网关返回所述目标终端的鉴权成功信息,将所述鉴权成功信息记录于所述缓存链路表;
当所述目标终端登录失败时,重新进入所述获取所述目标终端向待测试网关发送的登录信息的步骤。
5.根据权利要求3所述的方法,其特征在于,在所述建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包之前,还包括:
根据所述缓存链路表,确定所述目标终端是否鉴权成功;
当所述目标终端鉴权失败时,所述目标终端重新向所述待测试网关发送的鉴权信息;
当所述目标终端鉴权成功时,获取预设时间间隔,获取当前系统时间,获取所述缓存链路表中的上次下发时间;
根据所述第一预设时间间隔,确定所述当前系统时间与所述上次下发时间之间的时间差是否大于所述第一预设时间间隔;
所述建立第二线程,根据所述缓存链路表和所述第二线程获取所述目标终端的位置数据包,包括:
当所述时间差大于所述第一预设时间间隔时,所述目标终端向所述待测试网关发送的位置数据包,获取所述待测试网关返回所述目标终端的位置数据包时的下发时间,将所述下发时间记录于所述缓存链路表。
6.根据权利要求3所述的方法,其特征在于,在所述建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包之前,还包括:
获取第二预设时间间隔,获取当前系统时间,根据所述缓存链路表获取上次下发心跳包时间;
根据所述第二预设时间间隔,确定所述当前系统时间与所述上次下发心跳包时间之间的差值是否大于所述第二预设时间间隔;
所述建立第三线程,根据所述缓存链路表和所述第三线程获取所述目标终端的心跳数据包,包括:
当所述差值大于所述第二预设时间间隔时,所述目标终端向所述待测试网关发送的心跳数据包,获取所述待测试网关返回所述目标中的心跳数据包时的返回时间,将所述返回时间记录于所述缓存链路表。
7.根据权利要求1所述的方法,其特征在于,在所述获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中之后,还包括:
当所述链路创建失败时,重新进入所述获取待测试网关接收到的目标终端的连接请求的步骤。
8.一种网关压力测试装置,其特征在于,所述装置包括:
第一获取模块,用于获取待测试网关接收到的目标终端的连接请求;
第二获取模块,用于获取所述目标终端与所述待测试网关之间的链路创建状态,当所述链路创建成功时,将所述链路创建成功的信息添加到缓存链路表中;
建立模块,用于建立线程池,所述线程池中包括多个线程,根据所述缓存链路表和所述线程池获取所述目标终端向所述待测试网关发送的多个数据包;
分析模块,用于根据所述多个数据包,分析得到测试结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911376046.2A CN110912786B (zh) | 2019-12-27 | 2019-12-27 | 网关压力测试方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911376046.2A CN110912786B (zh) | 2019-12-27 | 2019-12-27 | 网关压力测试方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110912786A true CN110912786A (zh) | 2020-03-24 |
CN110912786B CN110912786B (zh) | 2021-07-16 |
Family
ID=69827924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911376046.2A Active CN110912786B (zh) | 2019-12-27 | 2019-12-27 | 网关压力测试方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110912786B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113794606A (zh) * | 2021-09-17 | 2021-12-14 | 合肥润东通信科技股份有限公司 | 一种高效测试同轴语音网关的测试系统及方法 |
CN114338447A (zh) * | 2021-12-29 | 2022-04-12 | 天翼物联科技有限公司 | Radius环境下的全链路压测方法、装置、计算机设备及存储介质 |
CN116192985A (zh) * | 2023-02-08 | 2023-05-30 | 广州市保伦电子有限公司 | 一种数据传输方法、装置及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068924A (zh) * | 2015-07-29 | 2015-11-18 | 浪潮电子信息产业股份有限公司 | 一种测试应用性能的方法及装置 |
CN107426062A (zh) * | 2017-09-05 | 2017-12-01 | 合肥丹朋科技有限公司 | 计算机网络连通性自动分析系统 |
CN107682398A (zh) * | 2017-08-28 | 2018-02-09 | 平安科技(深圳)有限公司 | 数据发送对象的选择方法、装置、计算机设备及存储介质 |
CN107943668A (zh) * | 2017-12-15 | 2018-04-20 | 江苏神威云数据科技有限公司 | 计算机服务器集群日志监控方法及监控平台 |
CN108449237A (zh) * | 2018-05-23 | 2018-08-24 | 平安壹钱包电子商务有限公司 | 网络性能监测方法、装置、计算机设备和存储介质 |
CN108683639A (zh) * | 2018-04-23 | 2018-10-19 | 丙申南京网络技术有限公司 | 一种计算机网络异常检测及自动修复系统、方法及移动终端 |
CN109491895A (zh) * | 2018-10-26 | 2019-03-19 | 北京车和家信息技术有限公司 | 服务器压力测试方法及装置 |
CN109639587A (zh) * | 2018-12-11 | 2019-04-16 | 国网河南省电力公司开封供电公司 | 一种基于电气自动化的流量监测系统 |
EP3477916A1 (de) * | 2017-10-24 | 2019-05-01 | Techem Energy Services GmbH | Verfahren zum auslesen von daten aus in einem gebäude installierten endgeräten und datenerfassungssystem |
-
2019
- 2019-12-27 CN CN201911376046.2A patent/CN110912786B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068924A (zh) * | 2015-07-29 | 2015-11-18 | 浪潮电子信息产业股份有限公司 | 一种测试应用性能的方法及装置 |
CN107682398A (zh) * | 2017-08-28 | 2018-02-09 | 平安科技(深圳)有限公司 | 数据发送对象的选择方法、装置、计算机设备及存储介质 |
CN107426062A (zh) * | 2017-09-05 | 2017-12-01 | 合肥丹朋科技有限公司 | 计算机网络连通性自动分析系统 |
EP3477916A1 (de) * | 2017-10-24 | 2019-05-01 | Techem Energy Services GmbH | Verfahren zum auslesen von daten aus in einem gebäude installierten endgeräten und datenerfassungssystem |
CN107943668A (zh) * | 2017-12-15 | 2018-04-20 | 江苏神威云数据科技有限公司 | 计算机服务器集群日志监控方法及监控平台 |
CN108683639A (zh) * | 2018-04-23 | 2018-10-19 | 丙申南京网络技术有限公司 | 一种计算机网络异常检测及自动修复系统、方法及移动终端 |
CN108449237A (zh) * | 2018-05-23 | 2018-08-24 | 平安壹钱包电子商务有限公司 | 网络性能监测方法、装置、计算机设备和存储介质 |
CN109491895A (zh) * | 2018-10-26 | 2019-03-19 | 北京车和家信息技术有限公司 | 服务器压力测试方法及装置 |
CN109639587A (zh) * | 2018-12-11 | 2019-04-16 | 国网河南省电力公司开封供电公司 | 一种基于电气自动化的流量监测系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113794606A (zh) * | 2021-09-17 | 2021-12-14 | 合肥润东通信科技股份有限公司 | 一种高效测试同轴语音网关的测试系统及方法 |
CN114338447A (zh) * | 2021-12-29 | 2022-04-12 | 天翼物联科技有限公司 | Radius环境下的全链路压测方法、装置、计算机设备及存储介质 |
CN116192985A (zh) * | 2023-02-08 | 2023-05-30 | 广州市保伦电子有限公司 | 一种数据传输方法、装置及系统 |
CN116192985B (zh) * | 2023-02-08 | 2023-11-21 | 广东保伦电子股份有限公司 | 一种数据传输方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110912786B (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110912786B (zh) | 网关压力测试方法、装置、计算机设备及存储介质 | |
CN110532168B (zh) | 全链路接口压测方法、装置、计算机设备及存储介质 | |
CN109542712B (zh) | 服务器压力测试方法、装置、计算机设备和存储介质 | |
CN111078478A (zh) | 服务器压力测试方法、装置和计算机可读存储介质 | |
EP3979081B1 (de) | Verfahren zum testen einer microservice-anwendung | |
CN110059068B (zh) | 一种分布式存储系统中的数据校验方法及数据校验系统 | |
CN109753418A (zh) | 性能测试方法、装置、计算机设备和存储介质 | |
CN107248995A (zh) | 账号验证方法及装置 | |
CN111666194A (zh) | 加压参数自适应调节方法、装置、计算机设备及存储介质 | |
CN108733545B (zh) | 一种压力测试方法及装置 | |
CN113127356A (zh) | 压测方法、装置、电子设备及存储介质 | |
CN111984527A (zh) | 软件的性能测试方法、装置、设备和介质 | |
CN112506751A (zh) | 一种服务器整机性能的对比测试方法、装置、设备及介质 | |
CN111966461A (zh) | 虚拟机集群节点守护方法、装置、设备及存储介质 | |
CN112416648A (zh) | 数据校验方法及装置 | |
WO2020177381A1 (zh) | 服务器测试方法、装置、计算机设备及存储介质 | |
CN109471852B (zh) | 医疗数据库建立方法、装置、计算机设备和存储介质 | |
CN111460256A (zh) | 网页数据的爬取方法、装置、计算机设备和存储介质 | |
CN111147441A (zh) | 网络购票的舞弊行为自动检测方法、设备及可读存储介质 | |
CN111752789A (zh) | 压力测试方法、计算机设备及计算机可读存储介质 | |
CN108229127B (zh) | 预先产生验证数据以区分客户端的系统及其方法 | |
CN114385498A (zh) | 性能测试方法、系统、计算机设备及可读存储介质 | |
CN115328814A (zh) | 基于镜像对的故障注入方法、装置、设备和存储介质 | |
WO2021223214A1 (zh) | 接口性能测试方法和装置、服务器、计算机可读存储介质 | |
CN112527606A (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 |