一种压力测试的方法以及相关装置与流程

文档序号:18301334发布日期:2019-07-31 10:10阅读:174来源:国知局
一种压力测试的方法以及相关装置与流程

本申请涉及计算机技术领域,尤其涉及一种压力测试的方法以及相关装置。



背景技术:

随着互联网技术的飞速发展,对服务器的性能和稳定性的要求越来越高,因此经常需要对服务器进行压力测试以采集服务器性能指标及网络请求的处理速度情况等。比如,在游戏上线前,需要对游戏服务器进行压力测试,模拟开服时候大量玩家进入游戏的状况,从而提前发现解决问题。

目前,对服务器进行压力测试的方法通常需要人工编写机器人代码,通过运行机器人代码来模拟一些具体的场景,比如,多用户同时登陆的场景,多用户同时切换的场景,以及多用户同时战斗的场景等,从而得到服务器的压力测试结果。

然而,人工编写机器人代码往往需要耗费较多的时间和人力成本,而且编写的一套机器人代码只能针对某一个具体的场景进行压力测试,并不能真实模拟开服时大批量玩家进入游戏后的真实操作,由此导致服务器压力测试的效果较差。



技术实现要素:

本申请实施例提供了一种压力测试的方法以及相关装置,一方面无需耗费大量的时间和人力成本编写代码,另一方面,根据真实操作序列模拟客户端操作可以更加贴近实际情况,从而提升服务器压力测试的准确性。

有鉴于此,本申请第一方面提供一种压力测试的方法,包括:

获取第一操作序列文件,其中,所述第一操作序列文件为根据客户端与服务器之间的通信消息所生成的;

根据所述第一操作序列文件生成第二操作序列文件;

向多个待模拟对象发送所述第二操作序列文件,以使每个待模拟对象根据所述第二操作序列文件与所述服务器进行通信,其中,所述每个待模拟对象对应一个账号信息;

当所述每个待模拟对象与所述服务器完成通信时,获取所述服务器的压力测试结果。

在一种可能的设计中,在本申请实施例的第一方面的第一种实现方式中,所述获取第一操作序列文件,包括:

在所述客户端采用目标账号与所述服务器进行通信之后,获取消息录制文件,其中,所述目标账号为所述客户端在应用程序中创建的账号,所述消息录制文件为所述客户端采用录制工具录制得到的;

根据所述消息录制文件生成所述第一操作序列文件,其中,所述第一操作序列文件中包括多个操作信息。

在一种可能的设计中,在本申请实施例的第一方面的第二种实现方式中,所述根据所述第一操作序列文件生成第二操作序列文件,包括:

若获取到时序设置指令,则根据所述时序设置指令调整所述第一操作序列文件中操作信息的时序;

获取参数设置指令;

根据所述参数设置指令确定参数替换规则;

根据所述参数替换规则对所述第一操作序列文件进行处理,得到所述第二操作序列文件。

在一种可能的设计中,在本申请实施例的第一方面的第三种实现方式中,所述根据所述时序设置指令调整所述第一操作序列文件中操作信息的时序,包括:

根据所述时序设置指令确定第一操作信息与第二操作信息的时序关系,其中,所述第一操作信息与所述第二操作信息均属于所述第一操作序列文件中的所述操作信息;

根据所述第一操作信息与第二操作信息的时序关系,将所述第一操作信息设置于所述第二操作信息之前。

在一种可能的设计中,在本申请实施例的第一方面的第四种实现方式中,所述向多个待模拟对象发送所述第二操作序列文件,以使每个待模拟对象根据所述第二操作序列文件与所述服务器进行通信之前,所述方法还包括:

获取延迟设置指令,其中,所述延迟设置指令指示在预设时间内存在n个待模拟对象进行相同的操作,所述n为大于或等于1的整数;

所述向多个待模拟对象发送所述第二操作序列文件,以使每个待模拟对象根据所述第二操作序列文件与所述服务器进行通信,包括:

向所述多个待模拟对象发送所述第二操作序列文件以及所述延迟设置指令,以使所述n个待模拟对象在所述预设时间内,根据所述第二操作序列文件与所述服务器进行通信。

本申请第二方面提供一种压力测试装置,包括:

获取模块,用于获取第一操作序列文件,其中,所述第一操作序列文件为根据客户端与服务器之间的通信消息所生成的;

生成模块,用于根据所述获取模块获取的所述第一操作序列文件生成第二操作序列文件,其中,所述第二操作序列文件与所述第一操作序列文件具有不同的参数信息;

发送模块,用于向多个待模拟对象发送所述生成模块生成的所述第二操作序列文件,以使每个待模拟对象根据所述第二操作序列文件与所述服务器进行通信,其中,所述每个待模拟对象对应一个账号信息;

所述获取模块,还用于当所述每个待模拟对象与所述服务器完成通信时,获取所述服务器的压力测试结果。

在一种可能的设计中,在本申请实施例的第二方面的第一种实现方式中,

