CN110034972A - 服务器压力测试方法和装置 - Google Patents

服务器压力测试方法和装置 Download PDF

Info

Publication number
CN110034972A
CN110034972A CN201910220209.1A CN201910220209A CN110034972A CN 110034972 A CN110034972 A CN 110034972A CN 201910220209 A CN201910220209 A CN 201910220209A CN 110034972 A CN110034972 A CN 110034972A
Authority
CN
China
Prior art keywords
data packet
application
test
server
robot
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
Application number
CN201910220209.1A
Other languages
English (en)
Other versions
CN110034972B (zh
Inventor
许浩均
邱广
曾平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tencent Information Technology Co Ltd
Original Assignee
Shenzhen Tencent Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Tencent Information Technology Co Ltd filed Critical Shenzhen Tencent Information Technology Co Ltd
Priority to CN201910220209.1A priority Critical patent/CN110034972B/zh
Publication of CN110034972A publication Critical patent/CN110034972A/zh
Application granted granted Critical
Publication of CN110034972B publication Critical patent/CN110034972B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Abstract

本发明公开了一种服务器压力测试方法和装置,属于计算机技术领域,用于缩短服务器压力测试的准备周期,提升压力测试效果。该方法包括:获取待发送应用数据包,所述待发送应用数据包为应用被使用过程中发送给应用服务器的数据包;针对压测机器人群组中的每一个压测机器人,分别基于所述应用数据包生成测试数据包,所述压测机器人用于模拟应用被使用过程中的应用数据包发送方;并,分别调用每一个压测机器人的发送接口,将生成的各个测试数据包发送给所述应用服务器,以基于多个测试数据包对所述应用服务器的压力性能进行测试。

Description

服务器压力测试方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种服务器压力测试方法和装置。
背景技术
在应用使用过程中,可能存在成千上万的用户同时对应用服务器进行访问,应用服务器可能由于负载压力过大而导致响应迟缓或者宕机等情况,严重影响应用的使用体验,因此,应用服务器的压力测试(Stress Test)是必要且十分重要的环节。压力测试,或称为负载测试,是确定服务器系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察服务器的功能极限和隐患。例如对于网络游戏的服务器压力测试,可以对网络游戏的服务器不断施加压力,以通过确定网络游戏的服务器的瓶颈或者不能接受的性能点,来获得网络游戏的服务器能提供的最大服务级别。一般在网络游戏上市前,游戏研发团队或运营商都会对其进行压力测试,以了解游戏服务器的承受能力,例如可以包括游戏服务器的用户承受能力以及流量承受等,从而更好的有目的进行研发或运营。
而现有技术中,在进行服务器压力测试时,通常是需要预先设计好测试用例,然后通过压测机器人执行测试用例以进行测试。但是现有的测试用例的设计通常是测试人员了解每个游戏场景的协议数据包的发送时序,以及每种协议数据包的全部字段后进行设计,必要时还需要与游戏开发人员进行沟通,这就需要大量的沟通成本和时间成本,测试前期准备周期较长,并且在人工填充协议数据包的字段时,还极容易出错,从而影响到测试效果。
发明内容
本发明实施例提供一种服务器压力测试方法和装置,用于缩短服务器压力测试的准备周期,提升压力测试效果。
一方面,提供一种服务器压力测试方法,应用于服务器测试端,所述方法包括:
获取待发送应用数据包,所述待发送应用数据包为应用被使用过程中发送给应用服务器的数据包;
针对压测机器人群组中的每一个压测机器人,分别基于所述应用数据包生成测试数据包,所述压测机器人用于模拟应用被使用过程中的应用数据包发送方;并,
分别调用每一个压测机器人的发送接口,将生成的各个测试数据包发送给所述应用服务器,以基于多个测试数据包对所述应用服务器的压力性能进行测试。
可选的,所述获取待发送应用数据包,包括:
接收所述应用服务器在收到当前正在使用的应用发送的应用数据包后转发的应用数据包;或者,
从预先存储的应用数据包集合中,根据待发送应用数据包的发送时序获得当前待发送应用数据包,所述应用数据包集合中包括在应用被使用过程中,按照应用数据包的发送时序获得并存储的应用数据包。
可选的,所述针对压测机器人群组中的每一个压测机器人,分别基于所述应用数据包生成测试数据包,包括:
针对压测机器人群组中的每一个压测机器人,分别基于各个压测机器人所模拟的应用数据包发送方的状态信息对所述应用数据包进行修改,以得到所述测试数据包,其中,每个压测机器人的状态信息至少包括:压测机器人的模拟身份信息。
可选的,所述状态信息还包括压测机器人模拟的应用数据包发送方的角色状况信息。
可选的,在分别调用每一个压测机器人的发送接口,将生成的各个测试数据包发送给所述应用服务器之后,所述方法还包括:
接收所述应用服务器返回的响应数据包;
基于所述响应数据包中包括的路由信息,将所述响应数据包分发给对应的压测机器人;并,
在所述响应数据包指示压测机器人所模拟的应用数据包发送方的状态信息更新时,基于所述响应数据包携带的状态信息更新压测机器人所模拟的应用数据包发送方的状态信息。
一方面,提供一种服务器压力测试方法,应用于应用服务器中,所述应用服务器包括接入进程,所述方法包括:
通过所述接入进程获取数据包,所述数据包为服务器测试端发送的测试数据包或者应用被使用过程中发送的应用数据包;
判断所述数据包为所述应用数据包时,将所述应用数据包转发给所述服务器测试端,以使得所述服务器测试端基于所述应用数据包对所述应用服务器的压力性能进行测试。
可选的,所述应用服务器还包括服务进程;在通过所述应用服务器包括的接入进程获取数据包之后,所述方法还包括:
将所述数据包发送给所述服务进程;并,
在所述服务进程处理所述数据包并生成响应数据包后,将所述响应数据包通过所述接入进程发送给所述服务器测试端或者所述应用。
可选的,所述方法还包括:
根据所述数据包中携带的路由信息判断数据包的类型;或者,
根据所述数据包中携带的会话标识判断数据包的类型;或者,
根据所述数据包中携带的身份信息判断数据包的类型。
一方面,提供一种服务器压力测试装置,应用于服务器测试端,所述装置包括:
数据包获取单元,用于获取待发送应用数据包,所述待发送应用数据包为应用被使用过程中发送给应用服务器的数据包;
数据包修改单元,用于针对压测机器人群组中的每一个压测机器人,分别基于所述应用数据包生成测试数据包,所述压测机器人用于模拟应用被使用过程中的应用数据包发送方;并,
发送单元,用于分别调用每一个压测机器人的发送接口,将生成的各个测试数据包发送给所述应用服务器,以基于多个测试数据包对所述应用服务器的压力性能进行测试。
可选的,所述数据包获取单元,具体用于:
接收所述应用服务器在收到当前正在使用的应用发送的应用数据包后转发的应用数据包;或者,
从预先存储的应用数据包集合中,根据待发送应用数据包的发送时序获得当前待发送应用数据包,所述应用数据包集合中包括在应用被使用过程中,按照应用数据包的发送时序获得并存储的应用数据包。
可选的,所述数据包修改单元,具体用于:
针对压测机器人群组中的每一个压测机器人,分别基于各个压测机器人所模拟的应用数据包发送方的状态信息对所述应用数据包进行修改,以得到所述测试数据包,其中,每个压测机器人的状态信息至少包括:压测机器人的模拟身份信息。
可选的,所述状态信息还包括压测机器人模拟的应用数据包发送方的角色状况信息。
可选的,所述装置还包括数据包分发单元和状态更新单元;
所述数据包获取单元还用于:接收所述应用服务器返回的响应数据包;
所述数据包分发单元用于:基于所述响应数据包中包括的路由信息,将所述响应数据包分发给对应的压测机器人;
所述状态更新单元用于:在所述响应数据包指示压测机器人所模拟的应用数据包发送方的状态信息更新时,基于所述响应数据包携带的状态信息更新压测机器人所模拟的应用数据包发送方的状态信息。
一方面,提供一种服务器压力测试装置,应用于应用服务器中,所述应用服务器包括接入进程,该装置包括:
数据包获取单元,用于通过所述接入进程获取数据包,所述数据包为服务器测试端发送的测试数据包或者应用被使用过程中发送的应用数据包;
数据包转发单元,用于判断所述数据包为所述应用数据包时,将所述应用数据包转发给所述服务器测试端,以使得所述服务器测试端基于所述应用数据包对所述应用服务器的压力性能进行测试。
可选的,所述应用服务器还包括服务进程;则所述数据包转发单元还用于:
将所述数据包发送给所述服务进程;以及,在所述服务进程处理所述数据包并生成响应数据包后,将所述响应数据包通过所述接入进程发送给所述服务器测试端或者所述应用。
可选的,所述装置还包括判断单元,用于:
根据所述数据包中携带的路由信息判断数据包的类型;或者,
根据所述数据包中携带的会话标识判断数据包的类型;或者,
根据所述数据包中携带的身份信息判断数据包的类型。
一方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方面所述的方法。
一方面,提供一种计算机可读存储介质,存储有处理器可执行指令,所述处理器可执行指令用于执行上述方面所述的方法。
本发明实施例中,通过获取应用被使用过程中发送给应用服务器的应用数据包,并基于该应用数据包生成用于测试的测试数据包,以通过各压测机器人将测试数据包发送给应用服务器,以进行测试。这样,在需要进行测试时,就可以直接将应用实际使用过程中获取的应用数据包用于测试,而无需再人工设计测试用例,从而也就减小了测试人员消耗在前期准备上时间成本,提升测试效率,并且由于应用数据包是已经填充好能够用于与服务器进行交互的数据包,因而无需人工填充字段,出错率相应降低,进而测试效果相应得以提升。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种应用场景图;
图2为本发明实施例提供的另一种应用场景图;
图3为本发明实施例提供的再一种应用场景图;
图4为本发明实施例提供的服务器压力测试方法的一种流程示意图;
图5为本发明实施例提供的服务器压力测试方法的另一种流程示意图;
图6为本发明实施例提供的服务器压力测试装置的一种结构示意图;
图7为本发明实施例提供的服务器压力测试装置的另一种结构示意图;
图8为本发明实施例提供的计算机设备的一种结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
为便于理解本发明实施例提供的技术方案,这里先对本发明实施例使用的一些关键名词进行解释:
压测机器人:通过压测脚本等代码逻辑控制,可以实现在远端应用服务器上登录并模拟用户行为的机器人。例如,针对游戏服务器压力测试而言,压测机器人则是登录模拟游戏玩家行为的机器人,用于为游戏服务器提供“压力”。相较真实玩家的压力测试,可以在同一压测设备中实现大量的压测机器人,因而采用压测机器人进行压力测试,可以使得服务器压力测试的周期及费用大大缩短。一般而言,为简化压力测试场景,压测机器人一般采用发包器模式,即压测机器人实现在同一时间段发送大量的数据包给服务器,并不会对服务器返回的响应数据包进行复杂的处理,从而节省测试时间成本。
服务器测试端:或称为压测服务器,服务器测试端上运行有压测客户端,用于运行压测机器人群组,以模拟多个用户向被测试的应用服务器发送数据包。
数据包:本发明实施例中涉及的数据包主要包括发送给应用服务器的应用数据包和测试数据包,以及应用服务器返回的响应数据包。其中,应用数据包是真实用户在使用应用过程中产生并发送给应用服务器的数据包,例如,真实用户通过游戏客户端进行了操作,则游戏客户端则可以生成该操作对应的应用数据包,并通过终端将该应用数据包发送至游戏服务器;而测试数据包则并不是因真实用户使用应用而产生的数据包,而是通过对应用数据包的必要字段进行修改后生成的数据包。但是,虽然应用数据包和测试数据包的生成方式不同,但是对于应用服务器而言,其所产生的效果是一致的,例如应用数据包用于控制角色向左移动,那么通过对应用数据包进行修改得到测试数据包之后,所得到的测试数据包同样是用于控制角色向左移动,服务器所返回的响应数据包中,角色状态信息的改变也是相同的,例如均可以携带移动后角色的坐标。
无状态服务器:无状态服务是指两个来自同一发送方的数据包在服务器中不具备上下文关系的服务,相应的,提供这种服务的服务器则是无状态服务器。典型的无状态服务器就是全球广域网(World Wide Web,WEB)服务器,发送给WEB服务器的数据包之间均不存在上下文关系,WEB服务器只是获取数据包中的目标统一资源定位符(Uniform ResourceLocator,URL)即可进行响应。
有状态服务器:有状态服务是指两个来自同一发送方的数据包在服务器中具备上下文关系的服务,相应的,提供这种服务的服务器则是有状态服务器,对于有状态服务的数据包,服务器一般都要保存数据包相关的上下文信息。例如,有状态服务器可以是网络游戏的服务器,网络游戏的服务器需要维护每个会话连接的状态信息,服务器接收到每个会话连接发送的数据包时,可以从本地存储的上下文信息来重现上下文关系。例如,玩家发送的数据包指示向左移动,那么服务器在额需要从上下文信息中获知玩家移动前的坐标,进而确定移动后角色所在坐标。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,在不做特别说明的情况下,一般表示前后关联对象是一种“或”的关系。
应用服务器的压力性能可能直接影响到用户的使用体验,因此,在应用上市之前,对应用服务器的压力测试(Stress Test)是十分必要的。目前压力测试的方法主要是通过从真实环境进行协议数据收集后重新设计测试用例,并基于测试用例进行协议回放式压测的方法,但是这种测试方法需要测试人员了解每个游戏场景的协议数据包的发送时序,以及每种协议数据包的全部字段后进行设计,必要时还需要与游戏开发人员进行沟通,这就需要大量的沟通成本和时间成本,测试前期准备周期较长,并且在人工填充协议数据包的字段时,还极容易出错,从而影响到测试效果。
鉴于此,本发明实施例提供了一种服务器压力测试方法,在该方法中,通过获取应用被使用过程中发送给应用服务器的应用数据包,并基于该应用数据包生成用于测试的测试数据包,以通过各压测机器人将测试数据包发送给应用服务器,以进行测试。这样,在需要进行测试时,就可以直接将应用实际使用过程中获取的应用数据包用于测试,而无需再人工设计测试用例,从而也就减小了测试人员消耗在前期准备上时间成本,提升测试效率,并且由于应用数据包是已经填充好能够用于与服务器进行交互的数据包,因而无需人工填充字段,出错率相应降低,进而测试效果相应得以提升。
本发明实施例中,由于真实用户使用应用时必然按照正确的时序发送数据包,那么在进行压力测试时,则无需对同一压测机器人发送的测试数据包的时序进行设计,而直接按照真实用户使用过程中的发送时序进行发送即可,从而不管是针对无状态服务器还是有状态服务应用器的压力测试,本发明实施例的方法皆能够适用。
此外,本发明实施例中,本申请中可以提供多种测试模式,一种测试模式为一般测试模式,即可以在应用被使用的同时,对应用服务器进行测试,即可以在抓取测试人员或者特定真实用户在使用应用过程中发送给应用服务器的应用数据包后,立即转发给服务器测试端,服务器测试端则可以在接收应用数据包并修改生成测试数据包之后,将测试数据包发送给应用服务器进行测试。例如当有1名测试人员在使用应用时,在服务器测试端运行有n名压测机器人,那么对于同一操作,则应用服务器可以接收到n+1个数据包。
另一种测试模式为回放测试模式,即在已经按序存储了应用被使用过程中的应用数据包后,则可以按序依次获取应用数据包并进行修改生成测试数据包之后,将测试数据包发送给应用服务器进行测试。在回放测试模式中,则无需测试人员或者真实用户的参与,直接在服务器测试端运行n名压测机器人,那么对于同一操作,则应用服务器可以接收到n个数据包。
在介绍完本发明实施例的设计思想之后,下面对本发明实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本发明实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本发明实施例提供的技术方案。
请参见图1所示,为发明实施例能够适用的一种场景示意图,该场景中包括终端101、应用服务器102以及服务器测试端103,本发明实施例的服务器压力测试方法可以通过图1中应用服务器102以及服务器测试端103协同来实现。
终端101中可以安装应用服务器102提供的应用客户端,以在真实用户打开终端101上的应用服务器102提供的应用客户端时,能够呈现出应用显示界面;或者,终端101中还可以安装有浏览器,通过浏览器访问应用服务器102后,同样可以在终端101中呈现出应用服务器102对应的应用显示界面。应用服务器102对应的应用例如可以网络游戏、即时通讯应用或者社交平台应用等。
以终端101安装有应用服务器102提供的应用客户端为例,真实用户则可以基于应用显示界面中显示的内容进行操作,应用客户端可以基于从终端101获取到的操作指示生成应用数据包,并将应用数据包通过终端101发送给应用服务器102,并接收应用服务器102返回的响应数据包,从而可以响应数据包的内容更新应用显示界面。具体的,终端101可以是平板电脑(PAD)、手机、笔记本电脑或者个人计算机(Personal Computer,PC)等设备,当然,也可以为其他可能的设备,本发明实施例对此不做限制。
应用服务器102可以包括一个或多个处理器1021、存储器1022、与终端交互的I/O接口1023、与服务器测试端交互的I/O接口1024等。其中,I/O接口1023与I/O接口1024可以是相同类型的接口,也可以是不同类型的接口。
应用服务器102还可以配置有数据库1025,用于存储一些数据等信息,例如当应用服务器102为游戏服务器时,可以通过数据库1025存储用户的身份信息、角色数据以及游戏进度等信息;或者,当应用服务器102为社交平台服务器时,可以通过数据库1025存储用户的身份信息、用户发表的文字、图片以及用户的社交关系等信息。
本发明实施例中,应用服务器102可以通过I/O接口1023接收来自终端101的应用数据包和服务器测试端103的测试数据包,并将接收的数据包缓存至存储器1022中,处理器1021除了对数据包进行正常处理向终端101和服务器测试端103返回响应数据包之外,还会确定数据包是否是来自终端101的应用数据包,并在确定是来自终端101的应用数据包时,通过I/O接口1024将该应用数据包转发给服务器测试端103。
服务器测试端103可以包括一个或多个处理器1031、存储器1032、与终端交互的I/O接口1033等。本发明实施例中,服务器测试端103运行有压测机器人群组,压测机器人群组包括多个压测机器人,压测机器人的数量可以根据测试阶段进行正调整。
服务器测试端103可以通过I/O接口1033接收应用服务器102转发的应用数据包,并缓存至存储器1032中,处理器1031可以基于各压测机器人的相关信息对应用数据包的相应字段进行修改得到测试数据包后,通过I/O接口1033发送给应用服务器102,从而通过多个机器人发送的多个测试数据包测试应用服务器102的压力性能。
终端101与应用服务器102之间,以及应用服务器102与服务器测试端103之间可以通过一个或者多个网络104进行通信连接。该网络104可以是有线网络,也可以是无线网络,例如无线网络可以是移动蜂窝网络,或者可以是无线保真(WIreless-Fidelity,WIFI)网络,当然还可以是其他可能的网络,本发明实施例对此不做限制。
请参见图2所示,为发明实施例提供的可以适用于上述一般测试模式的一种场景示意图,该场景中包括终端201、应用服务器202以及服务器测试端203,本发明实施例的服务器压力测试方法可以通过图1中应用服务器202以及服务器测试端203协同来实现。
终端201可以与图1所示的终端101为相同的设备,因此对于终端201的介绍可以参见上述终端101的部分,在此不再过多赘述。
应用服务器202可以包括接入进程2021、测试模块2022以及服务进程2023。具体的,应用服务器202也可以与图1所示的应用服务器102为相同的设备,例如,应用服务器102的存储器1022中存储有程序指令,这些程序指令被处理器1021执行时用以实现接入进程2021、测试模块2022以及服务进程2023的功能。
具体的,接入进程2021用于实现客户端连接管理,数据收发等功能。终端201中被使用的应用可以与接入进程2021建立会话连接,与使得通过接入进程2021接收来自终端201中应用发送的应用数据包。接入进程2021还可以将接收的数据包分发给服务进程2023进行处理,因为测试模块2022桥接在接入进程2021与服务进程2023之间,因而接入进程2021可以通过测试模块2022将数据包分发至相应的服务进程2023进行处理。
服务进程2023用于对数据包进行处理并生成响应数据包。其中,对于应用服务器202中接入进程2021和服务进程2023的数量,本发明实施例不做限制,例如应用服务器202可以包括1个接入进程2021和多个服务进程2023,当然,也可以根据需求配置接入进程2021和服务进程2023的数量。
测试模块2022可以包括接入进程连接子模块20221、数据包判断子模块20222、服务进程连接子模块20223和应用数据包发送子模块20224。
接入进程连接子模块20221与接入进程2021相连以实现数据传输,接入进程连接子模块20221与接入进程2021之间的数据传输例如可以通过套接字(socket)连接或共享内存等方式来实现。
服务进程连接子模块20223与服务进程2023相连以实现数据传输,服务进程连接子模块20223与服务进程2023之间的数据传输例如可以通过socket连接或共享内存等方式来实现。
应用数据包发送子模块20224与测试客户端2031中的应用数据包接收子模块20315相连以实现数据传输,数据包发送子模块20224与应用数据包接收子模块20315之间的数据传输例如可以通过socket连接来实现。
服务器测试端203同样可以与图1所示的服务器测试端103为相同的设备,服务器测试端203中安装有用于服务器压力测试的测试客户端2031,测试客户端2031可以运行压测机器人群组,用于模拟应用在使用过程中的应用数据包发送方。
测试客户端2031可以包括压测机器人收发包子模块20311、缓存子模块20312、本地存储子模块20313、状态管理子模块20314以及应用数据包接收子模块20315。
压测机器人收发包子模块20311与接入进程2021建立n个会话连接,n表示压测机器人的数量,一个会话连接用于一个压测机器人与接入进程2021进行数据包传输。
在实际应用中,当真实用户在终端201使用应用时,则会向应用服务器202发送应用数据包,接入进程2021则可以接收到该应用数据包,并通过测试模块2022的接入进程连接子模块20221,将该应用数据包发送给数据包判断子模块20222。一方面,数据包判断子模块20222将该应用数据包通过服务进程连接子模块20223发送给服务进程2023,服务进程2023对该应用数据包进行处理并生成响应数据包后,通过测试模块2022将响应数据包发送给接入进程2021,进而通过接入进程2021将响应数据包发送给终端201。
数据包判断子模块20222通过判断收到的数据包为应用数据包时,将该应用数据包通过应用数据包发送子模块20224发送给测试客户端2031的应用数据包接收子模块20315,从而通过缓存子模块20312缓存该应用数据包,在需要向应用服务器202发送测试数据包时,从缓存子模块20312中读取应用数据包,并从状态管理子模块20314读取机器人状态信息,进而基于机器人状态信息对应用数据包进行修改得到测试数据包之后,通过压测机器人收发包子模块20311将测试数据包发送给接入进程2021,以通过各压测机器人发送的测试数据包对应用服务器202的压力性能进行测试。在应用服务器202通过接入进程2021返回响应数据包之后,基于响应数据包的内容更新状态管理子模块20314中相应机器人的状态信息。
为使得应用数据包可以用于后续的测试,本地存储子模块20313还可以将应用数据包持久化到本地存储中。
请参见图3所示,为发明实施例提供的可以适用于上述回放测试模式的一种场景示意图,该场景中包括应用服务器301以及服务器测试端302,本发明实施例的服务器压力测试方法可以通过图1中应用服务器301以及服务器测试端302协同来实现。
应用服务器301可以包括接入进程3011以及服务进程3012。具体的,应用服务器301也可以与图1所示的应用服务器102为相同的设备,例如,应用服务器102的存储器1022中存储有程序指令,这些程序指令被处理器1021执行时用以实现接入进程3011以及服务进程3012的功能。
服务器测试端302同样可以与图1所示的服务器测试端103为相同的设备,服务器测试端302中安装有用于服务器压力测试的测试客户端3021,测试客户端3021可以运行压测机器人群组,用于模拟应用在使用过程中的应用数据包发送方。
测试客户端3021可以包括压测机器人收发包子模块30211、缓存子模块30212、本地存储子模块30213以及状态管理子模块30214。
压测机器人收发包子模块20311与接入进程2021建立n个会话连接,n表示压测机器人的数量,一个会话连接用于一个压测机器人与接入进程2021进行数据包传输。
其中,服务器测试端302的本地存储中已经存储了应用数据包集合,应用数据包集合包括应用被使用过程中发送给应用服务器的应用数据包,那么在需要进行服务器压力测试时,通过本地存储子模块30213将本地存储的应用数据包集合读取到缓存子模块30212中,并在需要向应用服务器301发送测试数据包时,从缓存子模块30212中读取应用数据包,并从状态管理子模块20314读取机器人状态信息,进而基于机器人状态信息对应用数据包进行修改得到测试数据包之后,通过压测机器人收发包子模块30211将测试数据包发送给接入进程3011,以通过各压测机器人发送的测试数据包对应用服务器301的压力性能进行测试。在应用服务器301通过接入进程3011返回响应数据包之后,基于响应数据包的内容更新状态管理子模块30214中相应机器人的状态信息。
下面结合图1~图3的应用场景,参考下面各图来描述根据本发明示例性实施方式提供的服务器压力测试方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
本发明实施例中,服务器压力测试方法可以包括一般测试模式和回放测试模式,下面将先对一般测试模式的测试过程进行介绍。
如图4所示,为本发明实施例提供的服务器压力测试方法的流程示意图,该方法例如可以由图1~图3中所示的应用服务器以及服务器测试端来执行,下面以通过应用服务器以及服务器测试端来执行为例,对本发明实施例的方法流程进行介绍。
本发明实施例中,在进行测试流程之前,需要进行测试的初始化工作。例如,当启动测试客户端进行测试之后,则可以自动的进入到初始化流程。在初始化过程中,测试客户端可以根据配置文件中预配置的压测机器人数量,启动压测机器人,并建立压测机器人与应用服务器之间的会话连接。例如,预配置的压测机器人数量为n个时,则可以启动n个压测机器人,n个压测机器人可以是同时启动的,或者,也可以是先后依次启动的,例如按照压测机器人的标识(identity,ID),第一次启动ID为1~100的压测机器人,在指定时间后或者待ID为0~100的压测机器人完全启动之后,再启动ID为101~200的压测机器人,依次类推。
由于本发明实施例中,在接入进程与服务进程之间设置了测试模块,因此初始化过程中,还需要建立接入进程与测试模块,以及测试模块与服务进程之间建立连接,从而实现数据包的传输,连接的方式例如可以是socket连接或者共享内存的方式。同样的,由于测试模块中的应用数据包发送子模块与测试客户端中的应用数据包接收子模块之间需要传输应用数据包,因此,在初始化过程中,同样需要建立应用数据包发送子模块与应用数据包接收子模块之间的连接,以实现数据包的传输,连接的方式例如可以是socket连接。
本发明实施例的压测机器人用于模拟应用被使用过程的应用数据包发送方,因此,相应的,每个压测机器人均会有自身所模拟的虚拟用户的账号,在启动压测机器人之后,可以基于每一个压测机器人模拟的虚拟用户的账号与应用服务器建立会话连接,以模拟用户在线状态。具体的,由于应用服务器通常通过接入进程接收数据包,因此,可以基于压测机器人模拟的虚拟用户的账号与应用服务器的接入进程建立会话连接。例如,预配置的压测机器人数量为n个时,则会建立n个压测机器人与接入进程之间的会话连接,即n个会话连接。
对于有状态应用服务器,用户在实际使用应用之前,通常需要进行账号登录,进而基于该账号代表的身份与服务器进行交互,因此,建立会话连接的过程可以认为是账号登录的过程。例如,当应用服务器提供的应用为网络游戏时,压测机器人则用于模拟虚拟玩家,那么建立会话连接的过程则可以是通过该压测机器人所模拟的虚拟玩家的账号登录网络游戏服务器的过程。
下面就具体测试流程进行介绍。
S401:终端向应用服务器的接入进程发送应用数据包,应用服务器的接入进程接收应用数据包。
在需要进行应用服务器压力测试时,可以通过测试人员对终端中的应用进行操作,这里具体以应用客户端为例,测试人员可以针对特定的测试需求,适应性的使用应用客户端,且在用户使用应用客户端的过程中,应用客户端可以通过终端获取到用户的操作指示,并可以基于操作指示向应用服务器发送应用数据包,以请求应用服务器响应用户的操作。对于在浏览器中使用应用的情况与此是类似的,因此不多赘述。
其中,当测试人员通过应用客户端与应用服务器中的进入进程建立会话连接后,则可以利用建立的会话连接将应用数据包发送给应用服务器的进入进程。具体的,当应用数据包从终端的通信接口发送之后,则可以通过一个或者多个网络到达应用服务器的通信接口,则接入进程则可以通过该通信接口获取到应用数据包。
例如,当应用为网络游戏时,且需要测试玩家在战斗过程中游戏服务器的压力性能,那么测试人员对于游戏客户端的使用具体可以为特定的战斗过程;或者,需要测试玩家在开局-战斗-下线整个过程中游戏服务器的压力性能,那么测试人员对于游戏客户端的使用具体可以为开局-战斗-下线整个过程。在测试人员的使用游戏客户端的过程中,用户基于游戏界面进行的操作都会以应用数据包的形式发送给游戏服务器,例如,测试人员控制游戏角色释放了技能A,那么基于该操作可以生成用于请求释放技能A的应用数据包,游戏服务器接收到应用数据包进行处理后,则可以响应释放技能A的操作。
S402:应用服务器的接入进程将应用数据包发送给应用服务器中的测试模块。
本发明实施例中,接入进程可以与测试模块的接入进程连接子模块通信连接,则接入进程可以通过该连接将应用数据包发送给测试模块的接入进程连接模块。
具体的,接入进程与接入进程连接子模块通信连接的方式可以采用socket连接,那么接入进程可以与接入进程连接子模块之间的通信协议进行数据传输;或者接入进程与接入进程连接子模块通信连接的方式还可以采用共享内存方式,即在应用服务器中设置允许接入进程与接入进程连接子模块访问的共享内存,那么接入进程可以向共享内存中写入数据包,接入进程连接子模块检测到共享内存中有新的数据包时,则可以从中读取数据包,以实现数据包的传输。
S403:应用服务器的测试模块将应用数据包发送给应用服务器中的服务进程。
本发明实施例中,一方面,测试模块会将应用数据包直接发送给服务进程,服务进程可以对应用数据包进行处理后生成响应数据包。服务进程用以提供具体的服务,应用服务器上可以布置一个或者多个服务进程,不通的服务进程可以提供不同种类的服务,或者为不同用户提供服务,服务进程的布置可以基于该服务进程所消耗的资源量来定,例如一个服务进程所消耗的资源量巨大,那么可以在应用服务器上布置一个服务进程。
具体而言,在进行测试时,可以对该应用服务器上的所有服务进程进行测试,也可以针对特定的服务进程进行测试,例如应用服务器上布置了服务进程1和服务进程2,分别用于提供服务A和服务B,那么仅需要测试服务进程1时,测试人员可以针对性的只使用服务A,那么应用服务器后续接收的测试数据包均都由服务进程1提供服务;或者,需要对整个应用服务器进行测试时,测试人员可以针对性的使用服务A和服务B,那么应用服务器后续接收的测试数据包可以由服务进程1和服务进程2提供服务。
本发明实施例中,测试模块的服务进程连接子模块可以与服务进程通信连接,则接服务进程连接子模块通过该连接可以将应用数据包发送给服务进程。具体的,服务进程连接子模块与服务进程的方式也可以采用socket连接或者共享内存方式。
S404:应用服务器中的服务进程对应用数据包进行处理并生成响应数据包。
S405:应用服务器中的服务进程将响应数据包发送给应用服务器的测试模块。
S406:应用服务器中的测试模块将响应数据包发送给应用服务器的接入进程。
S407:应用服务器中的接入进程将响应数据包发送给终端的应用客户端。
应用客户端接收响应数据包之后,则可以根据响应数据包的内容更新应用显示界面,例如用户的操作是点击了应用显示界面中的链接,那么响应数据包到达后,应用显示界面则会跳转至该链接对应的画面;或者,用户的操作是控制游戏角色释放技能A,那么响应数据包到达后,应用显示界面则会显示技能A对应的技能特效以及游戏角色的属性值等。
S408:应用服务器中的测试模块判断数据包的类型。
本发明实施例中,另一方面,测试模块还会对接收到的数据包进行判断,以确定数据包的类型,数据包的类型包括应用数据包和测试数据包。其中,上述虽然已言明为应用数据包,但是对测试模块而言,其并不是直接知道自己所接收到的数据包是应用数据包,因此测试模块同样会对该数据包加以判断。
具体的,可以通过测试模块所包括的数据包判断子模块来实现判断过程。
具体的,在进行测试时,测试人员使用的终端和服务器测试端所使用的互联网协议(Internet Protocol,IP)地址等路由信息可以是不同的,那么可以根据数据包中携带的路由信息判断数据包的类型,路由信息则可以是IP地址或者IP端口(Port)等。
具体的,在实际通信过程中,为便于会话区分,会为每个会话分配会话ID,那么终端中的应用客户端与应用服务器建立的会话连接,与各压测机器人与应用服务器建立的会话连接的会话ID可以是不同的,那么就可以根据数据包中携带的会话ID判断数据包的类型。
具体的,在应用的使用过程中,为区分不同用户所发送的数据包,数据包中均会携带用户的身份信息,那么就可以根据数据包中携带的身份信息判断数据包的类型,身份信息例如可以是账号、角色昵称或者角色ID等。
S409:当应用服务器中的测试模块将应用数据包发送给服务器测试端的测试客户端。
本发明实施例中,测试模块的应用数据包发送子模块可以与测试客户端的应用数据包接收子模块通信连接,则当测试模块确定接收到的数据包为应用数据包时,应用数据包发送子模块则会拷贝一份应用数据包,并通过该连接将应用数据包发送给测试客户端的应用数据包接收子模块。具体的,服务进程连接子模块与服务进程的方式也可以采用socket连接方式。
需要声明的是,步骤403~407与步骤408~409的过程并没有实质上的先后顺序,这两个过程可以是同时进行的,也可以是先后顺序进行的,本发明实施例对此不做限制。
S410:服务器测试端的测试客户端缓存应用数据包。
本发明实施例中,服务器测试端的测试客户端接收到应用数据包之后,可以将应用数据包缓存至缓存子模块中。当然,为了将应用数据包用于回放测试模式,还可以将缓存的应用数据包持久化到本地数据,即将应用数据包存储至非易失性存储器中。
其中,应用客户端发送给应用服务器的应用数据包是实际使用过程发送的数据包,即这些应用数据包必然按照实际使用的发送时序发送的,那么测试模块也会按照这个时序接收到应用数据包,并依照这个时序将应用数据包发送给测试客户端,这样,因为应用数据包的发送时序严格参照应用客户端的发送时序,那么在后续的测试过程中,按照这个时序进行发送测试数据包即可,而无需再额外考虑数据包的发送时序,减少测试前期准备工作。
其中,上述的描述具体是以一个应用数据包为例进行的,在实际实施过程中,应用数据包的数量是很多的,应用客户端不断的发送应用数据包,测试模块也就会不断将应用数据包转发给测试客户端进行缓存。
具体的,缓存子模块可以通过数队列或者链表等数据结构来缓存应用数据包,当然,也可以采用其他可能的数据结构,本发明实施例对此不做限制。
S411:服务器测试端的测试客户端基于应用数据包生成测试数据包。
本发明实施例中,测试客户端中可以运行多个压测机器人,在每个压测机器人的tick中,一个tick是指一个压测机器人发包和收到对应的响应数据包循环过程,在每个压测机器人发包时机到达时,则会从缓存的应用数据包中读取待发送的应用数据包。
压测机器人发包时机可以包括两种,一是首次发包的时机,首次发包的时机例如可以是在初始化过程准备就绪,且缓存第一个应用数据包之后,则可以从缓存子模块中读取第一个应用数据包,且在首次发包时,由于压测机器人群组中的压测机器人的数量一般是比较大的,那么各压测机器人的首次发包的时机可以不同,例如可以设定ID为1~100的压测机器人先发送第一个测试数据包,然后在固定时长之后或者ID为1~100的压测机器人均发送完成之后开始发送ID为101~200的压测机器人的第一个测试数据包;另一个时机是指压测机器人收到响应数据包之后,则可以从缓存子模块中读取上一次读取的应用数据包的下一个应用数据包。
在读取应用数据包后,则可以对该应用数据包的相应字段进行修改,以生成测试数据包。其中,相应字段是指每一个压测机器人所模拟的应用数据包发送方,即虚拟用户的状态信息。状态信息可以包括每一个压测机器人所模拟的应用数据包发送方的身份信息,例如机器人ID、账号信息和角色信息等,以及,还可以包括应用数据包发送方的角色状况信息,例如应用为网络游戏,角色状况信息可以包括游戏角色的属性信息、游戏地图以及坐标等信息。
具体的,状态信息可以存储与机器人状态管理子模块中,那么读取应用数据包的同时或者之后,则可以从机器人状态管理子模块读取状态信息。状态信息可以通过配置文件进行配置,状态信息可以采用机器人ID-状态名-状态值这样的键值对数组来实现,状态名是指所表征的信息的名称,状态值则为该信息的具体值,例如状态名为坐标,则状态值为具体的坐标值。
S412:服务器测试端的测试客户端将测试数据包发送给应用数据器的接入进程。
本发明实施例中,压测机器人收发包子模块与接入进程建立n个会话连接,即每一个压测机器人都可以与接入进程建立会话连接,则在测试数据包生成之后,则可以调用每一个压测机器人的发送接口,将生成的各个测试数据包发送给应用数据器的接入进程。
需要声明的是,在图4中仅示出了一个测试数据包的发送,在实际应用时,针对相同的应用数据包,可以生成n个测试数据包,分别对应与n个压测机器人,即对于一个操作,应用服务器实质上可以接收到N个测试数据包。
S413:应用数据器的接入进程将测试数据包发送给应用数据器的测试模块。
S414:应用数据器的测试模块将测试数据包发送给应用数据器的服务进程。
测试模块在获取测试数据包之后,通过判断可以知道测试数据包是来自测试客户端的数据包,则测试模块只会将测试数据包发送给服务进程,而不再进行拷贝转发。
S415:应用服务器中的服务进程对测试数据包进行处理并生成响应数据包。
S416:应用服务器中的服务进程将响应数据包发送给应用服务器的测试模块。
S417:应用服务器中的测试模块将响应数据包发送给应用服务器的接入进程。
S418:应用服务器中的接入进程将响应数据包发送给服务器测试端的测试客户端。
S419:服务器测试端的测试客户端基于响应数据包更新压测机器人的状态信息。
本发明实施例中,测试客户端收到应用服务器的响应数据包后,可以基于响应数据包中包括的路由信息,将响应数据包分发给对应的压测机器人,并统计本次的事务数据,事务数据用于记录发送测试数据包到接收响应数据包之间的耗时、响应数据包携带的状态信息以及相应数据包指示应用服务器是否成功响应操作等信息,若是指示应用服务器未成功响应操作,还可以记录失败原因等信息。
当响应数据包指示压测机器人所模拟的应用数据包发送方的状态信息更新时,基于响应数据包携带的状态信息更新压测机器人所模拟的应用数据包发送方的状态信息。例如,当响应数据包中包含机器人状态信息时,则认为状态信息有更新,则可以以响应数据包携带的状态信息更新机器人状态管理子模块中存储的状态信息。
本发明实施例中,在执行上述流程的过程中,可以记录应用服务器的性能指标,以对应用服务器的压力性能进行评价。其中,性能指标可以包括应用服务器的中央处理单元(Central Processing Unit,CPU)的利用率、内存占用率、各个服务进程的CPU利用率和内存占用率,还可以包括应用服务器的响应时延等指标,应用服务器的硬件性能指标,比如CPU利用率和内存占用率等可以直接从应用服务器采集,时延指标则可以在测试客户端来采集,例如可以记录每个压测机器人从发送测试数据包到接收到该测试数据包的耗时。
本发明实施例中,上述的过程为针对一个操作所进行的流程,后续在有新的操作时,其流程也是相同的,因此不再赘述。可见,通过上述的流程,针对测试人员的一个操作,应用服务器则会收到n+1个数据包,即相当于有n+1人进行了该操作,其中1名真实用户,n名虚拟用户。
本发明实施例中,各设备中的进程或者模块都可以被调用,用以实现上述的方法步骤。测试客户端上运行的压测机器人采用脚本来控制压测机器人的运行,该脚本一般会定义超时没收到服务器的响应数据包就应该断开连接,或者执行重连逻辑等功能,当然,还可以包括其他的一些功能,本发明实施例对此不做限制。
下面将针对回放测试模式的测试过程进行介绍。
如图5所示,为本发明实施例提供的服务器压力测试方法的另一种流程示意图,该方法例如可以由图1~图3中所示的应用服务器以及服务器测试端来执行,下面以通过应用服务器以及服务器测试端来执行为例,对本发明实施例的方法流程进行介绍。
本发明实施例中,在进行测试流程之前,同样需要进行测试的初始化工作。例如,当启动测试客户端进行测试之后,则可以自动的进入到初始化流程。在初始化过程中,测试客户端可以根据配置文件中预配置的压测机器人数量,启动压测机器人,并建立压测机器人与应用服务器之间的会话连接。例如,预配置的压测机器人数量为n个时,则可以启动n个压测机器人,n个压测机器人可以是同时启动的,或者,也可以是先后依次启动的,例如按照压测机器人的标识(identity,ID),第一次启动ID为1~100的压测机器人,在指定时间后或者待ID为0~100的压测机器人完全启动之后,再启动ID为101~200的压测机器人,依次类推。
本发明实施例的压测机器人用于模拟应用被使用过程的应用数据包发送方,因此,相应的,每个压测机器人均会有自身所模拟的虚拟用户的账号,在启动压测机器人之后,可以基于每一个压测机器人模拟的虚拟用户的账号与应用服务器建立会话连接,以模拟用户在线状态。具体的,由于应用服务器通常通过接入进程接收数据包,因此,可以基于压测机器人模拟的虚拟用户的账号与应用服务器的接入进程建立会话连接。例如,预配置的压测机器人数量为n个时,则会建立n个压测机器人与接入进程之间的会话连接,即n个会话连接。
对于有状态应用服务器,用户在实际使用应用之前,通常需要进行账号登录,进而基于该账号代表的身份与服务器进行交互,因此,建立会话连接的过程可以认为是账号登录的过程。例如,当应用服务器提供的应用为网络游戏时,压测机器人则用于模拟虚拟玩家,那么建立会话连接的过程则可以是通过该压测机器人所模拟的虚拟玩家的账号登录网络游戏服务器的过程。
由于本发明实施例中,在回放测试模式时,无需在接入进程与服务进程之间设置测试模块,因此可以将接入进程与服务进程直接相连。以及,在回放模式时,测试所用的应用数据包集合存储在本地存储中,为减少数据读取的时间,可以在初始化过程中,将应用数据包集合拷贝至缓存子模块中,缓存子模块具体可以通过内存来实现,该应用数据包集合包括在应用被使用过程中,按照应用数据包的发送时序获得并存储的应用数据包,例如可以是上述一般测试模式中存储的应用数据包。
下面就具体测试流程进行介绍。
S501:服务器测试端的测试客户端基于应用数据包生成测试数据包。
本发明实施例中,测试客户端中可以运行多个压测机器人,在每个压测机器人的tick中,一个tick是指一个压测机器人发包和收到对应的响应数据包循环过程,在每个压测机器人发包时机到达时,则会从应用数据包集合中读取一个待发送的应用数据包。
具体的,应用数据包集合中的应用数据包是按照发送时序进行存储的,因此在读取时,也可以按照应用数据包的顺序依次读取。
压测机器人发包时机可以包括两种,一是首次发包的时机,首次发包的时机例如可以是在初始化过程准备就绪之后,则可以从缓存子模块中读取第一个应用数据包,且在首次发包时,由于压测机器人群组中的压测机器人的数量一般是比较大的,那么各压测机器人的首次发包的时机可以不同,例如可以设定ID为1~100的压测机器人先发送第一个测试数据包,然后在固定时长之后或者ID为1~100的压测机器人均发送完成之后开始发送ID为101~200的压测机器人的第一个测试数据包;另一个时机是指压测机器人收到响应数据包之后,则可以从缓存子模块中读取上一次读取的应用数据包的下一个应用数据包。
在读取应用数据包后,则可以对该应用数据包的相应字段进行修改,以生成测试数据包。其中,相应字段是指每一个压测机器人所模拟的应用数据包发送方,即虚拟用户的状态信息。状态信息可以包括每一个压测机器人所模拟的应用数据包发送方的身份信息,例如机器人ID、账号信息和角色信息等,以及,还可以包括应用数据包发送方的角色状况信息,例如应用为网络游戏,角色状况信息可以包括游戏角色的属性信息、游戏地图以及坐标等信息。
具体的,状态信息可以存储与机器人状态管理子模块中,那么读取应用数据包的同时或者之后,则可以从机器人状态管理子模块读取状态信息。状态信息可以通过配置文件进行配置,状态信息可以采用机器人ID-状态名-状态值这样的键值对数组来实现,状态名是指所表征的信息的名称,状态值则为该信息的具体值,例如状态名为坐标,则状态值为具体的坐标值。
S502:服务器测试端的测试客户端将测试数据包发送给应用数据器的接入进程。
本发明实施例中,压测机器人收发包子模块与接入进程建立n个会话连接,即每一个压测机器人都可以与接入进程建立会话连接,则在测试数据包生成之后,则可以调用每一个压测机器人的发送接口,将生成的各个测试数据包发送给应用数据器的接入进程。
需要声明的是,在图5中仅示出了一个测试数据包的发送,在实际应用时,针对相同的应用数据包,可以生成n个测试数据包,分别对应与n个压测机器人,即对于一个操作,应用服务器实质上可以接收到n个测试数据包。
S503:应用数据器的接入进程将测试数据包发送给应用数据器的服务进程。
S504:应用服务器中的服务进程对测试数据包进行处理并生成响应数据包。
S505:应用服务器中的服务进程将响应数据包发送给应用服务器的接入进程。
S506:应用服务器中的接入进程将响应数据包发送给服务器测试端的测试客户端。
S507:服务器测试端的测试客户端基于响应数据包更新压测机器人的状态信息。
本发明实施例中,测试客户端收到应用服务器的响应数据包后,可以基于响应数据包中包括的路由信息,将响应数据包分发给对应的压测机器人,并统计本次的事务数据,事务数据用于记录发送测试数据包到接收响应数据包之间的耗时、响应数据包携带的状态信息以及相应数据包指示应用服务器是否成功响应操作等信息,若是指示应用服务器未成功响应操作,还可以记录失败原因等信息。
当响应数据包指示压测机器人所模拟的应用数据包发送方的状态信息更新时,基于响应数据包携带的状态信息更新压测机器人所模拟的应用数据包发送方的状态信息。例如,当响应数据包中包含机器人状态信息时,则认为状态信息有更新,则可以以响应数据包携带的状态信息更新机器人状态管理子模块中存储的状态信息。
本发明实施例中,在执行上述流程的过程中,可以记录应用服务器的性能指标,以对应用服务器的压力性能进行评价。其中,性能指标可以包括应用服务器的中央处理单元(Central Processing Unit,CPU)的利用率、内存占用率、各个服务进程的CPU利用率和内存占用率,还可以包括应用服务器的响应时延等指标,应用服务器的硬件性能指标,比如CPU利用率和内存占用率等可以直接从应用服务器采集,时延指标则可以在测试客户端来采集,例如可以记录每个压测机器人从发送测试数据包到接收到该测试数据包的耗时。
本发明实施例中,上述的过程为针对一个操作所进行的流程,后续在有新的操作时,其流程也是相同的,因此不再赘述。可见,通过上述的流程,针对一个应用数据包请求的一个操作,应用服务器则会收到n个数据包,即相当于有n人进行了该操作,其中n名皆为虚拟用户。
本发明实施例中,压测机器人群组中的压测机器人的数量是可配置的,例如第一次测试时设置较少的压测机器人,后续逐渐增加压测机器人数量,直至达到应用服务器的压力性能极限,从而通过多次测试来评价应用服务器的压力性能。
综上所述,本发明实施例中,可以从应用服务器抓取单个真实用户使用应用过程中的应用数据包,并拷贝转发到服务器测试端,服务器测试端对收到的应用数据包进行缓存。服务器测试端并通过测试客户端启动n个压测机器人,每个机器人单独建立与应用服务器间的会话连接,每个机器人从缓存的应用数据包中按顺序读取应用数据包,根据状态信息修改应用数据包的对应字段后发送给应用服务器,接收应用服务器的响应数据包并更新状态信息。这样,通过该压测方法,游戏开发或测试人员可用一个客户端模拟多个用户同时在线,测试人员在客户端进行的每个游戏操作,压测机器人也会作出相同的操作,从而对游戏服务器进行压力测试。
本发明实施例中的服务器压测方法可以适用于无状态服务器和有状态服务器,能够记录虚拟用户当前的状态信息,适用于数据包之间有上下文关系的情况。并且,因为应用数据包的发送时序严格参照应用客户端的发送时序,因此测试人员不需要额外考虑应用数据包的发送时序,节省测试前期准备时间,从而提高压力测试效率。此外,本发明实施例中的应用数据包的字段都来自真实协议数据包,能够保证字段填充的准确性。
请参见图6,基于同一发明构思,本发明实施例还提供了一种服务器压力测试装置60,应用于服务器测试端,该装置例如可以为上述的测试客户端,该装置包括:
数据包获取单元601,用于获取待发送应用数据包,待发送应用数据包为应用被使用过程中发送给应用服务器的数据包;
数据包修改单元602,用于针对压测机器人群组中的每一个压测机器人,分别基于应用数据包生成测试数据包,压测机器人用于模拟应用被使用过程中的应用数据包发送方;并,
发送单元603,用于分别调用每一个压测机器人的发送接口,将生成的各个测试数据包发送给应用服务器,以基于多个测试数据包对应用服务器的压力性能进行测试。
可选的,数据包获取单元601,具体用于:
接收应用服务器在收到当前正在使用的应用发送的应用数据包后转发的应用数据包;或者,
从预先存储的应用数据包集合中,根据待发送应用数据包的发送时序获得当前待发送应用数据包,应用数据包集合中包括在应用被使用过程中,按照应用数据包的发送时序获得并存储的应用数据包。
可选的,数据包修改单元602,具体用于:
针对压测机器人群组中的每一个压测机器人,分别基于各个压测机器人所模拟的应用数据包发送方的状态信息对应用数据包进行修改,以得到测试数据包,其中,每个压测机器人的状态信息至少包括:压测机器人的模拟身份信息。
可选的,状态信息还包括压测机器人模拟的应用数据包发送方的角色状况信息。
可选的,装置还包括数据包分发单元604和状态更新单元605;
数据包获取单元601还用于:接收应用服务器返回的响应数据包;
数据包分发单元604用于:基于响应数据包中包括的路由信息,将响应数据包分发给对应的压测机器人;
状态更新单元605用于:在响应数据包指示压测机器人所模拟的应用数据包发送方的状态信息更新时,基于响应数据包携带的状态信息更新压测机器人所模拟的应用数据包发送方的状态信息。
该装置可以用于执行图4或图5所示的实施例中相应装置所示的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图4或图5所示的实施例的描述,不多赘述。其中,数据包分发单元604和状态更新单元605虽然在图6中一并示出,但需要知道的是,数据包分发单元604和状态更新单元605并不是必选的功能单元,因此在图6中以虚线示出。
请参见图7,基于同一发明构思,本发明实施例还提供了一种服务器压力测试装置70,应用于应用服务器中,所述应用服务器包括接入进程和测试模块,该装置例如可以为上述的测试模块,该装置包括:
数据包获取单元701,用于通过所述接入进程获取数据包,所述数据包为服务器测试端发送的测试数据包或者应用被使用过程中发送的应用数据包;
数据包转发单元702,用于判断所述数据包为所述应用数据包时,将所述应用数据包转发给所述服务器测试端,以使得所述服务器测试端基于所述应用数据包对所述应用服务器的压力性能进行测试。
可选的,所述应用服务器还包括服务进程;则所述数据包转发单元702还用于:
将所述数据包发送给所述服务进程;以及,在所述服务进程处理所述数据包并生成响应数据包后,将所述响应数据包通过所述接入进程发送给所述服务器测试端或者所述应用。
可选的,所述装置还包括判断单元703,用于:
根据所述数据包中携带的路由信息判断数据包的类型;或者,
根据所述数据包中携带的会话标识判断数据包的类型;或者,
根据所述数据包中携带的身份信息判断数据包的类型。
该装置可以用于执行图4或图5所示的实施例中相应装置所示的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图4或图5所示的实施例的描述,不多赘述。
请参见图8,基于同一技术构思,本发明实施例还提供了一种计算机设备,可以包括存储器801和处理器802。
所述存储器801,用于存储处理器802执行的计算机程序。存储器801可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据应用测试设备的使用所创建的数据等。处理器802,可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等等。本发明实施例中不限定上述存储器801和处理器802之间的具体连接介质。本发明实施例在图8中以存储器801和处理器802之间通过总线803连接,总线803在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线803可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器801可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器801也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器801是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器801可以是上述存储器的组合。
处理器802,用于调用所述存储器801中存储的计算机程序时执行如图4所示的实施例中服务器测试端或者应用服务器所执行的方法,或者,调用所述存储器801中存储的计算机程序时执行如图5所示的实施例中服务器测试端或者应用服务器所执行的方法。
本发明实施例还提供了一种计算机存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本发明提供的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤,例如,所述计算机设备可以执行如图4或者图5中所示的实施例中各设备所执行的方法。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本发明的实施方式的服务器压力测试方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种服务器压力测试方法,其特征在于,应用于服务器测试端,所述方法包括:
获取待发送应用数据包,所述待发送应用数据包为应用被使用过程中发送给应用服务器的数据包;
针对压测机器人群组中的每一个压测机器人,分别基于所述应用数据包生成测试数据包,所述压测机器人用于模拟应用被使用过程中的应用数据包发送方;并,
分别调用每一个压测机器人的发送接口,将生成的各个测试数据包发送给所述应用服务器,以基于多个测试数据包对所述应用服务器的压力性能进行测试。
2.如权利要求1所述的方法,其特征在于,所述获取待发送应用数据包,包括:
接收所述应用服务器在收到当前正在使用的应用发送的应用数据包后转发的应用数据包;或者,
从预先存储的应用数据包集合中,根据待发送应用数据包的发送时序获得当前待发送应用数据包,所述应用数据包集合中包括在应用被使用过程中,按照应用数据包的发送时序获得并存储的应用数据包。
3.如权利要求1所述的方法,其特征在于,所述针对压测机器人群组中的每一个压测机器人,分别基于所述应用数据包生成测试数据包,包括:
针对压测机器人群组中的每一个压测机器人,分别基于各个压测机器人所模拟的应用数据包发送方的状态信息对所述应用数据包进行修改,以得到所述测试数据包,其中,每个压测机器人的状态信息至少包括:压测机器人的模拟身份信息。
4.如权利要求3所述的方法,其特征在于,所述状态信息还包括压测机器人模拟的应用数据包发送方的角色状况信息。
5.如权利要求3或4所述的方法,其特征在于,在分别调用每一个压测机器人的发送接口,将生成的各个测试数据包发送给所述应用服务器之后,所述方法还包括:
接收所述应用服务器返回的响应数据包;
基于所述响应数据包中包括的路由信息,将所述响应数据包分发给对应的压测机器人;并,
在所述响应数据包指示压测机器人所模拟的应用数据包发送方的状态信息更新时,基于所述响应数据包携带的状态信息更新压测机器人所模拟的应用数据包发送方的状态信息。
6.一种服务器压力测试方法,其特征在于,应用于应用服务器中,所述应用服务器包括接入进程,所述方法包括:
通过所述接入进程获取数据包,所述数据包为服务器测试端发送的测试数据包或者应用被使用过程中发送的应用数据包;
判断所述数据包为所述应用数据包时,将所述应用数据包转发给所述服务器测试端,以使得所述服务器测试端基于所述应用数据包对所述应用服务器的压力性能进行测试。
7.如权利要求6所述的方法,其特征在于,所述应用服务器还包括服务进程;在通过所述应用服务器包括的接入进程获取数据包之后,所述方法还包括:
将所述数据包发送给所述服务进程;并,
在所述服务进程处理所述数据包并生成响应数据包后,将所述响应数据包通过所述接入进程发送给所述服务器测试端或者所述应用。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
根据所述数据包中携带的路由信息判断数据包的类型;或者,
根据所述数据包中携带的会话标识判断数据包的类型;或者,
根据所述数据包中携带的身份信息判断数据包的类型。
9.一种服务器压力测试装置,其特征在于,应用于服务器测试端,包括:
数据包获取单元,用于获取待发送应用数据包,所述待发送应用数据包为应用被使用过程中发送给应用服务器的数据包;
数据包修改单元,用于针对压测机器人群组中的每一个压测机器人,分别基于所述应用数据包生成测试数据包,所述压测机器人用于模拟应用被使用过程中的应用数据包发送方;并,
发送单元,用于分别调用每一个压测机器人的发送接口,将生成的各个测试数据包发送给所述应用服务器,以基于多个测试数据包对所述应用服务器的压力性能进行测试。
10.一种服务器压力测试装置,其特征在于,应用于应用服务器中,所述应用服务器包括接入进程和测试模块,所述装置包括:
数据包获取单元,用于通过所述接入进程获取数据包,所述数据包为服务器测试端发送的测试数据包或者应用被使用过程中发送的应用数据包;
数据包转发单元,用于判断所述数据包为所述应用数据包时,将所述应用数据包转发给所述服务器测试端,以使得所述服务器测试端基于所述应用数据包对所述应用服务器的压力性能进行测试。
CN201910220209.1A 2019-03-22 2019-03-22 服务器压力测试方法和装置 Active CN110034972B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910220209.1A CN110034972B (zh) 2019-03-22 2019-03-22 服务器压力测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910220209.1A CN110034972B (zh) 2019-03-22 2019-03-22 服务器压力测试方法和装置

Publications (2)

Publication Number Publication Date
CN110034972A true CN110034972A (zh) 2019-07-19
CN110034972B CN110034972B (zh) 2021-07-06

Family

ID=67236414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910220209.1A Active CN110034972B (zh) 2019-03-22 2019-03-22 服务器压力测试方法和装置

Country Status (1)

Country Link
CN (1) CN110034972B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306837A (zh) * 2020-11-10 2021-02-02 光大兴陇信托有限责任公司 一种云压力测试方法及平台、设备及可读存储介质
CN114205248A (zh) * 2021-12-15 2022-03-18 建信金融科技有限责任公司 模拟超时响应方法、装置、设备、存储介质及程序产品
CN114490356A (zh) * 2022-01-10 2022-05-13 阿里巴巴(中国)有限公司 压力测试方法、系统、设备及存储介质
CN114510430A (zh) * 2022-04-19 2022-05-17 北京焦点新干线信息技术有限公司 压测计划的分配方法、装置、服务器及计算机存储介质
CN114615171A (zh) * 2022-03-16 2022-06-10 网易(杭州)网络有限公司 云游戏服务器的压测处理方法、设备、介质及程序产品
CN115378859A (zh) * 2021-04-13 2022-11-22 百度在线网络技术(北京)有限公司 用于确定极限状态信息的方法、装置、设备、介质和产品
CN117194131A (zh) * 2023-11-06 2023-12-08 腾讯科技(深圳)有限公司 数据处理方法、装置、设备、可读存储介质及程序产品

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060378A (ko) * 2005-12-08 2007-06-13 한국전자통신연구원 부하 테스트를 통한 서버 애플리케이션 안정성 검증 시스템및 방법
CN101388800A (zh) * 2007-09-12 2009-03-18 百度在线网络技术(北京)有限公司 对服务器的网络性能进行压力测试的方法、设备及系统
US20090156314A1 (en) * 2007-12-18 2009-06-18 Electronics And Telecommunications Research Institute System and method for re-generating packet load for load test
US20100138813A1 (en) * 2008-12-01 2010-06-03 Electronics And Telecommunications Research Institute Method and apparatus for testing online performance on client/server architecture
CN101902367A (zh) * 2009-05-31 2010-12-01 西门子(中国)有限公司 一种产生测试用例的方法及装置
US20110130205A1 (en) * 2009-12-01 2011-06-02 Electronics And Telecommunications Research Institute Game grammar-based packet capture and analysis apparatus and method for conducting game test
US20130090172A1 (en) * 2011-10-07 2013-04-11 Electronics And Telecommunications Research Institute System and method for analysing online game packets
CN103593294A (zh) * 2013-11-21 2014-02-19 福建天晴数码有限公司 网络游戏性能测试方法及系统
US8868646B2 (en) * 2010-12-21 2014-10-21 Electronics And Telecommunications Research Institute Apparatus and method for generating virtual game clients
KR101520056B1 (ko) * 2014-08-24 2015-05-20 주식회사 큐랩 클라우드 기반 모바일/온라인 게임 서버 부하 테스트 자동화 서비스 방법
CN105959177A (zh) * 2016-04-26 2016-09-21 网易(杭州)网络有限公司 一种游戏服务器压力测试脚本的生成方法和装置
CN106209782A (zh) * 2016-06-27 2016-12-07 腾讯科技(深圳)有限公司 一种协议截获系统、协议截获方法以及协议截获装置
CN106528825A (zh) * 2016-11-21 2017-03-22 中国农业银行股份有限公司 一种银行系统压力测试关联交易的发压方法及系统
CN106713077A (zh) * 2017-01-11 2017-05-24 北京瑞星信息技术股份有限公司 代理服务器流量回放方法和系统
CN106897206A (zh) * 2015-12-18 2017-06-27 阿里巴巴集团控股有限公司 一种业务测试方法及装置
CN109284227A (zh) * 2018-09-06 2019-01-29 政采云有限公司 一种自动化压力测试方法及装置、计算设备及存储介质
CN109359003A (zh) * 2018-10-29 2019-02-19 网易(杭州)网络有限公司 游戏服务器压力测试方法、装置及设备

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060378A (ko) * 2005-12-08 2007-06-13 한국전자통신연구원 부하 테스트를 통한 서버 애플리케이션 안정성 검증 시스템및 방법
CN101388800A (zh) * 2007-09-12 2009-03-18 百度在线网络技术(北京)有限公司 对服务器的网络性能进行压力测试的方法、设备及系统
US20090156314A1 (en) * 2007-12-18 2009-06-18 Electronics And Telecommunications Research Institute System and method for re-generating packet load for load test
US20100138813A1 (en) * 2008-12-01 2010-06-03 Electronics And Telecommunications Research Institute Method and apparatus for testing online performance on client/server architecture
CN101902367A (zh) * 2009-05-31 2010-12-01 西门子(中国)有限公司 一种产生测试用例的方法及装置
US20110130205A1 (en) * 2009-12-01 2011-06-02 Electronics And Telecommunications Research Institute Game grammar-based packet capture and analysis apparatus and method for conducting game test
US8868646B2 (en) * 2010-12-21 2014-10-21 Electronics And Telecommunications Research Institute Apparatus and method for generating virtual game clients
US20130090172A1 (en) * 2011-10-07 2013-04-11 Electronics And Telecommunications Research Institute System and method for analysing online game packets
CN103593294A (zh) * 2013-11-21 2014-02-19 福建天晴数码有限公司 网络游戏性能测试方法及系统
KR101520056B1 (ko) * 2014-08-24 2015-05-20 주식회사 큐랩 클라우드 기반 모바일/온라인 게임 서버 부하 테스트 자동화 서비스 방법
CN106897206A (zh) * 2015-12-18 2017-06-27 阿里巴巴集团控股有限公司 一种业务测试方法及装置
CN105959177A (zh) * 2016-04-26 2016-09-21 网易(杭州)网络有限公司 一种游戏服务器压力测试脚本的生成方法和装置
CN106209782A (zh) * 2016-06-27 2016-12-07 腾讯科技(深圳)有限公司 一种协议截获系统、协议截获方法以及协议截获装置
CN106528825A (zh) * 2016-11-21 2017-03-22 中国农业银行股份有限公司 一种银行系统压力测试关联交易的发压方法及系统
CN106713077A (zh) * 2017-01-11 2017-05-24 北京瑞星信息技术股份有限公司 代理服务器流量回放方法和系统
CN109284227A (zh) * 2018-09-06 2019-01-29 政采云有限公司 一种自动化压力测试方法及装置、计算设备及存储介质
CN109359003A (zh) * 2018-10-29 2019-02-19 网易(杭州)网络有限公司 游戏服务器压力测试方法、装置及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
肖俊: "软件压力测试及测试工具的研究与实现", 《中国优秀硕士学位论文全文数据库》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306837A (zh) * 2020-11-10 2021-02-02 光大兴陇信托有限责任公司 一种云压力测试方法及平台、设备及可读存储介质
CN115378859A (zh) * 2021-04-13 2022-11-22 百度在线网络技术(北京)有限公司 用于确定极限状态信息的方法、装置、设备、介质和产品
CN115378859B (zh) * 2021-04-13 2023-06-02 百度在线网络技术(北京)有限公司 用于确定极限状态信息的方法、装置、设备、介质和产品
CN114205248A (zh) * 2021-12-15 2022-03-18 建信金融科技有限责任公司 模拟超时响应方法、装置、设备、存储介质及程序产品
CN114205248B (zh) * 2021-12-15 2023-06-13 建信金融科技有限责任公司 模拟超时响应方法、装置、设备及存储介质
CN114490356A (zh) * 2022-01-10 2022-05-13 阿里巴巴(中国)有限公司 压力测试方法、系统、设备及存储介质
CN114615171A (zh) * 2022-03-16 2022-06-10 网易(杭州)网络有限公司 云游戏服务器的压测处理方法、设备、介质及程序产品
CN114615171B (zh) * 2022-03-16 2024-01-30 网易(上海)网络有限公司 云游戏服务器的压测处理方法、设备、介质及程序产品
CN114510430A (zh) * 2022-04-19 2022-05-17 北京焦点新干线信息技术有限公司 压测计划的分配方法、装置、服务器及计算机存储介质
CN114510430B (zh) * 2022-04-19 2022-07-12 北京焦点新干线信息技术有限公司 压测计划的分配方法、装置、服务器及计算机存储介质
CN117194131A (zh) * 2023-11-06 2023-12-08 腾讯科技(深圳)有限公司 数据处理方法、装置、设备、可读存储介质及程序产品
CN117194131B (zh) * 2023-11-06 2024-02-27 腾讯科技(深圳)有限公司 数据处理方法、装置、设备、可读存储介质及程序产品

Also Published As

Publication number Publication date
CN110034972B (zh) 2021-07-06

Similar Documents

Publication Publication Date Title
CN110034972A (zh) 服务器压力测试方法和装置
Richerzhagen et al. Simonstrator: Simulation and prototyping platform for distributed mobile applications
CN109639521B (zh) 区块链性能的测试方法、装置、设备及存储介质
CN100471139C (zh) 一种网络测试的系统和方法
CN110399307A (zh) 一种测试方法、测试平台及目标服务器
CN104978261B (zh) 应用程序的测试方法、装置及系统
CN108510389A (zh) 基于区块链的智能合约调用方法、设备及可读存储介质
CN105677452B (zh) 任务平台任务处理方法和装置
KR20200127169A (ko) 플레이어의 경쟁형 게임플레이 참여 장려
CN109032691A (zh) 一种小程序运行方法、装置及存储介质
CN108170590A (zh) 一种区块链系统的测试系统和方法
CN110213523A (zh) 视频会议处理方法、系统、装置、计算机设备和存储介质
US11354152B2 (en) Self-evolving microservices
CN109639636A (zh) 业务数据转发、业务数据处理方法、装置及电子设备
CN106201794A (zh) 一种服务器的检测方法和装置
CN105637812A (zh) 用于自动化的聊天检测的系统和方法
US20220382936A1 (en) Method and system for micro-service testing, and storage medium
CN109284227A (zh) 一种自动化压力测试方法及装置、计算设备及存储介质
CN109814917A (zh) 微服务发布方法、装置、计算机设备和存储介质
CN109701278A (zh) 一种游戏教学方法、装置、设备及存储介质
CN105988922A (zh) 应用程序的测试方法、装置及服务器
CN109874143A (zh) 一种网络切片的修改方法及装置
CN107749931A (zh) 互动式语音应答的方法、系统、设备及存储介质
CN106301977A (zh) 网络测速的方法及装置
CN110380936A (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