CN108959000B - 一种服务器压力测试方法、系统及终端 - Google Patents
一种服务器压力测试方法、系统及终端 Download PDFInfo
- Publication number
- CN108959000B CN108959000B CN201810634237.3A CN201810634237A CN108959000B CN 108959000 B CN108959000 B CN 108959000B CN 201810634237 A CN201810634237 A CN 201810634237A CN 108959000 B CN108959000 B CN 108959000B
- Authority
- CN
- China
- Prior art keywords
- test
- pressure measurement
- information
- node
- pressure
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Measuring Fluid Pressure (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种服务器压力测试方法、系统及终端,所述方法包括:接收用户在测试页面触发的测试指令,所述测试指令包括压测节点的分布信息,测试配置信息和访问地址;从压测节点队列中确定所述分布信息所对应的压测节点,所述压测节点队列包括分区服务器集群中在本地注册的服务器;向所述所对应的压测节点发送包括所述测试配置信息和所述访问地址的测试指令,以便所述压测节点根据所述测试配置信息向所述访问地址所对应的被测服务器发送测试请求。利用本发明提供的技术方案可以提供分区压测节点资源,模拟真实的用户分布情况,满足高并发压测需求。
Description
技术领域
本发明涉及互联网通信技术领域,尤其涉及一种服务器压力测试方法、系统及终端。
背景技术
随着互联网技术的飞速发展,对服务器的性能和稳定性的要求越来越高,因此,经常需要对服务器进行压力测试,采集服务器性能指标及网络请求的处理速度情况等,从而确保服务器的稳定性。
目前服务器压力测试主要基于压测节点、数据库存储、和web页面三个部分完成。具体的,压测节点根据设置的相关测试参数(包括被测服务器的访问地址、访问人数等)发起压力测试进程;测试启动之后,压测节点处理收发包,并把测试结果数据写入数据库存储;在测试完成后,Web页面可以从数据库读取本次测试的测试结果数据并展示该测试结果数据。上述现有的服务器压力测试方案中压测节点往往是模拟的多进程的压测节点,多进程的压测节点需要一个一个逐个发起测试,在高并发的需求下,逐个启动多个进程带来的延时会造成多个进程测试结果误差较大,且多进程与实际应用中服务器的访问用户之间存在较大差异。因此,需要提供更可靠或更有效的方案。
发明内容
本发明提供了一种服务器压力测试方法、系统及终端,可以提供分区压测节点资源,模拟真实的用户分布情况,满足高并发压测需求。
第一方面,本发明提供了一种服务器压力测试方法,所述方法包括:
接收用户在测试页面触发的测试指令,所述测试指令包括压测节点的分布信息,测试配置信息和访问地址;
从压测节点队列中确定所述分布信息所对应的压测节点,所述压测节点队列包括分区服务器集群中在本地注册的服务器;
向所述所对应的压测节点发送包括所述测试配置信息和所述访问地址的测试指令,以便所述压测节点根据所述测试配置信息向所述访问地址所对应的被测服务器发送测试请求。
第二方面提供了一种服务器压力测试系统,所述系统包括:
测试指令接收模块,用于接收用户在测试页面触发的测试指令,所述测试指令包括压测节点的分布信息,测试配置信息和访问地址;
压测节点确定模块,用于从压测节点队列中确定所述分布信息所对应的压测节点,所述压测节点队列包括分区服务器集群中在本地注册的服务器;
测试指令发送模块,用于向所述所对应的压测节点发送包括所述测试配置信息和所述访问地址的测试指令,以便所述压测节点根据所述测试配置信息向所述访问地址所对应的被测服务器发送测试请求。
第三方面提供了一种服务器压力测试终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的服务器压力测试方法。
第四方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的服务器压力测试方法。
本发明提供的服务器压力测试方法、系统及终端,具有如下技术效果:
本发明将分区服务器集群中在本地注册的服务器作为压测节点,可以提供多分区压测节点资源,保证压测节点分布不同区域,在利用压测节点对被测服务器进行压力测试时,可以更加真实的模拟用户分布情况。同时,服务器集群提供的多分区压测节点资源,能够满足高并发压测需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明提供的压测应用环境的一种实施例的示意图;
图2是本发明提供的压测节点向压测系统进行注册处理的一种实施例的示意图;
图3是本发明提供的服务器压力测试方法的一种实施例的流程示意图;
图4是本发明提供的测试页面的一种实施例的示意图;
图5是本发明提供的从压测节点队列中确定所述分布信息所对应的压测节点的一种实施例的流程示意图;
图6是本发明提供的服务器压力测试方法的另一种实施例的流程示意图;
图7是本发明提供的压测节点向压测系统上报的实时测试数据的一种实施例的示意图;
图8是本发明提供的服务器压力测试方法的另一种实施例的流程示意图;
图9是本发明提供的测试报告页面的一种实施例的示意图;
图10是本发明提供的服务器压力测试系统的一种实施例的结构示意图;
图11是本发明提供的服务器压力测试系统的另一种实施例的结构示意图;
图12是本发明提供的服务器压力测试系统的另一种实施例的结构示意图;
图13是本发明提供的压测终端的一种实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1是本发明提供的压测应用环境的一种实施例的示意图,如图1所示,该应用环境可以包括压测系统01、压测节点02、存储模块03和被测服务器04。
具体的,本说明书实施例中,压测系统01可以包括但不限于一个终端的模式,其还可以为采用终端和服务器模式的系统。具体的,本说明书实施例中,终端可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、智能可穿戴设备等类型的实体设备,也可以包括运行于实体设备中的软体。本说明书实施例中压测系统上运行的操作系统可以包括但不限于安卓系统、IOS系统、linux、windows等。所述服务器可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。
具体的,本说明书实施例中,所述压测节点02可以包括由多个服务器组成的服务器集群中的服务器。另外,当所述压测节点包括多个服务器时,多个服务器可以对应不同IP(Internet Protocol,网络协议)地址,位于不同的区域。
具体的,本说明书实施例中,所述存储模块03可以为存储器,也可以为数据库。且存储模块03可以为测压终端01本地的存储模块,也可以为不在测压终端01本地且测压终端01可以访问的存储模块。
具体的,本说明书实施例中,所述被测服务器04可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。
在实际应用中,访问被测服务器的用户往往位于不同的区域(用户使用的终端设备的IP地址所属的区域不同),本说明书实施例中,在对服务器进行压力测试时,为了更好的模拟服务器实际应对的压力,可以启动位于不同区域的压测节点向服务器发起测试请求。
另外,在压测系统提供压测服务之前,会先进行初始化,在初始化时配置可用的压测节点。如图2所示,具体的,压测节点可以向压测系统发送注册消息(所述注册消息包括压测节点的区域信息和网络协议IP地址信息),以进行注册,在注册时上报压测节点的区域信息和网络协议IP地址信息。压测系统收到压测节点注册消息后,可以将该压测节点加入压测节点队列(可用的压测节点的队列,包括服务器集群中在本地注册的服务器),记录该压测节点的区域信息和IP地址信息,完成注册。这样后续,需要对被测服务器进行压力测试时,可以向相应的压测节点发送测试指令(下发压测任务),实现对被测服务器的压力测试。
以下介绍本发明提供的服务器压力测试方法的一种实施例,图3是本发明提供的服务器压力测试方法的一种实施例的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图3所示,所述方法可以包括:
S301:接收用户在测试页面触发的测试指令,所述测试指令包括压测节点的分布信息,测试配置信息和访问地址。
本说明书实施例中,所述测试页面可以包括测试相关数据的设置界面和测试发起界面。具体的,在实际应用中,同一服务器的访问用户往往分布在不同的区域;本说明书实施例中,为了更好的模拟实际应用中访问被测服务器的用户,测试相关数据可以包括压测节点的分布信息、测试配置信息和访问地址。相应的,本说明书实施例中所述测试相关数据的设置界面可以包括压测节点的分布信息、测试配置信息和访问地址的设置界面。
具体的,压测节点的分布信息可以包括压测节点压测节点的IP地址所属的区域信息以及每个区域所对应的压测节点的数量;这里每个区域所对应的压测节点的数量可以结合每个区域所对应的压测节点的占比和压测节点的总数量确定。具体的示例中,所述区域信息可以为区域的ID(identification,身份)编号。具体的,所述测试配置信息可以包括测试过程中的发包信息、访问数量等测试数据,例如发包模式,访问人数(压测节点数量)等。所述访问地址可以包括被测服务器的一个或多个访问地址,例如被测服务器的登陆访问地址、被测服务器的查询访问地址等。
具体的实施例中,用户可以在测试页面设置好测试相关数据,并可以通过触发测试页面中的测试启动界面的操作来触发所述测试指令。当然本说明书实施例中通过触发测试页面中的测试启动界面的操作来触发所述测试指令,可以包括但并不仅限于通过点击测试页面中的测试启动按钮或通过长按测试页面中的测试启动界面等操作来触发测试指令。
在一个具体的实施例中,如图4所示,图4是本发明提供的测试页面的一种实施例的示意图,具体的,从图4中可见,在测试页面中可以进行起始人数,每节点增加人数,每阶段持续时间以及最大人数等关于访问数量的测试数据的设置。另外,还可以进行发包时间间隔、超时时间(一般超过超时时间还未发包可以确定压测节点发生故障)、发包模式等发包信息的测试数据的设置。
另外,结合图4,在测试页面中还可以进行压测节点的分布信息的设置,例如图中华东区、华南区、华北区、西南区、和香港均分配20%压测节点,当起始人数为200时,即压力测试刚开始并发启动的压测节点数量为200人时,华东区、华南区、华北区、西南区、和香港均分配20%压测节点所对应的压测节点数量可以均为40,相应的,当压测节点数量增加到300时,华东区、华南区、华北区、西南区、和香港均分配20%压测节点所对应的压测节点数量可以均为60。另外,本说明书实施例中,所述压测节点可以为腾讯云等服务器集群中的服务器。
另外,结合图4,在测试页面中还可以进访问地址的设置,具体的,可以添加一个或多个被测服务器的访问地址,另外,还可以添加访问地址相关的参数,例如http协议的访问地址中头部header信息,登陆访问地址中用户名、密码等上下文变量;以及设置一个检查点以配置一个测试预期结果,后续测试执行的时候校验实际测试结果跟预期测试预期结果是否一致。另外,还可以进行测试模型的设置,例如当对被测服务器的单个访问地址进行压力测试,可以采用图4中的默认场景1单场景模式,相应的,该默认场景1被分配压力百分比(压测节点的占比)可以100%。另外,当对被测服务器的多个访问地址进行压力测试时,可以同时对多个访问地址进行压力测试,相应的可以根据实际需求对每个访问地址分配压力百分比。
进一步的,结合图4,在设置好测试相关数据之后,可以通过点击开始测试的按钮的方式来触发测试指令。此外,需要说明的是,本说明书实施例中,图4中的测试页面仅仅是一种示例,本说明书实施例并不以此为限。
S303:从压测节点队列中确定所述分布信息所对应的压测节点,所述压测节点队列包括分区服务器集群中在本地注册的服务器。
本说明书实施例中,压测系统可以维护一个压测节点队列,所述压测节点队列中可以包括分区服务器集群中在本地注册的服务器。压测系统可以调用这些在本地注册的服务器对被测服务器进行压力测试。具体的,所述分区服务器集群可以包括包分布在不同区域的服务器的服务器集群。
如图5所示,图5是本发明提供的从压测节点队列中确定所述分布信息所对应的压测节点的一种实施例的流程示意图;具体的,可以包括:
S501:根据所述压测节点的分布信息确定每一区域所对应压测节点的数量。
S503:从所述压测节点队列中获取所述每一区域所对应压测节点的数量的压测节点。
具体的,本说明书实施例中不同区域所对应的压测节点的数量可以相同,也可以不同,可以结合实际需求进行设置。另外,实际应用中被测服务器的访问用户往往包括多个,相应的,所述分布信息所对应的压测节点可以包括多个压测节点。
S305:向所述所对应的压测节点发送包括所述测试配置信息和所述访问地址的测试指令,以便所述压测节点根据所述测试配置信息向所述访问地址所对应的被测服务器发送测试请求。
本说明书实施例中,压测系统在确定压测节点之后,可以向所述所对应的压测节点发送包括所述测试配置信息和所述访问地址的测试指令,即向压测节点下发测试任务,当分布信息所对应的压测节点可以包括多个压测节点,多个压测节点可以根据所述测试配置信息向所述访问地址所对应的被测服务器发送测试请求。
由以上本说明书实施例提供的技术方案可见,本说明书实施例用户通过在测试页面进行测试相关数据的设置后即可触发压力测试的测试指令,简单便捷。另外,将分区服务器集群中在本地注册的服务器作为压测节点,可以提供多分区压测节点资源,保证压测节点分布不同区域,在利用压测节点对被测服务器进行压力测试时,可以更加真实的模拟用户分布情况。同时,服务器集群提供的多分区压测节点资源,能够满足高并发压测需求。
以下介绍本发明提供的服务器压力测试方法的另一种实施例,图6是本发明提供的服务器压力测试方法的另一种实施例的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图6所示,所述方法可以包括:
S601:接收用户在测试页面触发的测试指令,所述测试指令包括压测节点的分布信息,测试配置信息和访问地址。
S603:从压测节点队列中确定所述分布信息所对应的压测节点,所述压测节点队列包括分区服务器集群中在本地注册的服务器。
S605:向所述所对应的压测节点发送包括所述测试配置信息和所述访问地址的测试指令,以便所述压测节点根据所述测试配置信息向所述访问地址所对应的被测服务器发送测试请求。
S607:接收所述压测节点上报的实时测试数据。
本说明书实施例中,为了让用户掌握测试过程中的实时测试数据,以便及时掌握测试过程中测试变化情况,如图7所示,本说明书实施例中压测节点可以向压测系统上报的实时测试数据。具体的,本说明书实施例中,所述实时测试数据可以包括压测节点发送的数据包、被测服务器返回的数据包、以及数据包发送时间、返回时间、数据包大小等测试过程中产生的数据。相应的,当压测节点发送的数据包并接收到被测服务器返回的数据包后,就将该数据包发送和接收过程产生的数据作为实时测试数据上报给压测系统。
S609:将所述实时测试数据聚类统计后展示在测试报告页面。
在实际应用中,压测系统在测试过程接收到实时测试数据,可以存储在存储模块,(例如数据库)。同时,可以在测试过程对接收到的实时测试数据进行聚类统计处理,将聚类统计后的数据展示在测试报告页面。具体的,这里的聚类统计处理,可以包括将同一类型的数据进行统计。例如,测试过程中服务器的每次的响应时间聚类统计成平均响应时间。
在另一些实施例中,考虑实际应用中,用户可能因为事实测试数据中出现异常等情况需要暂停或停止当前的测试,本说明书实施例中,所述测试报告页面还可以展示有测试控制触发界面;
相应的,如图8所示,所述方法还可以包括:
S611:接收用户在所述测试控制触发界面触发的测试控制指令,向所述压测节点发送与所述测试控制指令相对应的测试指令。
具体的,本说明书实施例中,所述测试控制指令可以至少包括下述之一:测试暂停指令、测试结束指令、测试继续指令。
在另一些实施例中,为了及时发现压测节点的异常情况,测试过程中压测节点可以定期向压测系统发送心跳信息和自身的状态信息,压测系统一旦发下某个节点心跳异常或者收到压测节点的状态信息异常时,就可以及时更新到存储模块(例如数据库),并展示给用户。具体的,所述方法还可以包括:
接收所述压测节点上报的状态信息和心跳信息。
监测所述状态信息和心跳信息是否异常。
当所述状态信息和心跳信息任一出现异常时,在所述测试报告页面展示压测节点异常信息。
本说明书实施例中压测节点的状态信息出现异常可以包括但不限于丢包、宕机等。所述心跳信息异常可以包括但不限于心跳信息发送超时。
在一个具体的实施例中,如图9所示,图9是本发明提供的测试报告页面的一种实施例的示意图,从图9中可见,测试报告页面中展示的剧烈统计后的实施测试数据可以包括当前测试进度、事务、性能、收发包率、网络流量、错误统计(这里统计常见的404和500出现的次数,以及其他异常)等数据。另外,通过点击事务数据、测试配置、压测节点信息等可以获取更多的信息。这里压测节点信息可以包括压测节点异常信息。另外,所述测试报告页面还展示有暂停和结束按钮。
此外,需要说明的是,本说明书实施例中,图9中的测试报告页面仅仅是一种示例,在实际应用中展示的数据和数据的形式并不以图9为限,还可以包括更多或更少的聚类统计后的实时测试数据,且数据的形式还可以包括图表等形式。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中用户通过在测试页面进行测试相关数据的设置后即可触发压力测试的测试指令,简单便捷。另外,将分区服务器集群中在本地注册的服务器作为压测节点,可以提供多分区压测节点资源,保证压测节点分布不同区域,在利用压测节点对被测服务器进行压力测试时,可以更加真实的模拟用户分布情况。同时,服务器集群提供的多分区压测节点资源,能够满足高并发压测需求。另外,通过将压测节点上报的实时测试数据在测试过程中展示,可以让用户及时了解压测过长的实时测试数据,便于及时掌握压测过程中测试变化、异常等情况。大大提高压测过程中的交互性、实时性,有效改善了用户体验。
本发明实施例还提供了一种服务器压力测试系统,如图10所示,所述装置包括:
测试指令接收模块1010,可以用于接收用户在测试页面触发的测试指令,所述测试指令包括压测节点的分布信息,测试配置信息和访问地址;
压测节点确定模块1020,可以用于从压测节点队列中确定所述分布信息所对应的压测节点,所述压测节点队列包括分区服务器集群中在本地注册的服务器;
测试指令发送模块1030,可以用于向所述所对应的压测节点发送包括所述测试配置信息和所述访问地址的测试指令,以便所述压测节点根据所述测试配置信息向所述访问地址所对应的被测服务器发送测试请求。
另一实施例中,如图11所示,所述系统还可以包括:
注册消息接收模块1040,可以用于在接收用户在测试页面触发的测试指令之前,接收压测节点发送的注册消息,所述注册消息包括压测节点的区域信息和网络协议IP地址信息;
注册处理模块1050,可以用于将所述压测节点加入压测节点队列,记录所述压测节点的区域信息和IP地址信息。
另一实施例中,如图12所示,所述系统还可以包括:
实时测试数据接收模块1060,可以用于接收所述压测节点上报的实时测试数据;
数据展示模块1070,可以用于将所述实时测试数据聚类统计后展示在测试报告页面。
另一实施例中,所述测试报告页面还展示有测试控制触发界面;
相应的,所述系统还可以包括:
测试控制指令接收模块,用于接收用户在所述测试控制触发界面触发的测试控制指令,向所述压测节点发送与所述测试控制指令相对应的测试指令。
另一实施例中,所述系统还包括:
压测节点信息接收模块,可以用于接收所述压测节点上报的状态信息和心跳信息;
异常监测模块,可以用于监测所述状态信息和心跳信息是否异常;
异常展示模块,可以用于当所述异常监测模块监测到所述状态信息和心跳信息任一出现异常时,在所述测试报告页面展示压测节点异常信息。
另一实施例中,所述压测节点确定模块1020可以包括:
数量确定单元,可以用于根据所述压测节点的分布信息确定每一区域所对应压测节点的数量;
压测节点确定单元,可以用于从所述压测节点队列中获取所述每一区域所对应压测节点的数量的压测节点。
所述的系统实施例中的装置与方法实施例基于同样地发明构思。
本发明实施例提供了一种服务器压力测试终端,该服务器压力测试终端包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例所提供的服务器压力测试方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本发明实施例所提供的方法实施例可以在终端、服务器或者类似的运算装置中执行。以运行在终端上为例,如图13所示,本发明实施例还提供了一种压测终端的结构示意图,该压测终端可以用于实施上述实施例中提供的服务器压力测试方法。具体来讲:
所述压测终端可以包括RF(Radio Frequency,射频)电路1310、包括有一个或一个以上计算机可读存储介质的存储器1320、输入单元1330、显示单元1340、传感器1350、音频电路1360、WiFi(wireless fidelity,无线保真)模块1370、包括有一个或者一个以上处理核心的处理器1380、以及电源1390等部件。本领域技术人员可以理解,图13中示出的压测终端结构并不构成对压测终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路1310可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器1380处理;另外,将涉及上行的数据发送给基站。通常,RF电路1310包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路810还可以通过无线通信与网络和其他终端通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code DivisionMultiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器1320可用于存储软件程序以及模块,处理器1380通过运行存储在存储器1320的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述压测终端的使用所创建的数据等。此外,存储器1320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1320还可以包括存储器控制器,以提供处理器880和输入单元1330对存储器1320的访问。
输入单元1330可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元1330可包括触敏表面1331以及其他输入设备1332。触敏表面1331,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面1331上或在触敏表面1331附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面1331可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1380,并能接收处理器1380发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面1331。除了触敏表面1331,输入单元1330还可以包括其他输入设备1332。具体地,其他输入设备1332可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1340可用于显示由用户输入的信息或提供给用户的信息以及所述压测终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元1340可包括显示面板1341,可选的,可以采用LCD(Liquid CrystalDisplay,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板1341。进一步的,触敏表面1331可覆盖显示面板1341,当触敏表面1331检测到在其上或附近的触摸操作后,传送给处理器1380以确定触摸事件的类型,随后处理器1380根据触摸事件的类型在显示面板1341上提供相应的视觉输出。其中,触敏表面1331与显示面板1341可以两个独立的部件来实现输入和输入功能,但是在某些实施例中,也可以将触敏表面1331与显示面板1341集成而实现输入和输出功能。
所述压测终端还可包括至少一种传感器1350,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1341的亮度,接近传感器可在所述压测终端移动到耳边时,关闭显示面板1341和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别压测终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于所述压测终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1360、扬声器1361,传声器1362可提供用户与所述压测终端之间的音频接口。音频电路1360可将接收到的音频数据转换后的电信号,传输到扬声器1361,由扬声器1361转换为声音信号输出;另一方面,传声器1362将收集的声音信号转换为电信号,由音频电路1360接收后转换为音频数据,再将音频数据输出处理器1380处理后,经RF电路1310以发送给比如另一压测终端,或者将音频数据输出至存储器1320以便进一步处理。音频电路1360还可能包括耳塞插孔,以提供外设耳机与所述压测终端的通信。
WiFi属于短距离无线传输技术,所述压测终端通过WiFi模块1370可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图13示出了WiFi模块1370,但是可以理解的是,其并不属于所述压测终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1380是所述压测终端的控制中心,利用各种接口和线路连接整个压测终端的各个部分,通过运行或执行存储在存储器1320内的软件程序和/或模块,以及调用存储在存储器1320内的数据,执行所述压测终端的各种功能和处理数据,从而对压测终端进行整体监控。可选的,处理器1380可包括一个或多个处理核心;优选的,处理器1380可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1380中。
所述压测终端还包括给各个部件供电的电源1390(比如电池),优选的,电源可以通过电源管理系统与处理器1380逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1390还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
本发明的实施例还提供了一种存储介质,所述存储介质可设置于终端之中以保存用于实现方法实施例中一种服务器压力测试方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的服务器压力测试方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
由上述本发明提供的服务器压力测试方法、系统、终端或存储介质的实施例可见,本发明中用户通过在测试页面进行测试相关数据的设置后即可触发压力测试的测试指令,简单便捷。另外,将分区服务器集群中在本地注册的服务器作为压测节点,可以提供多分区压测节点资源,保证压测节点分布不同区域,在利用压测节点对被测服务器进行压力测试时,可以更加真实的模拟用户分布情况。同时,服务器集群提供的多分区压测节点资源,能够满足高并发压测需求。另外,通过将压测节点上报的实时测试数据在测试过程中展示,可以让用户及时了解压测过长的实时测试数据,便于及时掌握压测过程中测试变化、异常等情况。大大提高压测过程中的交互性、实时性,有效改善了用户体验。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统和终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种服务器压力测试方法,其特征在于,所述方法包括:
接收用户在测试页面触发的测试指令,所述测试指令包括压测节点的分布信息,测试配置信息和访问地址,所述分布信息表征被测服务器对应访问用户的区域分布情况;
从压测节点队列中确定所述分布信息所对应的压测节点,所述压测节点队列包括分区服务器集群中在本地注册的服务器,所述压测节点队列中的压测节点用于模拟真实用户的访问以进行压测,所述对应的压测节点的注册消息所指示的区域分布与所述分布信息相匹配;
向所述所对应的压测节点发送包括所述测试配置信息和所述访问地址的测试指令,以便所述压测节点根据所述测试配置信息向所述访问地址所对应的所述被测服务器发送测试请求。
2.根据权利要求1所述的方法,其特征在于,在接收用户在测试页面触发的测试指令之前,所述方法还包括:
接收压测节点发送的注册消息,所述注册消息包括压测节点的区域信息和网络协议IP地址信息;
将所述压测节点加入压测节点队列,记录所述压测节点的区域信息和IP地址信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述压测节点上报的实时测试数据;
将所述实时测试数据聚类统计后展示在测试报告页面。
4.根据权利要求3所述的方法,其特征在于,所述测试报告页面还展示有测试控制触发界面;
相应的,所述方法还包括:
接收用户在所述测试控制触发界面触发的测试控制指令,向所述压测节点发送与所述测试控制指令相对应的测试指令。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
接收所述压测节点上报的状态信息和心跳信息;
监测所述状态信息和心跳信息是否异常;
当所述状态信息和心跳信息任一出现异常时,在所述测试报告页面展示压测节点异常信息。
6.根据权利要求1至5任一所述的方法,其特征在于,所述从压测节点队列中确定所述分布信息所对应的压测节点包括:
根据所述压测节点的分布信息确定每一区域所对应压测节点的数量;
从所述压测节点队列中获取所述每一区域所对应压测节点的数量的压测节点。
7.一种服务器压力测试系统,其特征在于,所述系统包括:
测试指令接收模块,用于接收用户在测试页面触发的测试指令,所述测试指令包括压测节点的分布信息,测试配置信息和访问地址,所述分布信息表征被测服务器对应访问用户的区域分布情况;
压测节点确定模块,用于从压测节点队列中确定所述分布信息所对应的压测节点,所述压测节点队列包括分区服务器集群中在本地注册的服务器,所述压测节点队列中的压测节点用于模拟真实用户的访问以进行压测,所述对应的压测节点的注册消息所指示的区域分布与所述分布信息相匹配;
测试指令发送模块,用于向所述所对应的压测节点发送包括所述测试配置信息和所述访问地址的测试指令,以便所述压测节点根据所述测试配置信息向所述访问地址所对应的被测服务器发送测试请求。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括:
注册消息接收模块,用于在接收用户在测试页面触发的测试指令之前,接收压测节点发送的注册消息,所述注册消息包括压测节点的区域信息和网络协议IP地址信息;
注册处理模块,用于将所述压测节点加入压测节点队列,记录所述压测节点的区域信息和IP地址信息。
9.根据权利要求7所述的系统,其特征在于,所述系统还包括:
实时测试数据接收模块,用于接收所述压测节点上报的实时测试数据;
数据展示模块,用于将所述实时测试数据聚类统计后展示在测试报告页面。
10.根据权利要求9所述的系统,其特征在于,所述测试报告页面还展示有测试控制触发界面;
相应的,所述系统还包括:
测试控制指令接收模块,用于接收用户在所述测试控制触发界面触发的测试控制指令,向所述压测节点发送与所述测试控制指令相对应的测试指令。
11.根据权利要求9所述的系统,其特征在于,所述系统还包括:
压测节点信息接收模块,用于接收所述压测节点上报的状态信息和心跳信息;
异常监测模块,用于监测所述状态信息和心跳信息是否异常;
异常展示模块,用于当所述异常监测模块监测到所述状态信息和心跳信息任一出现异常时,在所述测试报告页面展示压测节点异常信息。
12.根据权利要求7至11任一所述的系统,其特征在于,所述压测节点确定模块包括:
数量确定单元,用于根据所述压测节点的分布信息确定每一区域所对应压测节点的数量;
压测节点确定单元,用于从所述压测节点队列中获取所述每一区域所对应压测节点的数量的压测节点。
13.一种服务器压力测试终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至6任一所述的服务器压力测试方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至6任一所述的服务器压力测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810634237.3A CN108959000B (zh) | 2018-06-20 | 2018-06-20 | 一种服务器压力测试方法、系统及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810634237.3A CN108959000B (zh) | 2018-06-20 | 2018-06-20 | 一种服务器压力测试方法、系统及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108959000A CN108959000A (zh) | 2018-12-07 |
CN108959000B true CN108959000B (zh) | 2022-02-18 |
Family
ID=64491812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810634237.3A Active CN108959000B (zh) | 2018-06-20 | 2018-06-20 | 一种服务器压力测试方法、系统及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108959000B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739708B (zh) * | 2019-01-02 | 2023-07-21 | 网易(杭州)网络有限公司 | 测试压力的方法、装置和系统 |
CN111752822A (zh) * | 2019-03-29 | 2020-10-09 | 上海哔哩哔哩科技有限公司 | 一种容器化压测调度方法、计算机设备及可读存储介质 |
CN110175110B (zh) * | 2019-05-31 | 2022-04-01 | 深圳前海微众银行股份有限公司 | 压力测试方法、装置、系统、设备及计算机可读存储介质 |
CN110362474A (zh) * | 2019-06-13 | 2019-10-22 | 上海紫翊网络科技有限公司 | 一种分布式游戏测试方法、系统、装置及存储介质 |
CN110489339B (zh) * | 2019-07-26 | 2023-01-03 | 北京字节跳动网络技术有限公司 | 客户端压测报表生成方法、系统、介质和电子设备 |
CN112463573A (zh) * | 2019-09-06 | 2021-03-09 | 北京字节跳动网络技术有限公司 | 测试应用的方法、装置、终端及存储介质 |
CN110727564A (zh) * | 2019-10-22 | 2020-01-24 | 上海游族信息技术有限公司 | 服务器性能压力测试的测试数据实时监控方法 |
CN111404769B (zh) * | 2020-02-28 | 2022-07-08 | 北京达佳互联信息技术有限公司 | 一种性能测试方法、装置、服务器及存储介质 |
CN113835994A (zh) * | 2020-06-24 | 2021-12-24 | 上海莉莉丝科技股份有限公司 | 基于Golang语言的服务器压力测试系统、方法及计算机可读存储介质 |
CN112306837A (zh) * | 2020-11-10 | 2021-02-02 | 光大兴陇信托有限责任公司 | 一种云压力测试方法及平台、设备及可读存储介质 |
CN112506751B (zh) * | 2020-11-27 | 2022-11-18 | 浪潮电子信息产业股份有限公司 | 一种服务器整机性能的对比测试方法、装置、设备及介质 |
CN113037594B (zh) * | 2021-03-24 | 2022-09-16 | 北京百度网讯科技有限公司 | 基于云服务的压力测试方法和装置 |
CN113608974B (zh) * | 2021-06-29 | 2023-12-22 | 济南浪潮数据技术有限公司 | 一种分布式存储系统的性能压测方法、系统及相关组件 |
CN113672495A (zh) * | 2021-07-06 | 2021-11-19 | 微梦创科网络科技(中国)有限公司 | 一种对生产环境实施全链路压测的系统及方法 |
CN113609026B (zh) * | 2021-08-20 | 2022-09-16 | 盐城金堤科技有限公司 | 对服务器进行压力测试的方法和装置 |
CN113835946B (zh) * | 2021-10-26 | 2023-12-12 | 北京淳中科技股份有限公司 | 数据交换的压力测试方法 |
CN114257529A (zh) * | 2021-12-24 | 2022-03-29 | 深圳市欣博跃电子有限公司 | 网络设备稳定性测试方法、装置、设备、系统及介质 |
CN114490356A (zh) * | 2022-01-10 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 压力测试方法、系统、设备及存储介质 |
CN114465927B (zh) * | 2022-04-12 | 2022-08-02 | 鹏城实验室 | Dns服务器压力测试方法、电子设备及可读存储介质 |
CN116501559B (zh) * | 2023-04-18 | 2024-04-26 | 杭州指令集智能科技有限公司 | 基于Netty实现分布式HTTP接口性能测试方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130043311A (ko) * | 2011-10-20 | 2013-04-30 | 엔에이치엔(주) | 서버에 자동화 테스트를 제공하는 방법 및 시스템 |
CN105404580A (zh) * | 2015-10-23 | 2016-03-16 | 努比亚技术有限公司 | 分布式压力测试系统和方法 |
CN106649088A (zh) * | 2016-10-09 | 2017-05-10 | 网易(杭州)网络有限公司 | 一种分布式压力测试方法和系统 |
CN108075951A (zh) * | 2017-12-26 | 2018-05-25 | 珠海金山网络游戏科技有限公司 | 一种基于玩家分布的服务器压力测试方法和装置 |
-
2018
- 2018-06-20 CN CN201810634237.3A patent/CN108959000B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130043311A (ko) * | 2011-10-20 | 2013-04-30 | 엔에이치엔(주) | 서버에 자동화 테스트를 제공하는 방법 및 시스템 |
CN105404580A (zh) * | 2015-10-23 | 2016-03-16 | 努比亚技术有限公司 | 分布式压力测试系统和方法 |
CN106649088A (zh) * | 2016-10-09 | 2017-05-10 | 网易(杭州)网络有限公司 | 一种分布式压力测试方法和系统 |
CN108075951A (zh) * | 2017-12-26 | 2018-05-25 | 珠海金山网络游戏科技有限公司 | 一种基于玩家分布的服务器压力测试方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108959000A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959000B (zh) | 一种服务器压力测试方法、系统及终端 | |
CN108039963B (zh) | 一种容器配置方法、装置及存储介质 | |
CN111176961B (zh) | 一种应用程序测试方法、装置及存储介质 | |
CN104852885B (zh) | 一种进行验证码验证的方法、装置和系统 | |
CN107204964B (zh) | 一种权限管理的方法、装置和系统 | |
CN106649126B (zh) | 一种对应用程序进行测试的方法和装置 | |
CN106294168B (zh) | 一种进行应用程序测试的方法和系统 | |
CN106254910B (zh) | 一种记录图像的方法和装置 | |
CN110020293B (zh) | 多媒体数据展示方法、装置及存储介质 | |
CN111078556B (zh) | 应用测试方法及装置 | |
CN108810057B (zh) | 用户行为数据的采集方法、装置及存储介质 | |
CN105227598B (zh) | 一种基于云存储的资源分享方法、装置和系统 | |
CN104809055B (zh) | 一种基于云平台的应用程序测试方法和装置 | |
CN108874653B (zh) | 任务测试方法、测试机、共享服务器和可读存储介质 | |
CN112749074B (zh) | 一种测试用例推荐方法以及装置 | |
WO2014183438A1 (en) | Method, apparatus, and communication system for allocating and managing voice channels | |
CN110069407B (zh) | 一种应用程序的功能测试方法和装置 | |
CN109728918B (zh) | 虚拟物品发送方法、虚拟物品接收方法、装置及存储介质 | |
CN109714811A (zh) | 一种终端状态检测方法、装置、终端和存储介质 | |
CN105631059B (zh) | 数据处理方法、数据处理装置及数据处理系统 | |
CN106709330B (zh) | 记录文件执行行为的方法及装置 | |
CN108269223B (zh) | 一种网页图形绘制方法及终端 | |
CN109145182B (zh) | 数据采集方法、装置、计算机设备及系统 | |
CN106209601B (zh) | 状态更新消息的推送方法及装置 | |
CN115118636A (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 |