所述获取模块,具体用于在所述客户端采用目标账号与所述服务器进行通信之后,获取消息录制文件,其中,所述目标账号为所述客户端在应用程序中创建的账号,所述消息录制文件为所述客户端采用录制工具录制得到的;

根据所述消息录制文件生成所述第一操作序列文件,其中,所述第一操作序列文件中包括多个操作信息。

在一种可能的设计中,在本申请实施例的第二方面的第二种实现方式中,

所述生成模块,具体用于若获取到时序设置指令,则根据所述时序设置指令调整所述第一操作序列文件中操作信息的时序;

获取参数设置指令;

根据所述参数设置指令确定参数替换规则;

根据所述参数替换规则对所述第一操作序列文件进行处理,得到所述第二操作序列文件。

在一种可能的设计中,在本申请实施例的第二方面的第三种实现方式中,

所述生成模块,具体用于根据所述时序设置指令确定第一操作信息与第二操作信息的时序关系,其中,所述第一操作信息与所述第二操作信息均属于所述第一操作序列文件中的所述操作信息;

根据所述第一操作信息与第二操作信息的时序关系,将所述第一操作信息设置于所述第二操作信息之前。

在一种可能的设计中,在本申请实施例的第二方面的第四种实现方式中,

所述获取模块,还用于在所述发送模块向多个待模拟对象发送所述第二操作序列文件,以使每个待模拟对象根据所述第二操作序列文件与所述服务器进行通信之前,获取延迟设置指令,其中,所述延迟设置指令指示在预设时间内存在n个待模拟对象进行相同的操作,所述n为大于或等于1的整数;

所述发送模块,具体用于向所述多个待模拟对象发送所述第二操作序列文件以及所述延迟设置指令,以使所述n个待模拟对象在所述预设时间内,根据所述第二操作序列文件与所述服务器进行通信。

本申请第三方面提供一种电子设备,包括:存储器、收发器、处理器以及总线系统;

其中,所述存储器用于存储程序;

所述处理器用于执行所述存储器中的程序,包括如下步骤:

获取第一操作序列文件,其中,所述第一操作序列文件为根据客户端与服务器之间的通信消息所生成的;

根据所述第一操作序列文件生成第二操作序列文件,其中,所述第二操作序列文件与所述第一操作序列文件具有不同的参数信息;

向多个待模拟对象发送所述第二操作序列文件,以使每个待模拟对象根据所述第二操作序列文件与所述服务器进行通信,其中,所述每个待模拟对象对应一个账号信息;

当所述每个待模拟对象与所述服务器完成通信时,获取所述服务器的压力测试结果;

所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。

本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

本申请实施例中,提供了一种压力测试的方法,首先获取第一操作序列文件,第一操作序列文件为根据客户端与服务器之间的通信消息所生成的,然后根据第一操作序列文件生成第二操作序列文件,其中,第二操作序列文件与第一操作序列文件具有不同的参数信息,再向多个待模拟对象发送第二操作序列文件,以使每个待模拟对象根据第二操作序列文件与服务器进行通信,每个待模拟对象对应一个账号信息,当每个待模拟对象与服务器完成通信时,获取服务器的压力测试结果。通过上述方式,记录客户端与服务器之间的真实操作序列,然后根据真实操作序列生成模拟操作序列,最后采用模拟操作序列完成测试即可,一方面无需耗费大量的时间和人力成本编写代码,另一方面,根据真实操作序列模拟客户端操作可以更加贴近实际情况,从而提升服务器压力测试的准确性。

附图说明

图1为本申请实施例中压力测试系统的一个架构示意图;

图2为本申请实施例中压力测试的方法一个实施例示意图;

图3为本申请实施例中压力测试装置一个实施例示意图;

图4为本申请实施例中服务器一个实施例示意图;

图5为本申请实施例中终端设备一个实施例示意图。

具体实施方式

本申请实施例提供了一种压力测试的方法以及相关装置,一方面无需耗费大量的时间和人力成本编写代码,另一方面,根据真实操作序列模拟客户端操作可以更加贴近实际情况,从而提升服务器压力测试的准确性。

申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应理解,一款好的应用程序除了高质量的研发之外,还需要足够大的带宽和高性能的服务器作为有力后盾。本申请主要用于网络游戏的服务器压力测试场景,网络游戏压力测试从传统的意义来讲是对网络游戏的服务器不断施加“压力”的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。这里所指的“压力”即是不断地增加游戏里面的玩家。服务器主要承载游戏过程中玩家与游戏,以及玩家之间的互动所产生的流量。而压力测试则是将各种因素考虑到极点来对服务器进行专业性和系统性的测试,以便较大程度上改善系统的瓶颈和了解服务器承载量。可以理解的是,本申请中压力测试的对象除了可以是网络游戏,还可以是其他类型的应用程序,比如,即时通讯类应用,或者资讯类应用等,此处以网络游戏为例进行介绍,然而不应理解为对本申请的限定。

