一种针对即时通讯系统的压力测试装置及方法

文档序号:8225907阅读:937来源:国知局
一种针对即时通讯系统的压力测试装置及方法
【技术领域】
[0001]本发明涉及网络通信技术领域,尤其涉及一种针对即时通讯系统的压力测试装置及方法。
【背景技术】
[0002]压力测试是对系统进行评估的一种方式,通过搭建与实际使用环境类似的测试环境,用测试程序在同一时间内或某一时间段内,向系统发送预期数量的交易请求,测试系统在不同压力情况下的效率状况,以及系统可承受压力情况,然后帮助查找性能瓶颈,并对系统作出评估。
[0003]现在比较流行的性能测试工具有LoadRunner,它是惠普推出的一种预测系统行为和性能的负载测试工具,通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。
[0004]LoadRunner执行压测时需要编辑复杂的脚本,且软件占用系统资源较多,目前稳定版本都是windows系统下的,跨平台性较弱,对于类似于即时通讯这样的协议来说一台压测机的吞吐量是不够的,因此多机器联调压测成了 LoadRunner在某些场合下面临的又一个问题。
[0005]Ab (Apache Bench)是Apache服务器自带的压力测试工具,Ab是Apache的一个安装组件,所以需要安装Apache后才可以使用,该命令位于Apache安装目录下的bin文件夹中,Ab专门用于HTTP Server的压力测试,可以同时模拟多个并发请求,Ab的设计意图是描绘当前所安装的Apache的执行性能,主要是显示所安装的Apache每秒可以处理多少个请求。虽然Ab不像LR(LoadRunner)那么强大,但它足够轻便,做一些场景比较简单的测试,Ab是个不错的选择。但是Ab只能做一些简单的场景测试,采用终端命令的方式进行测试,测试结果可视化效果不强。
[0006]对于类似于即时通讯这样的系统来说,在压力测试方面就与其他种类的压力测试表现出许多不同。首先需要介绍即时通讯系统的压力测试过程需要用到的几个术语:
[0007]上线:是指用户向服务端发起登录请求。
[0008]心跳:用户在登录的状态下,每到一定时间间隔会发送维持在线的信息到服务端,服务端由此判断是否应给用户推送消息,心跳过程用户不会感知。
[0009]ACK(Acknowledgement,确认字符):如果接收方成功的接收到数据,那么会回复一个ACK数据到服务端。
[0010]相对于其他压力测试,即时通讯系统的压力测试区别在于:
[0011]—、响应时间相对较难计算。一般的压力测试,响应时间是压测机发起请求到收到响应的时间间隔,但即时通讯的响应时间是发送方发送请求到接收方接收到请求的时间间隔。
[0012]二、压测机会消耗更大的网卡流量。简单的请求响应,有较少的上行流量和较多的下行流量,而即时消息无论是在上行还是下行都有较大的流量(如图片语音等),往往一台测试机的网卡是不够用的。
[0013]三、更难模拟用户行为。即时通讯系统在压力测试过程中往往还要维持用户的上线和心跳,才能保证接收到实时消息。
[0014]由上可知,现有技术在针对即时通讯系统的压力测试方面还不尽如人意,因此如何针对即时通讯系统设置出新的测试方法和装置,成为技术人员需要考虑的问题。

【发明内容】

