CN113676372B - 通信性能的测试方法、装置和存储介质 - Google Patents
通信性能的测试方法、装置和存储介质 Download PDFInfo
- Publication number
- CN113676372B CN113676372B CN202110899558.8A CN202110899558A CN113676372B CN 113676372 B CN113676372 B CN 113676372B CN 202110899558 A CN202110899558 A CN 202110899558A CN 113676372 B CN113676372 B CN 113676372B
- Authority
- CN
- China
- Prior art keywords
- instant messaging
- user information
- message
- test
- receiving
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 301
- 238000004891 communication Methods 0.000 title claims abstract description 165
- 238000000034 method Methods 0.000 claims abstract description 47
- 230000015654 memory Effects 0.000 claims description 27
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 17
- 238000010998 test method Methods 0.000 claims 1
- 239000003795 chemical substances by application Substances 0.000 description 16
- 238000013515 script Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 4
- 238000011056 performance test Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 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/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- 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
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种通信性能的测试方法、装置和存储介质,该方法中,通过获取用于登录被测即时通讯产品的多个第一用户信息,其中,每个第一用户信息均包括用户账号和密钥,被测即时通讯产品中的即时通讯客户端为通过终端设备上的代理模块模拟出的;将多个第一用户信息发送给即时通讯服务器,并接收即时通讯服务器返回的多个第二用户信息对应的认证标识;根据多个第二用户信息对应的认证标识,基于部分第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送测试消息;根据测试消息,对被测即时通讯产品的通信性能进行测试。本申请能够节约测试资源,提高测试效率。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种通信性能的测试方法、装置和存储介质。
背景技术
随着通信技术的发展,通讯服务提供商提供了越来越多的通讯服务功能。目前,即时通讯(Instant Messaging,IM)是比较流行的一种通讯方式,在即时通讯***中,保证消息到达的可靠性以及减小消息收发延迟是比较关键的性能指标。
目前,在即时通讯***中,通常会有大规模的设备在线,且大规模设备并行进行消息收发的情况。因此,针对大规模设备在线并进行消息收发的性能测试,通常是使用大量的实际设备安装即时通讯客户端,并在每台设备中通过不同用户使用不同的即时通讯客户端,从而通过互相收发消息完成被测即时通讯客户端的消息到到达率和收发时延的测试。
然而,现有技术的方式,由于使用大量的实际设备进行测试,一方面造成资源消耗巨大,另一方面需要查看每台设备的消息收发情况,使得被测即时通讯产品测试时间长,测试效率较低。
发明内容
为解决现有技术中存在的问题,本发明提供一种通信性能的测试方法、装置和存储介质,不仅可以减小资源消耗,而且可以减少测试时间,提高测试效率,另外还可以减小即时通讯服务器的通信压力。
第一方面,本申请实施例提供了一种通信性能的测试方法,应用于终端设备,包括:
获取用于登录被测即时通讯产品的多个第一用户信息,其中,每个第一用户信息均包括用户账号和密钥,所述被测即时通讯产品中的即时通讯客户端为通过所述终端设备上的代理模块模拟出的;
将所述多个第一用户信息发送给即时通讯服务器,并接收所述即时通讯服务器返回的多个第二用户信息对应的认证标识,所述认证标识用于表示所述第二用户信息中的用户账号和密钥认证通过,所述第二用户信息为所述第一用户信息中的部分用户信息或全部用户信息;
根据所述多个第二用户信息对应的认证标识,基于部分所述第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送测试消息,所述其他第二用户信息为除所述部分第二用户信息之外的用户信息;
根据所述测试消息,对所述被测即时通讯产品的通信性能进行测试。
在一种可能的实现方式中,所述获取用于登录被测即时通讯产品的多个第一用户信息,包括:
接收操作指令;
根据所述操作指令,向所述用户信息获取服务器并行发送多个请求消息;
接收所述用户信息获取服务器发送的与所述多个请求消息一一对应的多个第一用户信息。
在一种可能的实现方式中,所述根据所述多个第二用户信息对应的认证标识,基于部分所述第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送测试消息,包括:
根据每个第二用户信息对应的认证标识以及所述每个第二用户信息中的用户账号,控制分别建立所述每个第二用户信息中的用户账号所使用的即时通讯客户端与即时通讯服务器之间的长连接;
根据所述长连接,控制部分所述第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送所述测试消息。
在一种可能的实现方式中,所述根据所述长连接,控制部分所述第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送所述测试消息,包括:
基于部分第二用户信息中的用户账号各自所使用的即时通讯客户端与所述即时通讯服务器之间的长连接,控制部分第二用户信息中的用户账号各自所使用的即时通讯客户端,向所述即时通讯服务器发送所述测试消息;
基于其他第二用户信息中的用户账号各自所使用的即时通讯客户端与所述即时通讯服务器之间的长连接,控制所述其他第二用户信息中的用户账号各自所使用的即时通讯客户端,接收所述即时通讯服务器发送的所述测试消息。
在一种可能的实现方式中,所述根据所述测试消息,对所述被测即时通讯产品的通信性能进行测试,包括:
分别获取通过部分第二用户信息中的用户账号各自所使用的即时通讯客户端发送的多个测试消息,以及通过其他第二用户信息中的用户账号各自所使用的即时通讯客户端接收的多个测试消息;
根据所述发送的多个测试消息和所述接收的多个测试消息,对通信性能进行测试。
在一种可能的实现方式中,所述通信性能包括测试消息的到达率;
所述根据所述发送的多个测试消息和所述接收的多个测试消息,对通信性能进行测试,包括:
分别获取所述接收的多个测试消息的第一数量和所述发送的多个测试消息的第二数量;
根据所述第一数量和所述第二数量之间的比值,确定所述测试消息的到达率。
在一种可能的实现方式中,所述通信性能包括测试消息的延迟时间;
所述根据所述发送的多个测试消息和所述接收的多个测试消息,对通信性能进行测试,包括:
分别获取所述发送的多个测试消息各自对应的发送时间戳,以及所述接收的多个测试消息各自对应的接收时间戳;
根据所述发送时间戳和所述接收时间戳,确定所述测试消息的延迟时间。
第二方面,本申请实施例还提供了一种通信性能的测试装置,包括:
获取模块,用于获取用于登录被测即时通讯产品的多个第一用户信息,其中,每个第一用户信息均包括用户账号和密钥,所述被测即时通讯产品中的即时通讯客户端为通过所述终端设备上的代理模块模拟出的;
发送模块,用于将所述多个第一用户信息发送给即时通讯服务器;
接收模块,用于接收所述即时通讯服务器返回的多个第二用户信息对应的认证标识,所述认证标识用于表示所述第二用户信息中的用户账号和密钥认证通过,所述第二用户信息为所述第一用户信息中的部分用户信息或全部用户信息;
所述发送模块,还用于根据所述多个第二用户信息对应的认证标识,基于部分所述第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送测试消息,所述其他第二用户信息为除所述部分第二用户信息之外的用户信息;
测试模块,用于根据所述测试消息,对所述被测即时通讯产品的通信性能进行测试。
在一种可能的实现方式中,所述获取模块,具体用于:
接收操作指令;
根据所述操作指令,向所述用户信息获取服务器并行发送多个请求消息;
接收所述用户信息获取服务器发送的与所述多个请求消息一一对应的多个第一用户信息。
在一种可能的实现方式中,所述发送模块,具体用于:
根据每个第二用户信息对应的认证标识以及所述每个第二用户信息中的用户账号,控制分别建立所述每个第二用户信息中的用户账号所所使用的即时通讯客户端与所述即时通讯服务器之间的长连接;
根据所述长连接,控制部分所述第二用户信息中的用户账号所所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送所述测试消息。
在一种可能的实现方式中,所述发送模块,具体用于:
基于部分第二用户信息中的用户账号各自所使用的即时通讯客户端与所述即时通讯服务器之间的长连接,控制部分第二用户信息中的用户账号各自所使用的即时通讯客户端,向所述即时通讯服务器发送所述测试消息;
基于其他第二用户信息中的用户账号各自所使用的即时通讯客户端与所述即时通讯服务器之间的长连接,控制所述其他第二用户信息中的用户账号各自所使用的即时通讯客户端,接收所述即时通讯服务器发送的所述测试消息。
在一种可能的实现方式中,所述测试模块,具体用于:
分别获取通过部分第二用户信息中的用户账号各自所使用的即时通讯客户端发送的多个测试消息,以及通过其他第二用户信息中的用户账号各自所使用的即时通讯客户端接收的多个测试消息;
根据所述发送的多个测试消息和所述接收的多个测试消息,对通信性能进行测试。
在一种可能的实现方式中,所述通信性能包括测试消息的到达率;
所述测试模块,具体用于:
分别获取所述接收的多个测试消息的第一数量和所述发送的多个测试消息的第二数量;
根据所述第一数量和所述第二数量之间的比值,确定所述测试消息的到达率。
在一种可能的实现方式中,所述通信性能包括测试消息的延迟时间;
所述测试模块,具体用于:
分别获取所述发送的多个测试消息各自对应的发送时间戳,以及所述接收的多个测试消息各自对应的接收时间戳;
根据所述发送时间戳和所述接收时间戳,确定所述测试消息的延迟时间。
第三方面,本申请实施例还提供了一种终端设备,该终端设备可以包括处理器和存储器;其中,
所述存储器,用于存储计算机程序。
所述处理器,用于读取所述存储器存储的计算机程序,并根据所述存储器中的计算机程序执行上述第一方面任一种可能的实现方式中所述的通信性能的测试方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述第一方面任一种可能的实现方式中所述的通信性能的测试方法。
第五方面,本申请实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现上述第一方面任一种可能的实现方式所述的通信性能的测试方法。
本申请提供的通信性能的测试方法、装置和存储介质,通过获取用于登录被测即时通讯产品的多个第一用户信息,其中,每个第一用户信息均包括用户账号和密钥,该被测即时通讯产品中的即时通讯客户端为通过终端设备上的代理模块模拟出的,然后将多个第一用户信息发送给即时通讯服务器,并接收即时通讯服务器返回的多个第二用户信息对应的认证标识,该认证标识用于表示第二用户信息中的用户账号和密钥认证通过,第二用户信息为第一用户信息中的部分用户信息或全部用户信息,根据多个第二用户信息对应的认证标识,基于部分第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送测试消息,其他第二用户信息为除部分第二用户信息之外的用户信息,再根据测试消息,对被测即时通讯产品的通信性能进行测试。由于通过在终端设备上模拟出多个即时通讯客户端,并通过多个用户账户分别登录这多个即时通讯客户端,从而模拟多个终端设备进行被测即时通讯产品的通信性能的测试,可以避免了现有技术中采用大量实际设备进行测试的现象,一方面,不仅可以节约资源,提高了测试的可行性,而且使得资源的可扩展性较好。另外,由于只需要在少量的终端设备上查看消息的收发情况,从而不仅可以降低统计难度,而且可以降低人力成本,减少测试时间,提高测试效率。另一方面,通过上述的测试方式,可以减轻服务器的通信压力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的通信性能的测试方法的***架构图;
图2为本申请实施例提供的一种通信性能的测试方法的流程示意图;
图3为获取第一用户信息的示意图;
图4为测试消息的收发流程示意图;
图5为消息接收分析工具对被测即时通讯产品的通信性能进行测试的示意图;
图6为本申请实施例提供的一种通信性能的测试装置的结构示意图;
图7为本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”及“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了帮助本领域技术人员更好地理解本申请的技术方案,下面将对本申请技术方案涉及的相关内容进行介绍。
(1)每秒事务处理量(Transaction Per Second,TPS),***每秒钟处理的事务数,是一个重要的衡量***处理能力的指标。
(2)客户端在线:在即时通讯***中,客户端在线即客户端与服务端保持着传输控制协议(Transmission Control Protocol,TCP)长连接,可随时进行通信。
(3)超文本传输协议(Hypertext Transfer Protocol,HTTP)请求(Request):HTTP协议是在TCP协议基础上的应用层协议,是一种请求-响应式协议。HTTP Request即是客户端向Web服务端发送的请求。
(4)HTTP响应(Response):Web服务端向客户端返回的响应。
(5)心跳包:客户端与服务端之间定时通知对方自己状态的一种通信包,按照一定时间间隔发送,类似于心跳。
(6)长连接:TCP协议是基于连接的协议,TCP连接的建立与断开分别需要三次握手和四次挥手,需要消耗时间,因此对于一些交互频繁的通讯情况来说,频繁的短连接会造成资源浪费及通信错误,这就需要长连接。长连接一般指在一个TCP连接上可以连续发送多个数据包。
(7)Socket:套接字,是对网络中不同主机上应用程序之间进行双向通信的端点的抽象,是应用程序通过网络协议进行通信的接口。
(8)nGrinder是一个用于在多台机器上运行用jython(类python)或groovy(类java)编写的测试脚本的应用程序。
本申请实施例提供的通信性能的测试方法,可以应用于需要对应用程序的通信性能进行测试的应用场景中,尤其可以应用于对即时通讯产品的通信性能进行测试的场景中。例如,在某个即时通讯产品上线后,可能会有成千上万个用户使用该即时通讯产品收发消息,为了保证消息的到达率,在该即时通讯产品上线之前,就需要对该即时通讯产品的通信性能进行测试。
目前,在对即时通讯产品的通信性能进行测试时,通常会采用大规模的实际设备,并在每台设备上安装被测即时通讯产品中的即时通讯客户端,并且每台设备上安装的即时通讯客户端供不同的用户账户使用,这样,在这些实际设备之间,通过这些设备上安装的即时通讯客户端进行消息的收发,以进行被测即时通讯产品的通信性能的测试。然而,目前使用在大量实际设备上安装即时通讯客户端,完成对被测即时通讯产品的性能测试的方法,一方面资源消耗巨大,存在资源瓶颈,扩展困难的问题,另一方面由于需要在每台设备上查看消息的收发情况,造成结果统计困难,另外,上述测试方式人力成本较高、测试时间长,且测试效率低下,而且即时通讯服务器的通信压力也较大。
本申请实施例中考虑到上述问题,提出一种通信性能的测试方法,该方法可以使用少量终端设备模拟大规模设备在线并收发消息,以进行性能测试。其中,可以基于nGrinder,通过编写groovy脚本来模拟大规模即时通信客户端设备连接即时通信服务端,通过保持即时通信客户端在线,并进行测试消息的收发操作,同时对测试消息到达率、测试消息的发送成功率、以及测试消息的延迟时间进行记录并分析,实现对即时通讯产品中测试消息收发的性能测试。
具体的,在该方法中,可以在少量的终端设备上均安装nGrinder代理模块,并在该代理模块上运行编写好的模拟脚本,从而模拟即时通讯产品中的多个即时通讯客户端的登录、保持在线及收发消息,而不是实际安装即时通讯客户端。对于每一台终端设备来说,可以采用多个用户账号登陆该终端设备上使用nGrinder代理模块模拟出来的多个即时通讯客户端,以通过这模拟出的多个即时通讯客户端来模拟多个实际的终端设备。通过多个用户账号各自所使用的即时通讯客户端之间进行消息的收发,以完成被测即时通讯产品的通信性能的测试。由此可见,通过在终端设备上模拟多个即时通讯客户端,并通过多个用户账号各自所使用这多个即时通讯客户端,模拟多个终端设备进行被测即时通讯产品的通信性能的测试,可以避免了现有技术中采用大量实际设备进行测试的现象,一方面,不仅可以节约资源,而且使得资源的可扩展性较好。另外,由于只需要在少量的终端设备上查看消息的收发情况,从而不仅可以降低统计难度,而且可以降低人力成本,减少测试时间,提高测试效率。另一方面,通过上述的测试方法,可以减轻即时通讯服务器的通信压力。
图1为本申请实施例提供的通信性能的测试方法的***架构图,如图1所示,该***中包括终端设备101、用户信息获取服务器102和即时通讯服务器103,其中,终端设备101采用controller-agent分布式结构,在终端设备101上安装有多个代理模块(agent),代理模块(agent)支持主流开发语言进行测试脚本的开发,控制器(controller)将测试脚本及所需资源分发至代理模块(agent)执行,在执行的过程中收集即时通讯服务器103的运行情况、TPS、响应时间等指标。其中,终端设备101上的每个代理模块(agent)模拟多个即时通讯客户端。
终端设备101可以从用户信息获取服务器102中获取用于登录被测即时通讯产品的多个第一用户信息,其第一用户信息中包括用户账号和密钥。通过多个用户账号登录被测即时通讯产品,以通过每个用户账号所使用的终端设备101模拟出的即时通讯客户端,这样,就类似于在多个终端设备上分别安装即时通讯客户端,每个用户在不同电脑上进行登录一样,因此,多个用户账号或者多个即时通讯客户端可以用于模拟多个实际设备。应理解,每个第一用户信息可以用于登录一个即时通讯客户端。
多个用户账号均登录了即时通讯产品之后,每个用户账号所使用的即时通讯客户端都会和即时通讯服务器103建立长连接,从而可以基于长连接,通过即时通讯客户端实现不同账号之间的消息收发。
如图1所示,终端设备101上的代理模块(agent)模拟有即时通讯客户端1、即时通讯客户端2、……、即时通讯客户端n。用户账号1、用户账号2、……、用户账号n分别在终端设备101上使用模拟出的即时通讯客户端1、即时通讯客户端2、……、即时通讯客户端n。另外,每个即时通讯客户端均会与即时通讯服务器103之间建立长连接,这样,不同的用户账户之间可以基于长连接实现消息的收发。例如,用户账号1通过所使用的即时通讯客户端1,基于即时通讯客户端1与即时通讯服务器103之间的长连接向即时通讯服务器103发送测试消息,即时通讯服务器103确定出该测试消息是发给用户账号2时,会基于即时通讯客户端2与即时通讯服务器103之间的长连接向用户账号2转发测试消息,其中,用户账号2所使用的客户端为即时通讯客户端2。其他的用户账号可以采用上述类似的方式进行消息收发,从而可以采用少量的终端设备,来模拟多台实际设备进行即时通讯产品的测试。
应理解,在实际的测试过程中,终端设备101上配置的代理模块(agent)的数量、每个代理模块(agent)模拟出的即时通讯客户端的数量、测试持续时长或测试执行次数等参数,可以根据实际需要进行灵活配置。
需要说明的是,用户信息获取服务器102和即时通讯服务器103可以为一台服务器,可以为多台服务器组成的服务器集群。
应该理解,在图1所示的***架构中,终端设备101、用户信息获取服务器102和即时通讯服务器103的数目仅仅是示例性的,更多或更少的数量都属于本申请的保护范畴。并且,在上述示例运行场景中,终端设备例如可以是个人计算机、服务器、掌上电脑(PersonalDigital Assistant,PDA)、笔记本或其它任何具有联网功能的计算设备。终端设备、用户信息获取服务器102和即时通讯服务器103之间通信的网络可以包括各种类型的有线和无线网络,例如但不局限于:互联网、局域网、无线保真(Wireless Fidelity,WIFI)、无线局域网(Wireless Local Area Networks,WLAN)、蜂窝通信网络(通用分组无线服务技术(GeneralPacket Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、2G/3G/4G/5G蜂窝网络)、卫星通信网络等等。
在了解了本申请的***架构后,结合图2对本申请的通信性能的测试方法的方案进行详细说明。
图2为本申请实施例提供的一种通信性能的测试方法的流程示意图,本申请实施例提供了一种通信性能的测试方法,该方法可以由任意执行通信性能的测试方法的装置来执行,该装置可以通过软件和/或硬件实现。本实施例中,该装置可以集成在如图1所示的终端设备中。如图2所示,本申请实施例提供的通信性能的测试方法包括如下步骤:
步骤201:获取用于登录被测即时通讯产品的多个第一用户信息。
其中,每个第一用户信息均包括用户账号和密钥,被测即时通讯产品中的即时通讯客户端为通过终端设备上的代理模块模拟出的。
在本步骤中,用户账号(User ID)和密钥(Token)用于登录被测即时通讯产品。应理解,被测即时通讯产品包括所有可以发送和接收即时消息的应用程序。
示例性的,在获取第一用户信息时,可以通过接收操作指令,并根据该操作指令,向用户信息获取服务器并行发送多个请求消息,接收用户信息获取服务器发送的与多个请求消息一一对应的多个第一用户信息。
具体的,用户在需要对被测即时通讯产品进行测试时,会通过终端设备触发操作指令。其中,该操作指令可以是通过语音触发的,也可以是通过点击操作控件触发的,还可以是通过按压物理按键触发的,对于该操作指令的具体触发方式,本申请实施例在此不做限制。
图3为获取第一用户信息的示意图,如图3所示,终端设备中有测试脚本,该终端设备接收到操作指令之后,会调用测试脚本以向用户信息获取服务器并行的发送多个请求消息,例如并行发送多个HTTP请求。应理解,该用户信息获取服务器可以接收大规模的并发请求。在用户信息获取服务器中,用户的账号信息(User ID)和密钥(Token)是以对象的形式存储于数据库中,并且以用户信息池的方式存储。当用户信息获取服务器接收到HTTP请求后,会从数据库的用户信息池中取出一个用户信息对象,并对提取出的用户信息对象进行解析,并拼装成Json格式,从而将拼装成Json格式的用户信息对象携带在HTTP响应中返回给终端设备。
其中,为了方便测试结果的统计,用户账号在满足被测即时通讯产品的账号信息规则的前提下,还可以满足一定规律,如可以将发送方的用户账号与接收方用户账号一一对应起来。如:发送方的用户账号为10001~19999,各用户账号之间递增1,接收方的用户账号为20001~29999,各用户账号之间递增1,二者的一一对应关系为差值10000。
在本方式中,终端设备在接收到操作指令后,向用户信息获取服务器并行发送多个请求消息,从而可以接收到用户信息获取服务器返回的多个第一用户信息,由于通过并发消息的方式,可以通过较少的消息交互次数,即可获取到大量的用户信息,从而可以提高用户信息获取的效率。
步骤202:将多个第一用户信息发送给即时通讯服务器,并接收即时通讯服务器返回的多个第二用户信息对应的认证标识。
其中,该认证标识用于表示第二用户信息中的用户账号和密钥认证通过,第二用户信息为第一用户信息中的部分用户信息或全部用户信息。
应理解,第二用户信息为第一用户信息中认证成功或认证通过的用户信息,若第二用户信息为第一用户信息中的部分用户信息,则说明第一用户信息中存在部分用户信息认证失败或者认证未通过,若第二用户信息为第一用户信息中的全部用户信息,则说明第一用户信息中所有的用户信息均认证成功或认证通过。
在本步骤中,终端设备在获取到多个第一用户信息后,可以将这多个第一用户信息发送给即时通讯服务器,以发起登录请求。由于不同即时通讯***所使用的消息协议和通信方式可能不同,所以需引入被测即时通讯***的消息协议库,终端设备需要按照登录被测即时通讯***中的被测即时通讯产品所需要的请求格式,拼装请求消息并发起登录请求。即时通讯服务器接收到登录请求后,会分别对每个第一用户信息中的用户账号和密钥进行认证。示例性的,可以在即时通讯服务器中预先存储有多个用户账号以及各用户账号各自对应的密钥,即时通讯服务器在接收到多个第一用户信息后,会从每个第一用户信息中解析出包含的用户账号和密钥,并将解析出的用户账号和密钥与预先存储的多个用户账号以及对应的密钥进行匹配,若某一第一用户信息中的用户账号和密钥匹配成功,则确定该第一用户信息中的用户账号和密钥认证通过。
在一种可能的实现方式中,即时通讯服务器在对所有的第一用户信息认证完成后,即可确定出认证通过的第二用户信息,并向终端设备返回与第二用户信息对应的认证标识。其中,该认证标识可以用于表示第二用户信息中的用户账号和密钥认证通过,另外,每个第二用户信息对应的认证标识是不同的。
在另一种可能的实现方式中,即时通讯服务器在对多个第一用户信息进行认证时,可以是在每验证通过一个第一用户信息时,就向终端设备返回该第一用户信息对应的认证标识。
示例性的,上述认证标识可以为SighKey。
举例来说,假设被测即时通讯产品采用WebSocket方式进行通信,消息协议为其私有协议,协议规定消息包含消息类型、发送用户UserID、接收用户UserID、消息内容等,对登录请求的消息要求为消息类型置为1,发送用户UserID置为登录用户UserID,接收用户UserID置为0,消息内容置为Token。则终端设备中的测试脚本需要按照要求将相应字段放入相应值并封装消息,以WebSocket方式向被测即时通讯产品中的即时通讯服务器发送登录请求,即时通讯服务器在验证某个发送用户UserID和对应的密钥认证通过后,会向终端设备发送该发送用户UserID的SighKey。
步骤203:根据多个第二用户信息对应的认证标识,基于部分第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送测试消息。
其中,其他第二用户信息为除部分第二用户信息之外的用户信息。
在本步骤中,由于第二用户信息为认证通过的用户信息,因此,可以基于这些第二用户信息,进行测试消息的收发操作。其中,为了避免引入更多的测试设备,在具体的实现过程中,可以通过部分第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送测试消息,这样,测试消息的收发可以在同一台终端设备上即可完成,从而可以进一步节约资源。
例如:在终端设备上安装有多个代理模块,这些代理模块可以模拟两万个即时通讯客户端,其中,用户账号为10001-19999的账号使用的即时通讯客户端为发送方,用户账号为20001-29999的账号所使用的即时通讯客户端为接收方,用户账号为10001-19999所使用的即时通讯客户端向用户账号为20001-29999所使用的即时通讯客户端发送测试消息。
示例性的,在发送测试消息的过程中,可以根据每个第二用户信息对应的认证标识以及每个第二用户信息中的用户账号,控制分别建立每个第二用户信息中的用户账号所使用的即时通讯客户端与即时通讯服务器之间的长连接,根据该长连接,控制部分第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送测试消息。
具体的,终端设备可以基于每个第二用户信息各自对应的认证标识以及每个第二用户信息中的用户账号,向被测即时通讯产品中的即时通讯服务器发起长连接请求。由于不同即时通讯产品所使用的消息协议、通信方式可能不同,所以需引入被测即时通讯产品的消息协议库,依照被测即时通讯产品长连接请求格式拼装请求消息并发起长连接请求,即时通讯服务器接收到某个第二用户信息对应的长连接请求后,会验证该第二用户信息对应的认证标识,如验证SighKey成功后,将记录与该第二用户信息所使用的即时通讯客户端的连接句柄,以此作为寻找该即时通讯客户端的依据。
按照上述方式,可以建立每个第二用户信息所使用的即时通讯客户端与即时通讯服务器之间的长连接。
应理解,由于TCP连接的通道是个虚拟的链路,长时间无数据往来时无法保证连接的长期有效性,且即时通讯服务器无法主动判断即时通讯客户端是否在线,因此需要即时通讯客户端定期向即时通讯服务器发送心跳包来保持长连接并告知即时通讯服务器其在线状态,若即时通讯服务器长时间未收到即时通讯客户端发送的心跳包,则认为该即时通讯客户端已下线,此时,即时通讯服务器确定将无需再维持其连接句柄。其中,终端设备的测试脚本可以依照被测即时通讯***的心跳包请求格式来拼装心跳包,例如包括UserID、SighKey等,另外,还可以根据被测即时通讯产品要求设置心跳间隔时长。
在建立每个第二用户信息所使用的即时通讯客户端与即时通讯服务器之间的长连接之后,将控制部分第二用户信息中的用户账号所使用的即时通讯客户端向其他第二用户信息中的用户账号所使用的即时通讯客户端发送测试消息。
在本实施例中,根据每个第二用户信息对应的认证标识以及每个第二用户信息中的用户账号,控制分别建立每个第二用户信息中的用户账号所使用的即时通讯客户端与即时通讯服务器之间的长连接,并基于该长连接收发测试消息,由于TCP连接的建立与断开需要进行三次握手和四次挥手,需要消耗时间,因此,采用长连接进行测试消息收发的过程,可以避免进行频繁短连接造成的资源浪费,从而不仅可以达到节约资源的目的,而且可以提高测试消息收发的效率。
进一步的,在基于长连接进行测试消息收发时,可以是基于部分第二用户信息中的用户账号各自所使用的即时通讯客户端与即时通讯服务器之间的长连接,控制部分第二用户信息中的用户账号各自所使用的即时通讯客户端,向即时通讯服务器发送测试消息,并基于其他第二用户信息中的用户账号各自所使用的即时通讯客户端与即时通讯服务器之间的长连接,控制其他第二用户信息中的用户账号各自所使用的即时通讯客户端,接收即时通讯服务器发送的测试消息。
具体的,由于已经建立了各个第二用户信息所使用的即时通讯客户端与即时通讯服务器之间的长连接,因此,对于同一个终端设备上的多个即时通讯客户端之间收发被测消息时,需要基于上述的长连接,通过即时通讯服务器进行被测消息的转发。
另外,发送方发送的测试消息中,包括接收方的标识信息,例如测试消息中可以包括其他第二用户信息中的用户账号,这样,即时通讯服务器可以根据其他第二用户信息中的用户账号进行消息的转发。
例如,用户账号为10001-19999所使用的即时通讯客户端向用户账号为20001-29999所使用的即时通讯客户端发送测试消息时,由于各个即时通讯客户端均与即时通讯服务器之间建立有长连接,因此,用户账号为10001-19999所使用的各个即时通讯客户端分别基于各自对应的长连接向即时通讯服务器发送测试消息,该测试消息中包括接收方的标识信息,例如,用户账号为10001所使用的即时通讯客户端发送的测试消息中包括用户账号20001,用户账号为10002所使用的即时通讯客户端发送的测试消息中包括用户账号20002等,这样,即时通讯服务器在接收到测试消息后,将根据测试消息中的用户账号,基于用户账号为20001-29999所使用的各个即时通讯客户端与即时通讯服务器之间的长连接,进行测试消息的转发。如基于用户账号为20001所使用的即时通讯客户端与即时通讯服务器之间的长连接,将用户账号为10001所使用的即时通讯客户端发送的测试消息,转发给用户账号为20001所使用的即时通讯客户端,对于其他的即时通讯客户端的测试消息的转发过程,与上述类似,此处不在赘述。
在本实施例中,可以控制部分第二用户信息各自所使用的即时通讯客户端,将测试消息发送给即时通讯服务器,再由即时通讯服务器将这些测试消息转发给其他第二用户信息各自所使用的即时通讯客户端,实现了在少量终端设备上进行被测即时通讯产品性能的测试,从而可以节约测试资源。
步骤204:根据测试消息,对被测即时通讯产品的通信性能进行测试。
具体的,可以根据不同即时通讯客户端之间进行测试消息的收发,从而对被测即时通讯产品的通信性能进行测试,其中,该通信性能包括测试消息的到达率和/或测试消息的收发时延。
需要进行说明的是,对被测即时通讯产品的通信性能进行测试,主要在于对即时通讯服务器的通信压力进行测试。
示例性的,在对被测即时通讯产品的通信性能进行测试时,可以分别获取通过部分第二用户信息中的用户账号各自所使用的即时通讯客户端发送的多个测试消息,以及通过其他第二用户信息中的用户账号各自所使用的即时通讯客户端接收的多个测试消息,并根据发送的多个测试消息和接收的多个测试消息,对通信性能进行测试。
具体的,在终端设备中,进行测试消息的发送与接收的操作,是使用两个不同的测试脚本实现,分别为消息发送脚本和消息接收脚本。
图4为测试消息的收发流程示意图,如图4所示,即时通讯客户端在通过消息接收脚本进行消息接收时,在其他第二用户信息所使用的即时通讯客户端保持在线后,将等待接收即时通讯服务器发送的测试消息,一旦接收到测试消息,则使用被测即时通讯产品的消息协议,对测试消息进行解析,并将解析出的消息发送方ID、消息接收方ID、消息内容等字段加上时间戳及接收标志发送至消息接收分析工具。
即时通讯客户端在通过消息发送脚本进行消息发送时,在部分用户所使用的即时通讯客户端保持在线后,使用被测即时通讯产品的消息协议对测试消息进行封装,包括消息内容、发送方UserID、与其对应的接收方UserID等,调用消息发送接口发送封装后的测试消息至即时通讯服务器,同时将消息中发送方UserID、接收方UserID、消息内容加上时间戳及发送标志发送至消息接收分析工具。
具体的,消息接收分析工具可以使用消息缓存队列和文件存储对各模块进行解耦,并采用异步方式进行消息接收、存储、处理与分析。图5为消息接收分析工具对被测即时通讯产品的通信性能进行测试的示意图,如图5所示,消息接收分析工具中包括消息并发接收模块、消息缓存队列、消息处理模块、消息文件存储模块和消息统计分析模块,其中,消息接收分析工具具备接收大规模并发测试消息的功能,消息接收分析工具提供有Socket服务及消息缓存队列,可以将通过消息并发接收模块接收到的Socket测试消息***到消息缓存队列中。消息处理模块可以从消息缓存队列中取出测试消息并处理。
其中,消息处理模块为多线程处理模块,可以通过多线程方式从消息缓存队列中取出测试消息,以对该测试消息进行解析,从而解析出测试消息的各字段内容,并将解析出的测试消息各字段内容进行格式化存储,以存入到消息文件存储模块中,其中,每个线程可以存储一个文件。
示例性的,该文件内容格式可以为:
消息方标识(发送方S,接收方R)|发送方UserID|接收方UserID|消息内容|时间戳。
进一步的,消息统计分析模块可以从消息文件存储模块中读取保存的文件,并汇总一次任务中的所有文件内容,通过遍历所有的测试消息,并根据消息方标识区分出发送方发送的测试消息与接收方接收到的测试消息,分别放入两个消息发送队列或消息接收队列中。示例性的,为了方便结果的统计,在排序队列中存储时,排序依据是按照时间戳升序进行排序,从而形成按时间排序的消息发送队列和消息接收队列,以统计分析结果。
在确定出消息发送队列和消息接收队列后,终端设备可以通过这两个消息队列中各测试消息对被测即时通讯产品的通信性能进行测试。示例性的,若通信性能包括测试消息的到达率,则进行通信性能测试时,可以分别获取接收的多个测试消息的第一数量和发送的多个测试消息的第二数量,并根据第一数量和第二数量之间的比值,确定测试消息的到达率。
具体的,终端设备可以获取消息接收队列中所接收到的测试消息的第一数量,并获取消息发送队列中所发送的测试消息的第二数量,通过计算第一数量和第二数量的比值,即可得到测试消息的到达率。
在本实施例中,通过终端设备上使用nGrinder代理模块模拟出来的多个即时通讯客户端向其他即时通讯客户端发送测试消息,从而计算测试消息的到达率,这样,可以通过模拟出的多个即时通讯客户端模拟多个实际设备,避免了现有技术中采用多个实际设备对被测即时通讯产品进行通信性能测试的现象,从而可以节约资源。另外,由于通过少量终端设备即可确定出测试消息的到达率,从而避免了需要统计大规模终端设备的统计结果的现象,由此可以节约人力,提高测试消息到达率的统计效率,而且避免了在统计多台终端设备的数据时容易造成漏数据的现象,提高了统计结果的准确性。
示例性的,通信性能包括测试消息的延迟时间,则进行通信性能测试时,可以分别获取发送的多个测试消息各自对应的发送时间戳,以及接收的多个测试消息各自对应的接收时间戳,并根据发送时间戳和接收时间戳,确定测试消息的延迟时间。
具体的,终端设备可以从消息发送队列中确定某一测试消息的发送时间戳,并从消息接收队列中确定该测试消息的接收时间戳,并计算接收时间戳与发送时间戳之间的差值,从而将该差值作为该测试消息的延迟时间。其他测试消息的延时时间的确定方式与之类似,此处不再赘述。
其中,测试消息的发送时间戳可以理解为发送该测试消息的时刻,测试消息的接收时间戳可以理解为接收该测试消息的时刻。
在本实施例中,通过终端设备上使用nGrinder代理模块模拟出来的多个即时通讯客户端向其他即时通讯客户端发送测试消息,从而计算测试消息的延迟时间,这样,可以通过多个模拟出的即时通讯客户端模拟多个实际设备,避免了现有技术中采用多个实际设备对被测即时通讯产品进行通信性能测试的现象,从而可以节约资源。另外,由于通过少量终端设备即可确定出测试消息的延迟时间,从而避免了需要统计大规模终端设备的统计结果的现象,由此可以节约人力,提高测试消息延迟时间的统计效率,而且避免了在统计多台终端设备的数据时容易造成漏数据的现象,提高了统计结果的准确性。
进一步的,在测试的过程中,还可以实时监测终端设备和即时通讯服务器的中央处理器(Central Processing Unit,CPU)、内存和网络等资源的使用情况,以实时调整终端设备中代理模块数量、模拟的即时通讯客户端的数量以及测试消息的发送数量等等。
本申请实施例提供的通信性能的测试方法,通过获取用于登录被测即时通讯产品的多个第一用户信息,其中,每个第一用户信息均包括用户账号和密钥,该被测即时通讯产品中的即时通讯客户端为通过终端设备上的代理模块模拟出的,然后将多个第一用户信息发送给即时通讯服务器,并接收即时通讯服务器返回的多个第二用户信息对应的认证标识,该认证标识用于表示第二用户信息中的用户账号和密钥认证通过,第二用户信息为第一用户信息中的部分用户信息或全部用户信息,根据多个第二用户信息对应的认证标识,基于部分第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送测试消息,其他第二用户信息为除部分第二用户信息之外的用户信息,再根据测试消息,对被测即时通讯产品的通信性能进行测试。由于通过在终端设备上模拟出多个即时通讯客户端,并通过部分即时通讯客户端向其他即时通讯客户端发送消息,从而模拟多个终端设备进行被测即时通讯产品的通信性能的测试,可以避免了现有技术中采用大量实际设备进行测试的现象,从而不仅可以节约资源,提高了测试的可行性,而且使得资源的可扩展性较好。另外,由于只需要在少量的终端设备上查看消息的收发情况,从而不仅可以降低统计难度,而且可以降低人力成本,减少测试时间,提高测试效率。另一方面,通过上述的测试方式,可以减轻服务器的通信压力。
图6为本申请实施例提供的一种通信性能的测试装置60的结构示意图,示例的,请参见图6所示,该通信性能的测试装置60可以包括:
获取模块601,用于获取用于登录被测即时通讯产品的多个第一用户信息,其中,每个第一用户信息均包括用户账号和密钥,所述被测即时通讯产品中的即时通讯客户端为通过所述终端设备上的代理模块模拟出的;
发送模块602,用于将所述多个第一用户信息发送给即时通讯服务器;
接收模块603,用于接收所述即时通讯服务器返回的多个第二用户信息对应的认证标识,所述认证标识用于表示所述第二用户信息中的用户账号和密钥认证通过,所述第二用户信息为所述第一用户信息中的部分用户信息或全部用户信息;
所述发送模块602,还用于根据所述多个第二用户信息对应的认证标识,基于部分所述第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送测试消息,所述其他第二用户信息为除所述部分第二用户信息之外的用户信息;
测试模块604,用于根据所述测试消息,对所述被测即时通讯产品的通信性能进行测试。
可选的,所述获取模块601,具体用于:
接收操作指令;
根据所述操作指令,向用户信息获取服务器并行发送多个请求消息;
接收所述用户信息获取服务器发送的与所述多个请求消息一一对应的多个第一用户信息。
可选的,所述发送模块602,具体用于:
根据每个第二用户信息对应的认证标识以及所述每个第二用户信息中的用户账号,控制分别建立所述每个第二用户信息中的用户账号所使用的即时通讯客户端与所述即时通讯服务器之间的长连接;
根据所述长连接,控制部分所述第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送所述测试消息。
可选的,所述发送模块602,具体用于:
基于部分第二用户信息中的用户账号各自所使用的即时通讯客户端与所述即时通讯服务器之间的长连接,控制部分第二用户信息中的用户账号各自所使用的即时通讯客户端,向所述即时通讯服务器发送所述测试消息;
基于其他第二用户信息中的用户账号各自所使用的即时通讯客户端与所述即时通讯服务器之间的长连接,控制所述其他第二用户信息中的用户账号各自所使用的即时通讯客户端,接收所述即时通讯服务器发送的所述测试消息。
可选的,所述测试模块604,具体用于:
分别获取通过部分第二用户信息中的用户账号各自所使用的即时通讯客户端发送的多个测试消息,以及通过其他第二用户信息中的用户账号各自所使用的即时通讯客户端接收的多个测试消息;
根据所述发送的多个测试消息和所述接收的多个测试消息,对通信性能进行测试。
可选的,所述通信性能包括测试消息的到达率;
所述测试模块604,具体用于:
分别获取所述接收的多个测试消息的第一数量和所述发送的多个测试消息的第二数量;
根据所述第一数量和所述第二数量之间的比值,确定所述测试消息的到达率。
可选的,所述通信性能包括测试消息的延迟时间;
所述测试模块604,具体用于:
分别获取所述发送的多个测试消息各自对应的发送时间戳,以及所述接收的多个测试消息各自对应的接收时间戳;
根据所述发送时间戳和所述接收时间戳,确定所述测试消息的延迟时间。
本申请实施例提供的通信性能的测试装置60,可以执行上述任一实施例中的通信性能的测试方法的技术方案,其实现原理以及有益效果与通信性能的测试方法的实现原理及有益效果类似,可参见通信性能的测试方法的实现原理及有益效果,此处不再进行赘述。
图7为本申请实施例提供的一种终端设备70的结构示意图,示例的,请参见图7所示,该终端设备可以包括处理器701和存储器702;其中,
所述存储器702,用于存储计算机程序。
所述处理器701,用于读取所述存储器702存储的计算机程序,并根据所述存储器702中的计算机程序执行上述任一实施例中的通信性能的测试方法的技术方案。
可选地,存储器702既可以是独立的,也可以跟处理器701集成在一起。当存储器702是独立于处理器701之外的器件时,终端设备还可以包括:总线,用于连接存储器702和处理器701。
可选地,本实施例还包括:通信接口,该通信接口可以通过总线与处理器701连接。处理器701可以控制通信接口来实现上述终端设备的获取和发送的功能。
本申请实施例所示的终端设备,可以执行上述任一实施例中的通信性能的测试方法的技术方案,其实现原理以及有益效果与通信性能的测试方法的实现原理及有益效果类似,可参见通信性能的测试方法的实现原理及有益效果,此处不再进行赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述任一实施例中的通信性能的测试方法的技术方案,其实现原理以及有益效果与通信性能的测试方法的实现原理及有益效果类似,可参见通信性能的测试方法的实现原理及有益效果,此处不再进行赘述。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现上述任一实施例中的通信性能的测试方法的技术方案,其实现原理以及有益效果与通信性能的测试方法的实现原理及有益效果类似,可参见通信性能的测试方法的实现原理及有益效果,此处不再进行赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所展示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元展示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例方法的部分步骤。
应理解的是,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital SignalProcessor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (7)
1.一种通信性能的测试方法,其特征在于,应用于终端设备,所述方法包括:
获取用于登录被测即时通讯产品的多个第一用户信息,其中,每个第一用户信息均包括用户账号和密钥,所述被测即时通讯产品中的即时通讯客户端为通过所述终端设备上的代理模块模拟出的;
将所述多个第一用户信息发送给即时通讯服务器,并接收所述即时通讯服务器返回的多个第二用户信息对应的认证标识,所述认证标识用于表示所述第二用户信息中的用户账号和密钥认证通过,所述第二用户信息为所述第一用户信息中的部分用户信息或全部用户信息;
基于部分第二用户信息中的用户账号各自所使用的即时通讯客户端与所述即时通讯服务器之间的长连接,控制部分第二用户信息中的用户账号各自所使用的即时通讯客户端,向所述即时通讯服务器发送测试消息;
基于其他第二用户信息中的用户账号各自所使用的即时通讯客户端与所述即时通讯服务器之间的长连接,控制所述其他第二用户信息中的用户账号各自所使用的即时通讯客户端,接收所述即时通讯服务器发送的所述测试消息;
在向所述即时通讯服务器发送所述测试消息时,将消息中发送方标识、接收方标识、消息内容加上时间戳及发送标志发送至消息接收分析工具,在接收所述即时通讯服务器发送的所述测试消息时,将消息发送方标识、消息接收方标识、消息内容加上时间戳及接收标志发送至消息接收分析工具,以使消息接收分析工具将发送方发送的测试消息放入消息发送队列,将接收方接收到的测试消息放入消息接收队列中;
根据所述消息发送队列和所述消息接收队列,获取所述被测即时通讯产品的通信性能进行的测试结果;
所述根据所述消息发送队列和所述消息接收队列,获取所述被测即时通讯产品的通信性能进行的测试结果,包括:
基于所述消息接收队列获取所述接收的多个测试消息的第一数量,以及基于所述消息发送队列获取所述发送的多个测试消息的第二数量;
根据所述第一数量和所述第二数量之间的比值,确定所述测试消息的到达率;
基于所述消息发送队列,获取所述发送的多个测试消息各自对应的发送时间戳,以及基于所述消息接收队列,获取所述接收的多个测试消息各自对应的接收时间戳;
根据所述发送时间戳和所述接收时间戳,确定所述测试消息的延迟时间。
2.根据权利要求1所述的方法,其特征在于,所述获取用于登录被测即时通讯产品的多个第一用户信息,包括:
接收操作指令;
根据所述操作指令,向用户信息获取服务器并行发送多个请求消息;
接收所述用户信息获取服务器发送的与所述多个请求消息一一对应的多个第一用户信息。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
根据每个第二用户信息对应的认证标识以及所述每个第二用户信息中的用户账号,控制分别建立所述每个第二用户信息中的用户账号所使用的即时通讯客户端与即时通讯服务器之间的长连接;
根据所述长连接,控制部分所述第二用户信息中的用户账号所使用的即时通讯客户端,向其他第二用户信息中的用户账号所使用的即时通讯客户端发送所述测试消息。
4.一种通信性能的测试装置,其特征在于,包括:
获取模块,用于获取用于登录被测即时通讯产品的多个第一用户信息,其中,每个第一用户信息均包括用户账号和密钥,所述被测即时通讯产品中的即时通讯客户端为通过终端设备上的代理模块模拟出的;
发送模块,用于将所述多个第一用户信息发送给即时通讯服务器;
接收模块,用于接收所述即时通讯服务器返回的多个第二用户信息对应的认证标识,所述认证标识用于表示所述第二用户信息中的用户账号和密钥认证通过,所述第二用户信息为所述第一用户信息中的部分用户信息或全部用户信息;
所述发送模块,还用于基于部分第二用户信息中的用户账号各自所使用的即时通讯客户端与所述即时通讯服务器之间的长连接,控制部分第二用户信息中的用户账号各自所使用的即时通讯客户端,向所述即时通讯服务器发送测试消息;基于其他第二用户信息中的用户账号各自所使用的即时通讯客户端与所述即时通讯服务器之间的长连接,控制所述其他第二用户信息中的用户账号各自所使用的即时通讯客户端,接收所述即时通讯服务器发送的所述测试消息;
队列生成模块,用于在向所述即时通讯服务器发送所述测试消息时,将消息中发送方标识、接收方标识、消息内容加上时间戳及发送标志发送至消息接收分析工具,在接收所述即时通讯服务器发送的所述测试消息时,将消息发送方标识、消息接收方标识、消息内容加上时间戳及接收标志发送至消息接收分析工具,以使消息接收分析工具将发送方发送的测试消息放入消息发送队列,将接收方接收到的测试消息放入消息接收队列中;
测试模块,用于根据所述消息发送队列和所述消息接收队列,获取所述被测即时通讯产品的通信性能进行的测试结果;
所述测试模块,具体用于基于所述消息接收队列获取所述接收的多个测试消息的第一数量,以及基于所述消息发送队列获取所述发送的多个测试消息的第二数量;根据所述第一数量和所述第二数量之间的比值,确定所述测试消息的到达率;基于所述消息发送队列,获取所述发送的多个测试消息各自对应的发送时间戳,以及基于所述消息接收队列,获取所述接收的多个测试消息各自对应的接收时间戳;根据所述发送时间戳和所述接收时间戳,确定所述测试消息的延迟时间。
5.一种终端设备,其特征在于,包括处理器和存储器;其中,
所述存储器,用于存储计算机程序;
所述处理器,用于读取所述存储器存储的计算机程序,并根据所述存储器中的计算机程序执行上述权利要求1-3任一项所述的通信性能的测试方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述权利要求1-3任一项所述的通信性能的测试方法。
7.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时,实现上述权利要求1-3任一项所述的通信性能的测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110899558.8A CN113676372B (zh) | 2021-08-06 | 2021-08-06 | 通信性能的测试方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110899558.8A CN113676372B (zh) | 2021-08-06 | 2021-08-06 | 通信性能的测试方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113676372A CN113676372A (zh) | 2021-11-19 |
CN113676372B true CN113676372B (zh) | 2024-06-07 |
Family
ID=78541587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110899558.8A Active CN113676372B (zh) | 2021-08-06 | 2021-08-06 | 通信性能的测试方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113676372B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114969731B (zh) * | 2022-03-28 | 2022-12-02 | 慧之安信息技术股份有限公司 | 基于操作***的恶意软件检测方法和装置 |
CN115473913A (zh) * | 2022-07-28 | 2022-12-13 | 北京卡特加特智能科技有限公司 | 通讯路线建立方法、装置、电子设备及存储介质 |
CN115665078A (zh) * | 2022-10-26 | 2023-01-31 | 中国农业银行股份有限公司 | 一种消息收发性能测试方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539478A (zh) * | 2014-12-15 | 2015-04-22 | 微梦创科网络科技(中国)有限公司 | 一种针对即时通讯***的压力测试装置及方法 |
CN104978266A (zh) * | 2014-04-11 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 一种应用测试方法和装置 |
CN108733560A (zh) * | 2018-04-19 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 一种测试方法和装置 |
CN111026632A (zh) * | 2018-10-10 | 2020-04-17 | 武汉斗鱼网络科技有限公司 | 一种性能测试方法、存储介质、电子设备及*** |
CN111159000A (zh) * | 2019-12-30 | 2020-05-15 | 北京明朝万达科技股份有限公司 | 一种服务器性能测试方法、装置、设备以及存储介质 |
-
2021
- 2021-08-06 CN CN202110899558.8A patent/CN113676372B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978266A (zh) * | 2014-04-11 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 一种应用测试方法和装置 |
CN104539478A (zh) * | 2014-12-15 | 2015-04-22 | 微梦创科网络科技(中国)有限公司 | 一种针对即时通讯***的压力测试装置及方法 |
CN108733560A (zh) * | 2018-04-19 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 一种测试方法和装置 |
CN111026632A (zh) * | 2018-10-10 | 2020-04-17 | 武汉斗鱼网络科技有限公司 | 一种性能测试方法、存储介质、电子设备及*** |
CN111159000A (zh) * | 2019-12-30 | 2020-05-15 | 北京明朝万达科技股份有限公司 | 一种服务器性能测试方法、装置、设备以及存储介质 |
Non-Patent Citations (1)
Title |
---|
《企业即时通讯*** 服务器的设计与实现》;孟伟;《中国优秀硕士学位论文全文数据库》(第05期);正文第 44-51 页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113676372A (zh) | 2021-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113676372B (zh) | 通信性能的测试方法、装置和存储介质 | |
US7523198B2 (en) | Integrated testing approach for publish/subscribe network systems | |
Cheriton et al. | VMTP as the transport layer for high-performance distributed systems | |
CN110457199B (zh) | 性能测试的方法和装置 | |
US7934003B2 (en) | Method and system for monitoring performance of distributed applications | |
US20070150584A1 (en) | Apparatus, system, and method for determining server utilization in hosted computing infrastructure | |
US20080104230A1 (en) | Method And System For Monitoring Performance Of A Client-Server Architecture | |
CN103428042B (zh) | 对服务器进行压力测试的方法及*** | |
EP1907941A2 (en) | Distributed capture and aggregation of dynamic application usage information | |
US20080133739A1 (en) | Response time benchmarking | |
US8131530B2 (en) | Mechanism for realistic application/network modeling using a workload description | |
Moniz et al. | RITAS: Services for randomized intrusion tolerance | |
CN112448969A (zh) | 链路追踪方法、装置、***、设备及可读存储介质 | |
Koskinen et al. | Borderpatrol: isolating events for black-box tracing | |
US20050027853A1 (en) | System and method for collecting data regarding network service operation | |
Moniz et al. | Randomized intrusion-tolerant asynchronous services | |
Cinque et al. | An exploratory study on zeroconf monitoring of microservices systems | |
CN114928638B (zh) | 一种网络行为的解析方法、装置及监控设备 | |
CN115514682B (zh) | 一种数据传输方法、装置、设备及存储介质 | |
CN111427710A (zh) | 应用程序中组件的通信方法、装置、设备及存储介质 | |
CN116340111A (zh) | 一种Linux套接字监听事件监控方法及装置 | |
Wang et al. | Performance comparison and evaluation of websocket frameworks: Netty, undertow, vert. x, grizzly and jetty | |
JP2014026480A (ja) | 複数の情報システムおける出力比較方法 | |
US20230066835A1 (en) | Methods, systems and computer readable media for improving remote direct memory access performance | |
KR100439732B1 (ko) | 정보통신망에서 서비스품질 측정시스템을 이용한 공정성 보장장치 및 방법 |
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 |