压力测试(stresstesting),也称为强度测试,通过模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性以及稳定性等。压力测试需要确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别。

为了便于理解,本申请提出了一种压力测试的方法,该方法应用于图1所示的压力测试系统,请参阅图1,图1为本申请实施例中压力测试系统的一个架构示意图,如图所示,以应用程序为网络游戏为例,在网络游戏上线之前,需要对游戏服务器进行压力测试,即需要模拟开服时候大量玩家进入游戏的状况,从而提前发现并解决问题。首先,在客户端侧采用一个账号登录游戏,然后玩家按照游戏流程完整地操作一遍,由客户端录制玩家的操作序列,其中,操作序列为客户端与游戏服务器之间的通信的消息序列。得到真实玩家的操作序列之后,可以对该操作序列进行设置,从而得到n个不同账号的操作序列,这n个操作序列具有相同的操作时序,差异仅仅体现先不同时刻进入游戏。将n个账号分别分配给n个不同的机器人,不同的机器人可以部署在不同的终端设备上,也可以部署在相同的终端设备上,图1中的n个机器人仅为一个示意,不应理解为对本申请的限定。n个机器人回放操作序列,从而模拟大量玩家进入游戏时的情况。

需要说明的是,客户端和机器人都可以部署于终端设备上,其中,终端设备包含但不仅限于平板电脑、笔记本电脑、掌上电脑、手机、语音交互设备及个人电脑(personalcomputer,pc),此处不做限定。

结合上述介绍,下面将对本申请中压力测试的方法进行介绍,请参阅图2,本申请实施例中压力测试的方法一个实施例包括:

101、获取第一操作序列文件,其中,第一操作序列文件为根据客户端与服务器之间的通信消息所生成的;

本实施例中,压力测试装置首先获取第一操作序列文件,可以理解的是,压力测试装置可以部署于在终端设备中,也可以部署在服务器中,还可以与客户端共同部署在同一个终端设备中,此处不进行限定。

用户可以在客户端侧注册一个账号,然后通过该账号按照预先设定好的操作流程进行相应的操作,操作的过程中,由客户端采用录制工具进行通信消息的录制,最后根据录制得到的通信消息生成第一操作序列文件。其中,通信消息可以是,客户端向服务器发送a指令,服务器根据a指令向客户端反馈一个b指令,即客户端与服务器之间进行交互通信时生成的消息。

102、根据第一操作序列文件生成第二操作序列文件;

本实施例中,压力测试装置对第一操作序列文件进行设置,设置的目的主要是为了调整第一操作序列文件中的参数信息,比如账号信息等,此外还可以设置第一操作序列文件中操作信息之间的出现时序,由此得到第二操作序列文件。

103、向多个待模拟对象发送第二操作序列文件,以使每个待模拟对象根据第二操作序列文件与服务器进行通信,其中,每个待模拟对象对应一个账号信息;

本实施例中,压力测试装置确定待模拟对象的数量之后,可以向每个待模拟对象发送第二操作序列文件,或者,由待模拟对象主动请求第二操作序列文件,压力测试装置根据待模拟对象的请求进行响应,从而下发第二操作序列文件。

每个待模拟对象根据第二操作序列文件中操作信息的序列与服务器进行通信。比如,有100个待模拟对象,这100个待模拟对象可以分别读取第二操作序列文件,然后根据预先设定的配置信息确定对应的账号信息,待模拟对象结合第二操作序列文件以及账号信息与服务器通信,每个待模拟对象对应唯一的一个账号信息,因此,具有100个账号信息。

其中,待模拟对象具体可以是指压力测试机器人,压力测试机器人采用记录用户的操作序列,并且采取回放操作序列的策略,可以模拟在开服时大批量用户进入应用程序后的真实情况,从而发现应用服务器的问题,评测服务器的性能。

104、当每个待模拟对象与服务器完成通信时,获取服务器的压力测试结果。

本实施例中,在每个待模拟对象与服务器完成通信之后,即可断开连接,完成相应的服务器压力测试。压力测试装置可以主动获取压力测试结果,也可以接收服务器反馈的压力测试结果,还可以直接记录压力测试结果。

本申请实施例中,提供了一种压力测试的方法,首先获取第一操作序列文件,第一操作序列文件为根据客户端与服务器之间的通信消息所生成的,然后根据第一操作序列文件生成第二操作序列文件,第二操作序列文件与第一操作序列文件具有不同的参数信息,再向多个待模拟对象发送第二操作序列文件,以使每个待模拟对象根据第二操作序列文件与服务器进行通信,每个待模拟对象对应一个账号信息,当每个待模拟对象与服务器完成通信时,获取服务器的压力测试结果。通过上述方式,记录客户端与服务器之间的真实操作序列,然后根据真实操作序列生成模拟操作序列,最后采用模拟操作序列完成测试即可,一方面无需耗费大量的时间和人力成本编写代码,另一方面,根据真实操作序列模拟客户端操作可以更加贴近实际情况,从而提升服务器压力测试的准确性。