[0015]本发明所要解决的技术问题是提供一种针对即时通讯系统的压力测试装置及方法,用以真实、准确地实现即时通讯系统的压力测试。
[0016]为了解决上述技术问题,本发明实施例提供一种针对即时通讯系统的压力测试装置,用于对被测服务端进行压力测试,所述装置包括:
[0017]上线和心跳模块,用于向即时通信系统的被测服务端发送设定数量用户的上线和心跳?目息;
[0018]发送端模块,用于在设定数量的用户全部上线后,按照设置的测试条件模拟用户向所述被测服务端发送即时消息;
[0019]接收端模块,用于模拟在线用户接收到即时消息后,向所述被测服务端返回确认消息,并记录当前即时消息对应的日志信息;
[0020]日志系统模块,用于存储压力测试过程中的日志信息;
[0021]日志分析模块,用于根据日志系统模块中存储的日志信息评估所述被测服务端的性能。
[0022]另一方面,本发明实施例提供一种针对即时通讯系统的压力测试方法,用于对被测服务端进行压力测试,所述方法包括:
[0023]向即时通信系统的被测服务端发送设定数量用户的上线和心跳信息;
[0024]在设定数量的用户全部上线后,按照设置的测试条件模拟用户向所述被测服务端发送即时消息;
[0025]模拟在线用户接收到即时消息后,向所述被测服务端返回确认消息,并记录当前即时消息对应的日志信息;
[0026]根据记录的压力测试过程中的日志信息评估所述被测服务端的性能。
[0027]上述技术方案具有如下有益效果:本发明的压力测试装置及方法是主要针对即时通讯系统的压力测试,在准确性方面,通过向被测服务端发送设定数量用户的上线和心跳信息,这样就能更好的模拟用户行为,使其在模拟真实用户方面要比现有的其他装置和方法严谨,从而能更准确的测出被测服务端的性能。在响应时间相方面,模拟在线用户接收到携带时间戳的即时消息后,根据携带的时间戳确定当前即时消息的响应时间,从而得出响应时间,这样就有效的解决了响应时间难计算的问题。在可视化方面,全局可视化过程通过web (网页)页面展示,所以只需在局域网内浏览器就可以直接操作,其中,浏览器不仅可以是PC端的浏览器,同时也可是移动设备浏览器,这样就可使用户的使用更加方便。跨平台方面,数据传输过程使用了远程过程调用协议,因此具有很好的跨平台性,同时可以很好的支持多台测试机联调,这样就可有效的减少了网卡的使用量。
【附图说明】
[0028]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0029]图1为本发明一个优选实施例的压力测试装置结构示意图;
[0030]图2为本发明又一个优选实施例的压力测试装置结构示意图;
[0031]图3为本发明又一个优选实施例的压力测试装置结构示意图;
[0032]图4为本发明一个优选实施例的压力测试方法流程图;
[0033]图5为本发明一个应用实例的压力测试方法流程图。
【具体实施方式】
[0034]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035]本发明的主要思想是针对即时通讯系统的特点,设置新的压力测试装置及方法。具体为,通过设定被测服务端的上线和心跳后,并向其发送即时消息,模拟在线用户接收到即时消息后,向被测发无端返回确认消息;并通过对日志的分析来评估被测服务端的性能。这样就能更真实的模拟用户进行测试,从而实现对被测服务端更加准确的评估。
[0036]参照图1所示,为本发明一个优选实施例的压力测试装置结构示意图,所述压力测试装置用于对被测服务端进行压力测试,所述压力测试装置包括:
[0037]上线和心跳模块101,用于向即时通信系统的被测服务端发送设定数量用户的上线和心跳彳目息;
[0038]发送端模块102,用于在设定数量的用户全部上线后,按照设置的测试条件模拟用户向所述被测服务端发送即时消息;
[0039]接收端模块103,用于模拟在线用户接收到即时消息后,向所述被测服务端返回确认消息,并记录当前即时消息对应的日志信息;
[0040]日志系统模块104,用于存储压力测试过程中的日志信息;
[0041]日志分析模块105,用于根据日志系统模块104中存储的日志信息评估所述被测服务端的性能。
[0042]需要指出的是,发送端模块102发送的即时消息中携带有时间戳;以及所述接收端模块103,在模拟在线用户接收到携带时间戳的即时消息后,根据携带的时间戳确定当前即时消息的响应时间,这样就可以计算出被测服务端响应的准确时间,方便日志分析模块105对日志的分析。同时,将所述响应时间记录在当前即时消息的日志信息中,方便用于查找和后续分析。所述日志分析模块105评估得到的所述被测服务端的性能包括不限于平均响应时间,这样就能方便用户很直观的了解被测服务端的性能。
[0043]其中,所述发送端模块102依据的测试条件包括:消息格式及其所占比率、发送速率以及接收方在线率。发送消息格式可以是,图片、文字、语音或其他即时通讯系统可能用到的消息格式
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1