本发明实施例涉及测试技术领域,特别涉及一种服务器的测试方法、测试装置及测试系统。
背景技术:
随着互联网业务的快速发展,为了保持服务的时效性,越来越多的应用在客户端与服务器之间采用tcp长连接的方式进行通讯。tcp长连接是一种先建立通讯连接,连接建立后不断开,从而可以重复进行报文发送和接收的连接方式,保证了服务的时效性。
发明人发现现有技术中至少存在如下问题:对于服务器来说,在tcp长连接高并发的业务场景下,如果超过了服务器可承受范围,则会导致服务器瘫痪,无法为用户提供服务。
技术实现要素:
本发明实施方式的目的在于提供一种服务器的测试方法、测试装置及测试系统,能够在服务端保持tcp长连接并发个数为测试连接数的场景下,对服务端能否提供稳定服务进行判断,实现了对服务端提供tcp长连接的服务能力的测试。
为解决上述技术问题,本发明的实施方式提供了一种服务器的测试方法,包括:根据至少包括测试连接数的测试参数,控制测试端与待测的服务端建立个数为所述测试连接数的tcp长连接;维持所述测试端与所述服务端之间的各所述tcp长连接;根据获取的所述服务端的第一性能指标,确定所述服务端是否通过测试。
本发明的实施方式还提供了一种测试装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的服务器的测试方法。
本发明的实施方式还提供了一种测试系统,包括:上述的测试装置,以及分别连接于测试装置的测试端与服务端。
本发明实施方式相对于现有技术而言,根据预设的测试参数中的测试连接数,控制测试端与服务端之间建立个数为测试连接数的tcp长连接,并且在测试过程中,维持各tcp长连接,从而避免了tcp长连接关闭,即维持了服务端的tcp长连接的并发连接数;然后,获取服务端的第一性能指标,并根据该第一性能指标,判断服务端是否通过测试,即在服务端保持tcp长连接并发个数为测试连接数的场景下,对服务端能否提供稳定服务进行判断,实现了对服务端提供tcp长连接的服务能力的测试。
另外,在确定所述服务端通过测试时,按照预设方式增大所述测试连接数,控制所述测试端与所述服务端建立个数为增大后的所述测试连接数的所述tcp长连接,并再次根据获取的所述服务端的第一性能指标,确定所述服务端是否通过测试;在确定所述服务端未通过测试时,将上一次通过测试的所述测试连接数作为所述服务端的接入上限值。本实施方式中,能够测试服务端的tcp长连接的接入上限值,从而能够准确衡量服务端对tcp长连接的负载能力。
另外,测试参数还包括递增步长;按照预设方式增大测试连接数,具体为:计算测试连接数与递增步长的和,作为增大后的测试连接数。本实施方式提供按照预设方式增大测试连接数的一种具体实现方式。
另外,所述服务端包括多个服务器;所述控制测试端与所述服务端建立个数为所述测试连接数的tcp长连接,具体为:通过负载均衡设备,控制测试端与所述服务端中的各所述服务器分别建立个数为所述测试连接数的所述tcp长连接。本实施方式提供了对包括多个服务器的服务端进行测试的一种具体实现方式。
另外,在所述通过负载均衡设备,控制测试端与所述服务端中的各所述服务器分别建立个数为所述测试连接数的所述tcp长连接之后,还包括:根据获取的所述负载均衡设备的第二性能指标,确定是否停止测试。本实施方式中,对负载均衡设备的第二性能指标进行监测,从而避免了负载均衡设备对服务端的测试造成影响。
另外,所述测试端中包括多个测试机;所述控制测试端与所述服务端建立个数为所述测试连接数的tcp长连接,具体为:控制所述测试端中的所述测试机与所述服务端建立个数为所述测试连接数的所述tcp长连接。本实施方式中,通过包括多个测试机的测试端对服务端进行测试。
另外,在所述控制所述测试端中的所述测试机与所述服务端建立个数为所述测试连接数的所述tcp长连接之后,还包括:根据获取的所述测试机的第三性能指标,确定是否停止测试。本实施方式中,对测试端中的测试机的第三性能指标进行监控,从而避免了测试机对服务端的测试造成影响。
另外,在确定停止测试时,发出预设的报警信号。本实施方式中,在确定停止测试时,通过发出预警信号及时通知维护人员,以及时进行故障排除。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式中的服务器的测试方法应用的测试系统的方框示意图;
图2是根据本发明第一实施方式中的服务器的测试方法的具体流程图;
图3是根据本发明第一实施方式中的测试系统的方框示意图;
图4是根据本发明第二实施方式中的服务器的测试方法的具体流程图;
图5是根据本发明第三实施方式中的服务器的测试方法的具体流程图;
图6是根据本发明第三实施方式中的服务器的测试方法应用的测试系统的方框示意图;
图7是根据本发明第四实施方式中的服务器的测试方法的具体流程图;
图8是根据本发明第四实施方式中的服务器的测试方法应用的测试系统的方框示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种服务器的测试方法,应用于测试系统中的测试装置,测试装置能对服务端的tcp长连接的负载能力进行测试,测试装置可以为一个安装有测试工具的测试客户端;请参考图1,测试系统包括:测试装置1、分别连接测试装置1的测试端2与服务端3。
本实施方式的服务器的测试方法的具体流程如图2所示。
步骤101,根据至少包括测试连接数的测试参数,控制测试端与待测的服务端建立个数为测试连接数的tcp长连接。
具体而言,用户可以针对不同的测试场景,设定不同的测试参数,测试参数至少包括测试连接数,例如针对不同用户量的服务端,可以根据用户量级来设定测试连接数。测试装置根据测试参数中的测试连接数,控制测试端与服务端建立tcp长连接,即通过测试端模拟与服务端的tcp长连接,tcp长连接的个数为测试连接数;测试端与服务端建立tcp长连接的方式在此不再赘述。
在一个例子中,测试参数可以是excel文件的形式,测试装置在开始测试时可以读取存放在预设位置的excel文件的测试参数。
步骤102,维持测试端与服务端之间的各tcp长连接。
具体而言,在测试的过程中,测试装置利用tcp心跳机制来维持测试端与服务端之间的各tcp长连接,具体的,以任一tcp长连接为例,测试装置控制测试端按照预设周期在该tcp长连接对应的通道上向服务端发送心跳检测报文,以维持该tcp长连接;例如,在测试端的线程任务队列中添加该tcp长连接的定时任务,定时判断是否调用空闲超时,如果超时则触发超时事件,在该tcp长连接对应的通道上向服务端发送心跳检测报文,从而实现了心跳检测报文的定时发送,维持了该tcp长连接。
步骤103,根据获取的服务端的第一性能指标,确定服务端是否通过测试。
具体而言,服务端上部署有监测工具,可以定时采集服务端的第一性能指标,第一性能指标例如为cpu利用率、内存占用率等。在一个例子中,请参考图3,测试系统还包括监控服务器4,服务端上的监测工具定时采集服务端的第一性能指标,并发送到监控服务器,监控服务器接收监测工具发送的服务端的第一性能指标,并统计服务端的第一性能指标,然后在测试装置上显示第一性能指标的时间趋势图。本实施例中,测试装置通过监控服务器来确定服务端是否通过测试。以第一性能指标为cpu利用率为例,监控服务器判断接收到的cpu利用率是否小于预设的阈值,若该cpu利用率小于预设的阈值,则说明服务端在保持tcp长连接并发个数为测试连接数的场景下,仍能够提供稳定的服务,判定服务端通过测试,并将该测试结果发送到测试装置进行显示;若该cpu利用率大于或等于预设的阈值,则说明服务端在保持tcp长连接并发个数为测试连接数的场景下,无法提供稳定的服务,可能会宕机,服务端未通过测试,并将该测试结果发送到测试装置进行显示。
在一个例子中,测试参数还包括测试时间;服务端保持tcp长连接并发个数为测试连接数,若在测试时间内,服务端的第一性能指标均未超过预设的阈值,则说明服务端通过测试;若在测试时间内,服务端的第一性能指标超过了预设的阈值,则说明服务端未通过测试。
本实施方式相对于现有技术而言,根据预设的测试参数中的测试连接数,控制测试端与服务端之间建立个数为测试连接数的tcp长连接,并且在测试过程中,维持各tcp长连接,从而避免了tcp长连接关闭,即维持了服务端的tcp长连接的并发连接数;然后,获取服务端的第一性能指标,并根据该第一性能指标,判断服务端是否通过测试,即在服务端保持tcp长连接并发个数为测试连接数的场景下,对服务端能否提供稳定服务进行判断,实现了对服务端提供tcp长连接的服务能力的测试。
本发明的第二实施方式涉及一种服务器的测试方法,本实施方式是在第一实施方式基础上的改进,主要改进之处在于:能够测试服务端的tcp上连接的接入上限值。
本实施方式的服务器的测试方法的具体流程如图4所示。
其中,步骤201、步骤202与步骤101、步骤102大致相同,在此不再赘述,主要不同之处在于,增加了步骤202、步骤205,具体如下:
步骤203,根据获取的服务端的第一性能指标,确定服务端是否通过测试。若是,则进入步骤204;若否,则进入步骤205。
具体而言,与第一实施例中步骤103大致相同,在此不再赘述。
步骤204,按照预设方式增大测试连接数,控制测试端与服务端建立个数为增大后的测试连接数的tcp长连接。
具体而言,测试装置按照预设方式增大测试连接数,在一个例子中,测试参数还包括递增步长;测试装置可以计算测试连接数与递增步长的和,作为增大后的测试连接数。举例来说,上一次通过测试的测试连接数为a、递增步长为b,则增大后的测试连接数为c;继而测试装置控制控制测试端与服务端建立个数为增大后的测试连接数的tcp长连接,具体方式可以为直接新建b个tcp长连接,或者关闭之前建立的a个tcp长连接,控制测试端与服务端之间新建c个tcp长连接,然后回到步骤203,再次根据获取的服务端的第一性能指标,确定服务端是否通过测试,若确定通过测试,则再次执行本步骤;反之则执行步骤205。
需要说明的是,在测试装置控制控制测试端与服务端建立个数为增大后的测试连接数的tcp长连接之后,仍然维持测试端与服务端之间的各tcp长连接。
步骤205,将上一次通过测试的测试连接数作为服务端的接入上限值。
具体而言,若在步骤203中,确定服务端未通过测试,则说明在本次测试中,服务端在保持tcp长连接并发个数为测试连接数的场景下,无法提供稳定的服务,则将上一次通过测试的测试连接数作为服务端的接入上限值。
本实施方式相对于第一实施方式而言,能够测试服务端的tcp长连接的接入上限值,从而能够准确衡量服务端对tcp长连接的负载能力。
本发明第三实施方式涉及一种服务器的测试方法,本实施方式是在第一实施方式基础上的改进,主要改进之处在于:对包括多个服务器的服务端进行测试。
本实施方式的服务器的测试方法的具体流程如图5所示。
步骤301,通过负载均衡设备,控制测试端与所述服务端中的各所述服务器分别建立个数为所述测试连接数的所述tcp长连接。
具体而言,用户可以针对不同的测试场景,设定不同的测试参数,测试参数至少包括测试连接数,例如针对不同用户量的服务端,可以根据用户量级来设定测试连接数。对百万量级、千万量级的用户量来说,一般会通过包括多个服务器的服务端来为用户提供服务器,请参考图6,测试系统还包括负载均衡设备5、服务端3中包括多个服务器31,负载均衡设备5用于转发测试端2发出的新建tcp长连接的指令到对应的服务器31。在对该服务端进行测试时,即为对服务端中的服务器进行测试,测试端发送的新建tcp长连接的指令到负载均衡设备,负载均衡设备该指令发送到对应的服务器,以在测试端与服务器之间新建tcp长连接。具体的,测试参数中包括各服务器的ip地址,对个每个服务器来说,测试端发送到负载均衡设备的新建tcp长连接的指令中包括服务器的ip地址,从而负载均衡设备能够将该指令转发到对应的服务器,使得测试端与对应的服务器建立个数为测试连接数的tcp长连接。
步骤302,维持测试端与各服务器之间的各tcp长连接。
具体而言,与第一实施例中步骤102大致相同,主要不同之处在于:本步骤中维持测试端与服务端中的各服务器之间的各tcp长连接。
步骤304,根据获取的负载均衡设备的第二性能指标,确定是否停止测试。
具体而言,负载均衡设备上部署有监测工具,可以定时采集负载均衡设备的第二性能指标,第二性能指标例如为并发连接数、新建连接数等。在一个例子中,监测工具定时采集负载均衡设备的第二性能指标,并发送到监控服务器,监控服务器接收负载均衡设备的第二性能指标,并统计负载均衡设备的第二性能指标,然后在测试装置上显示第二性能指标的时间趋势图。测试装置可以通过监控服务器来判断负载均衡设备是否处于超负载状态;具体的,以第二性能指标为新建连接数为例,监控服务器在负载均衡设备的新建连接数大于预设的新建连接阈值时,判定负载均衡设备处于超负载状态,此时测试装置控制停止测试;监控服务器在负载均衡设备的新建连接数小于或等于预设的新建连接阈值时,判定负载均衡设备处于正常状态,此时测试装置无需进行操作,继续测试。
在一个例子中,监控服务器在判定负载均衡设备处于超负载状态时,发出预设的报警信号,通过发出预警信号及时通知维护人员,以及时进行故障排除;例如,报警信号为预设文字,则监控服务器将该文字以邮件的形式发送到预设的邮箱,或者以短消息的形式发送到预设号码;报警信号为预设语音,则直接通过播音装置播放预设语音。另外,在步骤304中,若判断任一服务器未通过测试时,同样可以通过监控服务器发出预设的报警信号。
步骤304,根据获取的各服务器的第一性能指标,确定各服务器是否通过测试。
具体而言,与第一实施例中步骤103大致相同,主要不同之处在于:本实施例中,对服务端中的多个服务器分别进行监测,以判断各服务器是否通过测试。
本实施方式相对于第一实施方式而言,能够对包括多个服务器的服务端进行测试;并且,对负载均衡设备的第二性能指标进行监测,从而避免了负载均衡设备对各服务器的测试造成影响。本实施方式还可以作为在第二实施例基础上的改进,可以达到同样的技术效果。
本发明第四实施方式涉及一种服务器的测试方法,本实施方式是在第一实施方式基础上的改进,主要改进之处在于:对测试端中的测试机进行监控。
本实施方式的服务器的测试方法的具体流程如图7所示。
子步骤401,控制测试端中的测试机与服务端建立个数为测试连接数的tcp长连接。
具体而言,用户可以针对不同的测试场景,设定不同的测试参数,测试参数至少包括测试连接数,例如针对不同用户量的服务端,可以根据用户量级来设定测试连接数。为了模拟百万量级、千万量级的tcp长连接并发的测试场景,可以在测试端中设定多个测试机,请参考图8,测试端2中包括多个测试机21。测试装置根据测试参数中测试连接数,来对测试端中的多个测试机依次进行部署,以控制多个测试机与服务端建立个数为测试连接数的tcp长连接。
步骤402,维持测试端与服务端之间的各tcp长连接。
具体而言,与第一实施例中步骤102大致相同,主要不同之处在于:本步骤中维持各测试机与服务端之间的各tcp长连接。
步骤403,根据获取的测试机的第三性能指标,确定是否停止测试。
具体而言,每台测试机上均部署有监测工具,可以定时采集测试机的第三性能指标,第三性能指标例如为响应时间、每秒事务处理量(transactionpersecond,简称tps)等。在一个例子中,以任意一台测试机为例,监测工具定时采集该测试机的第三性能指标,并发送到预设的监控服务器,监控服务器接收测试机的第三性能指标,并统计测试机的第三性能指标,然后在测试装置上显示该测试集的第三性能指标的时间趋势图。测试装置通过监控服务器判断测试机是否处于超负载状态;具体的,以第三性能指标为每秒事务处理量为例,表示测试机每秒处理的指令的数量,监控服务器在测试机的每秒事务处理量大于预设的处理量阈值时,判定测试机处于超负载状态,测试装置控制停止测试;监控服务器在测试机的每秒事务处理量小于或等于预设的处理量阈值时,判定测试机处于正常状态,此时测试装置无需进行操作,继续测试。
在一个例子中,监控服务器在判定测试机处于超负载状态时,发出预设的报警信号,通过发出预警信号及时通知维护人员,以及时进行故障排除;例如,报警信号为预设文字,则监控服务器将该文字以邮件的形式发送到预设的邮箱,或者以短消息的形式发送到预设号码;报警信号为预设语音,则直接通过播音装置播放预设语音。另外,在步骤404中,若判断服务端未通过测试时,同样可以通过监控服务器发出预设的报警信号。
步骤404,根据获取的服务端的第一性能指标,确定服务端是否通过测试。
具体而言,与第一实施例中步骤103大致相同,在此不再赘述。
本实施方式相对于第一实施方式而言,对测试端中的测试机的第三性能指标进行监控,从而避免了测试机对服务端的测试造成影响。本实施方式还可以作为在第三实施例基础上的改进,可以达到同样的技术效果。
本发明的第五实施方式涉及一种测试装置,测试装置能对服务端的tcp长连接的负载能力进行测试,测试装置可以为一个安装有测试工具的测试客户端。
本实施例中测试装置包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行第一至第四实施例中任一项的服务器的测试方法。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明的第六实施方式涉及一种测试系统,请参考图1,测试系统至少包括:测试装置1、分别连接测试装置1的服务端2与服务端3,测试装置1为第五实施例中的测试装置。
由于第一至第四实施例与本实施例相互对应,因此本实施例可与第一至第四实施例互相配合实施。第一至第四实施例中提到的相关技术细节在本实施例中依然有效,在第一至第四实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一至第四实施例中。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。