可选地,在上述图2对应的实施例的基础上,本申请实施例提供的压力测试的方法第一个可选实施例中,获取第一操作序列文件,可以包括:

在客户端采用目标账号与服务器进行通信之后,获取消息录制文件,其中,目标账号为客户端在应用程序中创建的账号,消息录制文件为客户端采用录制工具录制得到的;

根据消息录制文件生成第一操作序列文件,其中,第一操作序列文件中包括多个操作信息。

本实施例中,介绍了一种压力测试装置获取第一操作序列文件的方式。具体地,首先在客户端是上建立一个目标账号,以角色扮演游戏(role-playinggame,rpg)为例,该目标账号可以为游戏账号,比如“00001”,用户按照新手引导流程使用该目标账号进行应用业务。通常情况下,rpg游戏的操作流程包括注册、选择服务器、创建角色、登录游戏、进入场景以及做任务等,其中,做任务可以是击杀怪物、采集物品以及找非玩家角色(non-playercharacter,npc)等。

在用户使用目标账号进行应用业务时,客户端会开启录制工具录制客户端和服务器之间的通信消息,其中,录制工具可集成在客户端里,录制工具的功能是收集客户端和服务器之间的通信消息,并且保存在消息录制文件里。假设业务进行1个小时,然后下线,那么消息录制文件里就包括这1个小时内客户端和服务器之间的通信消息。而通信消息就是客户端和服务器的通信内容,比如登录游戏时,客户端告诉服务器账号名为“jing”,密码为“1234”的目标账号想进入游戏,请求服务器进行处理,服务器接收该请求消息,然后告诉客户端能否能够登录,如果能登录,则服务器还可以继续告诉客户端有哪些角色可以被选择的消息。

压力测试装置将消息录制文件转化成可读的第一操作序列文件,也就是将通信消息转换为操作序列的格式。其中,第一操作序列文件中包括多个操作信息,为了便于说明,下面将以一个操作信息为例进行介绍。请参阅如下操作信息:

0:0:1.80/0/3/c/111

cgz6egmwmtesafonwjg3luhemyaor2lnywj5dgugvgvjag5vbg9nesbdby4siex0zc4p

其中,第一行以“/”拆分各个参数,第一个参数“0:0:1.80”表示时间,即时:分:秒。第二个参数“0”表示消息来源,比如回放服务器以及回放客户端可以不做区分,均设置为0。第三个参数“3”表示协议类型,比如传输控制协议(transmissioncontrolprotocol)、快速可靠网络传输协议(kcp)、实时传送协议(real-timetransportprotocol,rcp)以及默认协议等。第四个参数“c”表示操作信息的发起者,比如服务器或者客户端。第五个参数“111”表示操作信息的标识(identity,id)。

第二行是采用基本(base)64编码得到的二级制数据,采用protobuf解码可以得到原来的通信消息。

可以理解的是,录制工具可以是录制视频的工具,也可以是录制音频的工具。若录制工具录制的对象是音频,则通信消息就是音频消息,待模拟对象就是播音机。

其次,本申请实施例中,提供了一种获取第一操作序列文件的方式,即在客户端采用目标账号与服务器进行通信之后,获取消息录制文件,其中,目标账号为客户端在应用程序中创建的账号,消息录制文件为客户端采用录制工具录制得到的,然后根据消息录制文件生成第一操作序列文件,其中,第一操作序列文件中包括多个操作信息。通过上述方式,可以利用客户端侧的消息录制工具录制操作序列文件,无需手动编写操作代码,此外,在出现应用程序版本更新的时候,只需要重新录制一遍用户操作即可,从而节省了大量的时间和成本。而且在录制操作序列文件的过程中,可以选择录制完成的操作流程,也可以选择只录制某个功能的操作流程,由此提升方案的灵活性。

可选地,在上述图2对应的实施例的基础上,本申请实施例提供的压力测试的方法第二个可选实施例中,根据第一操作序列文件生成第二操作序列文件,可以包括:

若获取到时序设置指令,则根据时序设置指令调整第一操作序列文件中操作信息的时序;

获取参数设置指令;

根据参数设置指令确定参数替换规则;

根据参数替换规则对第一操作序列文件进行处理,得到第二操作序列文件。

本实施例中,将介绍如何对第一操作序列文件进行设置。根据生成的第一操作序列文件,可以检查第一操作序列文件中操作信息的顺序,具体地,可以采用人工检查的方式,也可以由压力测试装置自动进行检查。如果检测出有需要调整时序的操作信息,则触发时序设置指令,压力测试装置响应于该指令,然后根据时序设置指令调整第一操作序列文件中操作信息的时序。其中,需要调整时序的操作信息往往应满足某些规则,比如,必须在接收到登录结果返回消息,才能选择下一步是进入游戏还是注册账号。

此外,还需要设置一套参数替换规则,具体地,由于录制时采用的是目标账号(比如账号00001),而在待模拟对象模拟操作时,采用的是另外的账号(比如00002),于是需要设置参数替换规则将第一操作序列文件中的账号信息进行更新,即通过设计代码,来根据参数替换规则把录制时用到的参数转换成实际回放时的参数,从而可以得到第二操作序列文件。

为了便于理解,下面将以一个应用场景为例进行解释,假设客户端使用道具需要告诉服务器道具id以及账号id,录制时账号a的道具id是1,账号id是1001,回放时,账号b的道具id是1,账号id是2001,因此,设计的代码为将道具id从账号id1001更新为账号id2001,回放的时候把账号id2001发给服务器,这样使用这个道具时才不会出错。

需要替换的参数一般是账号身上独有的东西,比如道具或者武将等,替换的要求是能正常使用道具和武将。

其次,本申请实施例中,提供了一种根据第一操作序列文件生成第二操作序列文件的方式,若获取到时序设置指令,则根据时序设置指令调整第一操作序列文件中操作信息的时序,获取参数设置指令,然后根据参数设置指令确定参数替换规则,最后根据参数替换规则对第一操作序列文件进行处理,得到第二操作序列文件。通过上述方式,用户可以手动设置操作序列中的参数以及时序等信息,从而能够更加接近测试场景,由此提升方案的灵活性。

可选地,在上述图2对应的第二个实施例的基础上,本申请实施例提供的压力测试的方法第三个可选实施例中,根据时序设置指令调整第一操作序列文件中操作信息的时序,可以包括:

根据时序设置指令确定第一操作信息与第二操作信息的时序关系,其中,第一操作信息与第二操作信息均属于第一操作序列文件中的操作信息;

根据第一操作信息与第二操作信息的时序关系,将第一操作信息设置于第二操作信息之前。

本实施例中,介绍了一种调整第一操作序列文件中操作信息时序的方式。在实际应用中,需要依赖于一些特定顺序的操作信息。当用户根据测试内容触发时序设置指令时,压力测试装置根据时序设置指令可以确定第一操作信息与第二操作信息的时序关系,第一操作信息与第二操作信息均属于第一操作序列文件中的操作信息,于是,压力测试装置将第一操作信息设置于第二操作信息之前。

具体地,假设在测试切换场景下的服务器压力情况时,客户端必须接收到服务器下发的场景创建成功指令后才能进行下一步,那么第一操作信息为服务器下发的场景创建成功指令,第二操作信息为客户端完成场景切换。又假设在测试战斗场景下的服务器压力情况时,客户端在战斗结束后必须接收到战斗结果才能进行下一步,那么第一操作信息为服务器下发的战斗结果,第二操作信息为客户端展示战斗结果。

在待模拟对象进行行为模拟的时候,尽量模拟真实玩家的操作,这样可以使得压力测试结果更准确。比如做任务的时候需要寻路,或者杀怪的时候需要寻路,还是需要待模拟对象走过去,做任务的时候选取对应的怪npc谈话。

进行压力测试的待模拟对象和服务器避免在一台机器上,可以分多台机器测试。然后根据日志查看服务器那些逻辑比较耗时,最大可以支撑多少人在线,带宽多大。为了节省带宽,就需要针对那些频繁发送的协议做下优化。还有些不需要频繁发送的协议就可以减少发送次数。

再次,本申请实施例中,提供了一种设置操作信息的时序的方式,即根据时序设置指令确定第一操作信息与第二操作信息的时序关系,然后根据第一操作信息与第二操作信息的时序关系,将第一操作信息设置于第二操作信息之前。通过上述方式,用户可以手动设置操作序列中的时序等信息,从而能够更加接近测试场景,由此提升方案的灵活性。

可选地,在上述图2对应的实施例的基础上,本申请实施例提供的压力测试的方法第四个可选实施例中,向多个待模拟对象发送第二操作序列文件,以使每个待模拟对象根据第二操作序列文件与服务器进行通信之前,还可以包括:

获取延迟设置指令,其中,延迟设置指令指示在预设时间内存在n个待模拟对象进行相同的操作,n为大于或等于1的整数;

向多个待模拟对象发送第二操作序列文件,以使每个待模拟对象根据第二操作序列文件与服务器进行通信,可以包括:

向多个待模拟对象发送第二操作序列文件以及延迟设置指令,以使n个待模拟对象在预设时间内,根据第二操作序列文件与服务器进行通信。

本实施例中,介绍了一种利用待模拟对象进行测试的方法。首先需要生成预设数量的待模拟对象,其中,预设数量为n。比如要模拟1000个玩家在玩游戏,那可以将n设置为1000,于是开启1000个待模拟对象进行压力测试,其中,m是是在配置表里配置的。

如表1所示,表1是为待模拟对象设定的配置表的一个示意。

表1

如表1所示,需要为每个待模拟对象分配一个账号id,并且设定m值,在实际情况下,还可以将m设定为其他整数值,此处仅为一个示意,不应理解为对本申请的限定。

压力测试装置获取延迟设置指令,然后根据该延迟设置指令可以确定在预设时间内存在n个待模拟对象进行相同的操作,其中,n为大于或等于1,且小于或等于m的整数。假设m为1000,n可以设置为50,预设时间为1秒,也就是说在压力测试的过程中,模拟每秒内有50个玩家登录账号(即连接游戏服务器)。可以理解的是,设定延迟是为了模拟真实情况,正常来说,玩家进入游戏也是一批批的,不会在某一个点同时进入,所以需要按照延迟启动n个待模拟对象。

m个待模拟对象按照第二操作序列文件中的操作序列和时间间隔收发消息,其中,时间间隔就是录制时产生的时间间隔,比如录制时是在进入游戏后第5秒使用了一个礼包,那么待模拟对象在回放的时候也是按照这个间隔,在进入游戏后第5秒使用了一个礼包。这样可以保证m个待模拟对象操作是一样的。在m个待模拟对象都完成模拟操作时,即可断开游戏连接,至此,服务器的压力测试完毕。

其次,本申请实施例中,提供了一种根据需求设定测试模式的方式,首先获取延迟设置指令,然后向多个待模拟对象发送第二操作序列文件以及延迟设置指令,以使n个待模拟对象在预设时间内,根据第二操作序列文件与服务器进行通信。通过上述方式,能够真实地模拟出开服时,大量用户进入应用服务器时的状况,从而提升方案的实用性和适应性。

下面对本申请中的压力测试装置进行详细描述,请参阅图3,图3为本申请实施例中压力测试装置一个实施例示意图,压力测试装置20包括:

获取模块201,用于获取第一操作序列文件,其中,第一操作序列文件为根据客户端与服务器之间的通信消息所生成的;

生成模块202,用于根据获取模块201获取的第一操作序列文件生成第二操作序列文件,其中,第二操作序列文件与第一操作序列文件具有不同的参数信息;

发送模块203,用于向多个待模拟对象发送生成模块202生成的第二操作序列文件,以使每个待模拟对象根据第二操作序列文件与服务器进行通信,其中,每个待模拟对象对应一个账号信息;

获取模块201,还用于当每个待模拟对象与服务器完成通信时,获取服务器的压力测试结果。

本实施例中,获取模块201获取第一操作序列文件,其中,第一操作序列文件为根据客户端与服务器之间的通信消息所生成的,生成模块202根据获取模块201获取的第一操作序列文件生成第二操作序列文件,其中,第二操作序列文件与第一操作序列文件具有不同的参数信息,发送模块203向多个待模拟对象发送生成模块202生成的第二操作序列文件,以使每个待模拟对象根据第二操作序列文件与服务器进行通信,其中,每个待模拟对象对应一个账号信息,当每个待模拟对象与服务器完成通信时,获取模块201获取服务器的压力测试结果。

本申请实施例中,提供了一种压力测试的方法,首先获取第一操作序列文件,第一操作序列文件为根据客户端与服务器之间的通信消息所生成的,然后根据第一操作序列文件生成第二操作序列文件,第二操作序列文件与第一操作序列文件具有不同的参数信息,再向多个待模拟对象发送第二操作序列文件,以使每个待模拟对象根据第二操作序列文件与服务器进行通信,每个待模拟对象对应一个账号信息,当每个待模拟对象与服务器完成通信时,获取服务器的压力测试结果。通过上述方式,记录客户端与服务器之间的真实操作序列,然后根据真实操作序列生成模拟操作序列,最后采用模拟操作序列完成测试即可,一方面无需耗费大量的时间和人力成本编写代码,另一方面,根据真实操作序列模拟客户端操作可以更加贴近实际情况,从而提升服务器压力测试的准确性。

可选地,在上述图3所对应的实施例的基础上,本申请实施例提供的压力测试装置20的另一实施例中,

获取模块201,具体用于在客户端采用目标账号与服务器进行通信之后,获取消息录制文件,其中,目标账号为客户端在应用程序中创建的账号,消息录制文件为客户端采用录制工具录制得到的;

根据消息录制文件生成第一操作序列文件,其中,第一操作序列文件中包括多个操作信息。

其次,本申请实施例中,提供了一种获取第一操作序列文件的方式,即在客户端采用目标账号与服务器进行通信之后,获取消息录制文件,其中,目标账号为客户端在应用程序中创建的账号,消息录制文件为客户端采用录制工具录制得到的,然后根据消息录制文件生成第一操作序列文件,其中,第一操作序列文件中包括多个操作信息。通过上述方式,可以利用客户端侧的消息录制工具录制操作序列文件,无需手动编写操作代码,此外,在出现应用程序版本更新的时候,只需要重新录制一遍用户操作即可,从而节省了大量的时间和成本。而且在录制操作序列文件的过程中,可以选择录制完成的操作流程,也可以选择只录制某个功能的操作流程,由此提升方案的灵活性。

可选地,在上述图3所对应的实施例的基础上,本申请实施例提供的压力测试装置20的另一实施例中,

生成模块202,具体用于若获取到时序设置指令,则根据时序设置指令调整第一操作序列文件中操作信息的时序;

获取参数设置指令;

根据参数设置指令确定参数替换规则;

根据参数替换规则对第一操作序列文件进行处理,得到第二操作序列文件。

其次,本申请实施例中,提供了一种根据第一操作序列文件生成第二操作序列文件的方式,若获取到时序设置指令,则根据时序设置指令调整第一操作序列文件中操作信息的时序,获取参数设置指令,然后根据参数设置指令确定参数替换规则,最后根据参数替换规则对第一操作序列文件进行处理,得到第二操作序列文件。通过上述方式,用户可以手动设置操作序列中的参数以及时序等信息,从而能够更加接近测试场景,由此提升方案的灵活性。

可选地,在上述图3所对应的实施例的基础上,本申请实施例提供的压力测试装置20的另一实施例中,

生成模块202,具体用于根据时序设置指令确定第一操作信息与第二操作信息的时序关系,其中,第一操作信息与第二操作信息均属于第一操作序列文件中的操作信息;

根据第一操作信息与第二操作信息的时序关系,将第一操作信息设置于第二操作信息之前。

再次,本申请实施例中,提供了一种设置操作信息的时序的方式,即根据时序设置指令确定第一操作信息与第二操作信息的时序关系,然后根据第一操作信息与第二操作信息的时序关系,将第一操作信息设置于第二操作信息之前。通过上述方式,用户可以手动设置操作序列中的时序等信息,从而能够更加接近测试场景,由此提升方案的灵活性。

可选地,在上述图3所对应的实施例的基础上,本申请实施例提供的压力测试装置20的另一实施例中,

获取模块201,还用于在发送模块向多个待模拟对象发送第二操作序列文件,以使每个待模拟对象根据第二操作序列文件与服务器进行通信之前,获取延迟设置指令,其中,延迟设置指令指示在预设时间内存在n个待模拟对象进行相同的操作,n为大于或等于1的整数;

发送模块203,具体用于向多个待模拟对象发送第二操作序列文件以及延迟设置指令,以使n个待模拟对象在预设时间内,根据第二操作序列文件与服务器进行通信。

其次,本申请实施例中,提供了一种根据需求设定测试模式的方式,首先获取延迟设置指令,然后向多个待模拟对象发送第二操作序列文件以及延迟设置指令,以使n个待模拟对象在预设时间内,根据第二操作序列文件与服务器进行通信。通过上述方式,能够真实地模拟出开服时,大量用户进入应用服务器时的状况,从而提升方案的实用性和适应性。

图4是本申请实施例提供的一种服务器结构示意图,该服务器300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在服务器300上执行存储介质330中的一系列指令操作。

服务器300还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述实施例中由服务器所执行的步骤可以基于该图4所示的服务器结构。

在本申请实施例中,该服务器所包括的cpu322还具有以下功能:

获取第一操作序列文件,其中,所述第一操作序列文件为根据客户端与服务器之间的通信消息所生成的;

根据所述第一操作序列文件生成第二操作序列文件;

向多个待模拟对象发送所述第二操作序列文件,以使每个待模拟对象根据所述第二操作序列文件与所述服务器进行通信,其中,所述每个待模拟对象对应一个账号信息;

当所述每个待模拟对象与所述服务器完成通信时,获取所述服务器的压力测试结果。

可选地,cpu322具体用于执行如下步骤:

在所述客户端采用目标账号与所述服务器进行通信之后,获取消息录制文件,其中,所述目标账号为所述客户端在应用程序中创建的账号,所述消息录制文件为所述客户端采用录制工具录制得到的;

根据所述消息录制文件生成所述第一操作序列文件,其中,所述第一操作序列文件中包括多个操作信息。

可选地,cpu322具体用于执行如下步骤:

若获取到时序设置指令,则根据所述时序设置指令调整所述第一操作序列文件中操作信息的时序;

获取参数设置指令;

根据所述参数设置指令确定参数替换规则;

根据所述参数替换规则对所述第一操作序列文件进行处理,得到所述第二操作序列文件。

可选地,cpu322具体用于执行如下步骤:

根据所述时序设置指令确定第一操作信息与第二操作信息的时序关系,其中,所述第一操作信息与所述第二操作信息均属于所述第一操作序列文件中的所述操作信息;

根据所述第一操作信息与第二操作信息的时序关系,将所述第一操作信息设置于所述第二操作信息之前。

可选地,cpu322还用于执行如下步骤:

获取延迟设置指令,其中,所述延迟设置指令指示在预设时间内存在n个待模拟对象进行相同的操作,所述n为大于或等于1的整数;

所述向多个待模拟对象发送所述第二操作序列文件,以使每个待模拟对象根据所述第二操作序列文件与所述服务器进行通信,包括:

向所述多个待模拟对象发送所述第二操作序列文件以及所述延迟设置指令,以使所述n个待模拟对象在所述预设时间内,根据所述第二操作序列文件与所述服务器进行通信。

本申请实施例还提供了另一种图像显示控制装置,如图5所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(personaldigitalassistant,pda)、销售终端设备(pointofsales,pos)、车载电脑等任意终端设备,以终端设备为手机为例:

图5示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图5,手机包括:射频(radiofrequency,rf)电路410、存储器420、输入单元430、显示单元440、传感器450、音频电路460、无线保真(wirelessfidelity,wifi)模块470、处理器480、以及电源490等部件。本领域技术人员可以理解,图5中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图5对手机的各个构成部件进行具体的介绍:

rf电路410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器480处理;另外,将设计上行的数据发送给基站。通常,rf电路410包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,lna)、双工器等。此外,rf电路410还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte)、电子邮件、短消息服务(shortmessagingservice,sms)等。

存储器420可用于存储软件程序以及模块,处理器480通过运行存储在存储器420的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元430可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元430可包括触控面板431以及其他输入设备432。触控面板431,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板431上或在触控面板431附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板431可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器480,并能接收处理器480发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板431。除了触控面板431,输入单元430还可以包括其他输入设备432。具体地,其他输入设备432可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元440可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元440可包括显示面板441,可选的,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板441。进一步的,触控面板431可覆盖显示面板441,当触控面板431检测到在其上或附近的触摸操作后,传送给处理器480以确定触摸事件的类型,随后处理器480根据触摸事件的类型在显示面板441上提供相应的视觉输出。虽然在图5中,触控面板431与显示面板441是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板431与显示面板441集成而实现手机的输入和输出功能。

手机还可包括至少一种传感器450,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板441的亮度,接近传感器可在手机移动到耳边时,关闭显示面板441和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路460、扬声器461,传声器462可提供用户与手机之间的音频接口。音频电路460可将接收到的音频数据转换后的电信号,传输到扬声器461,由扬声器461转换为声音信号输出;另一方面,传声器462将收集的声音信号转换为电信号,由音频电路460接收后转换为音频数据,再将音频数据输出处理器480处理后,经rf电路410以发送给比如另一手机,或者将音频数据输出至存储器420以便进一步处理。

wifi属于短距离无线传输技术,手机通过wifi模块470可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图5示出了wifi模块470,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器480是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器420内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器480可包括一个或多个处理单元;可选的,处理器480可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器480中。

手机还包括给各个部件供电的电源490(比如电池),可选的,电源可以通过电源管理系统与处理器480逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。

在本申请实施例中,该终端设备所包括的处理器480还具有以下功能:

获取第一操作序列文件,其中,所述第一操作序列文件为根据客户端与服务器之间的通信消息所生成的;

根据所述第一操作序列文件生成第二操作序列文件;

向多个待模拟对象发送所述第二操作序列文件,以使每个待模拟对象根据所述第二操作序列文件与所述服务器进行通信,其中,所述每个待模拟对象对应一个账号信息;

当所述每个待模拟对象与所述服务器完成通信时,获取所述服务器的压力测试结果。

可选地,处理器480具体用于执行如下步骤:

在所述客户端采用目标账号与所述服务器进行通信之后,获取消息录制文件,其中,所述目标账号为所述客户端在应用程序中创建的账号,所述消息录制文件为所述客户端采用录制工具录制得到的;

根据所述消息录制文件生成所述第一操作序列文件,其中,所述第一操作序列文件中包括多个操作信息。

可选地,处理器480具体用于执行如下步骤:

若获取到时序设置指令,则根据所述时序设置指令调整所述第一操作序列文件中操作信息的时序;

获取参数设置指令;

根据所述参数设置指令确定参数替换规则;

根据所述参数替换规则对所述第一操作序列文件进行处理,得到所述第二操作序列文件。

可选地,处理器480具体用于执行如下步骤:

根据所述时序设置指令确定第一操作信息与第二操作信息的时序关系,其中,所述第一操作信息与所述第二操作信息均属于所述第一操作序列文件中的所述操作信息;

根据所述第一操作信息与第二操作信息的时序关系,将所述第一操作信息设置于所述第二操作信息之前。

可选地,处理器480还用于执行如下步骤:

获取延迟设置指令,其中,所述延迟设置指令指示在预设时间内存在n个待模拟对象进行相同的操作,所述n为大于或等于1的整数;

所述向多个待模拟对象发送所述第二操作序列文件,以使每个待模拟对象根据所述第二操作序列文件与所述服务器进行通信,包括:

向所述多个待模拟对象发送所述第二操作序列文件以及所述延迟设置指令,以使所述n个待模拟对象在所述预设时间内,根据所述第二操作序列文件与所述服务器进行通信。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1