CN105207832A - 一种服务器压力测试方法和装置 - Google Patents

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

Info

Publication number
CN105207832A
CN105207832A CN201410264311.9A CN201410264311A CN105207832A CN 105207832 A CN105207832 A CN 105207832A CN 201410264311 A CN201410264311 A CN 201410264311A CN 105207832 A CN105207832 A CN 105207832A
Authority
CN
China
Prior art keywords
test
request
server
test request
concurrent thread
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
CN201410264311.9A
Other languages
English (en)
Other versions
CN105207832B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410264311.9A priority Critical patent/CN105207832B/zh
Publication of CN105207832A publication Critical patent/CN105207832A/zh
Application granted granted Critical
Publication of CN105207832B publication Critical patent/CN105207832B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例公开了一种服务器压力测试方法,包括:测试样本队列读取预设的多个测试请求样本,其中每个所述测试请求样本携带被测服务器的不同的资源标识;多个并发线程分别从所述样本请求队列中提取不同的测试请求样本,并根据提取到的测试请求样本向被测服务器发送测试请求;所述多个并发线程分别获取所述测试请求的测试结果,并将所述测试结果与所述被测服务器的资源标识关联保存。发明实施例还公开了一种服务器压力测试装置。采用本发明,可实现得到对服务器进行压力测试的详细测试结果。

Description

一种服务器压力测试方法和装置
技术领域
本发明涉及一种互联网技术领域,尤其涉及一种服务器压力测试方法和装置。
背景技术
随着互联网技术的飞速发展,对服务器的性能和稳定性的要求越来越高,因此经常需要对服务器进行压力测试以采集服务器性能指标及网络请求的处理速度情况等。现有的后台进行压力测试的工具非常多,例如:HTTP_LOAD,AB(ApacheBenchmark)等,都可以进行后台压力测试。
现有的压力测试方式中,都是预先编写若干测试请求样本得到测试请求样本集合,然后通过并发线程随机从测试请求样本集合中提取测试请求样本以向服务器发出测试请求,该方式下多个并发线程可能会向服务器发出相同的测试请求,这时若服务器端设置有缓存,则会使用缓存中的数据对测试请求进行响应,即会对测试结果造成干扰。
另一方面,现有的压力测试工具在进行测试后均无法得到具体的测试结果,例如在遇到测试结果不成功的时候,不能具体的反映出不成功的是哪个请求,这时管理人员需要查看服务器端的访问日志,效率非常低下。
发明内容
本发明实施例所要解决的技术问题在于,提供一种服务器压力测试方法和装置,可得到对服务器进行压力测试的详细测试结果。
为了解决上述技术问题,本发明实施例提供了一种服务器压力测试方法,所述方法包括:
测试样本队列读取预设的多个测试请求样本,其中每个所述测试请求样本携带被测服务器的不同的资源标识;
多个并发线程分别从所述样本请求队列中提取不同的测试请求样本,并根据提取到的测试请求样本向被测服务器发送测试请求;
所述多个并发线程分别获取所述测试请求的测试结果,并将所述测试结果与所述被测服务器的资源标识关联保存。
相应地,本发明实施例还提供了一种服务器压力测试装置,包括:
测试样本队列,用于读取预设的多个测试请求样本,其中每个所述测试请求样本携带被测服务器的不同的资源标识;
多个并发线程,每个并发线程用于分别从所述样本请求队列中提取不同的测试请求样本,并根据提取到的测试请求样本向被测服务器发送测试请求;
所述多个并发线程,还用于分别获取所述测试请求的测试结果,并将所述测试结果与所述被测服务器的资源标识关联保存。
本实施例中的服务器压力测试装置中设定多个并发线程从样本请求队列提取不同的测试样本请求从而向被测服务器发出测试请求,可实现获取对服务器进行压力测试的详细测试结果,当出现测试不成功的测试结果时,可以方便查找到对应的测试请求样本和对应的资源标识。进而由于各个并发线程向被测服务器发出的是不同的测试请求,也避免了因被测服务器利用缓存数据快速响应测试请求所带来的测试误差。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一种服务器压力测试方法的流程示意图;
图2是本发明另一实施例中的服务器压力测试方法的流程示意图;
图3是本发明另一实施例中的服务器压力测试方法的流程示意图;
图4是本发明实施例中的服务器压力测试装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例所提及的被测服务器可以为网站服务器、在线地图后台服务器等可能需要同时接收用户大量并发请求业务的后台服务器。对服务器进行压力测试的执行主体可以为本发明实施例中提出的服务器压力测试装置,其可以实现在任一网络设备中。
图1是本发明实施例中的一种服务器压力测试方法的流程示意图,如图所示本实施例中的服务器压力测试方法可以包括:
S101,测试样本队列读取预设的多个测试请求样本,其中每个所述测试请求样本携带被测服务器的不同的资源标识。
具体的,服务器压力测试装置可以预先定义一个测试样本队列Queue,在测试开始后,测试样本队列读取预设的多个测试请求样本,该测试请求样本可以根据被测服务器的不同资源标识预先设定,例如可以根据被测服务器的不同的可用URL(UniformResoureLocator:统一资源定位符)设定测试请求样本,所述测试请求样本中可以携带所述被测服务器的不同URL,还可以包括用于向被测服务器发送测试请求的其他参数和测试数据,例如向被测服务器同一URL发送的不同参数和业务数据也可得到不同的测试结果,以在线地图后台服务器为例,其根据不同检索条件可以得到不同的访问URL,如检索词为“url”时向被测服务器提交的http请求的URL可以为http://map.xxxxx.com/?newmap=1&ie=utf-8&s=s%26wd%3Durl,检索词为“南京”时向被测服务器提交的http请求的URL可以为http://map.xxxxx.com/?newmap=1&ie=utf-8&s=s%26wd%3D%E5%8D%97%E4%BA%AC,服务器压力测试装置可以通过预先收集用户可能向被测服务器发送的请求量较高的URL,从而得到所述多个测试请求样本。
S102,多个并发线程分别从所述样本请求队列中提取不同的测试请求样本,并根据提取到的测试请求样本向被测服务器发送测试请求。
具体的,所述并发线程的数量可以预先通过管理员根据需要设定得到。例如所述样本请求队列中读取的前10个测试请求样本分别为A、B、C、D……I、J,当前的4个并发线程1、并发线程2以及并发线程3分别从样本请求队列中提取A、B以及C,并根据提取到的测试请求样本向被测服务器发送测试请求,如可以根据提取到的测试请求样本中携带的URL地址向被测服务器发送http请求。进而在可选实施例中,服务器压力测试装置可以预先定义一个定时器Timer,所述多个并发线程可以通过定时器获取各个测试请求从发送测试请求到获取测试结果的测试时间,例如在发送测试请求时从定时器获取发送时间,以及在获取到测试结果时从定时器获取测试结果时间,从而得到测试时间。所述并发线程可以为守护线程(ThreadUrl),即为了避免进程在执行过程中的信息在终端上显示并且进程也不会被终端所产生的任何终端信息所打断,脱离于终端操作***并且在后台运行的进程。
S103,所述多个并发线程分别获取所述测试请求的测试结果,并将所述测试结果与所述被测服务器的资源标识关联保存。
具体的,被测服务器在接收到并发线程发送的测试请求后,可以向并发线程返回测试结果,如根据接收到的测试请求进行业务处理成功,则将业务处理结果返回该并发线程,若业务处理失败,则可以将业务处理失败结果返回该并发线程,还可以将业务处理失败的详细信息(失败原因或错误代码)返回并发线程,进而若因网络传输失败等原因导致被测服务器未能接收到并发线程发送的测试请求,该并发线程也可以根据预设的策略执行重发测试请求,或在可选实施例中若在预设的测试请求接收时限内未能接收到被测服务器返回的测试结果,则并发线程也可以确认该测试请求的结果为失败,从而得到该测试请求的测试结果。并发线程在获取到各个测试请求的测试结果后,可以将测试结果与该测试请求对应的被测服务器的资源标识关联保存,这样当发生测试不成功时,可以方便的查看到测试不成功的测试请求对应的资源标识,并且还以实现后续根据被测服务器的资源标识查询对应测试请求的测试结果。
进而在可选实施例中,当并发线程得到测试请求的结果后,可以继续从样本请求队列中提取剩余的测试请求样本,仍以上文的例子,在并发线程1首先获取到测试请求的结果后,其可以继续从样本请求队列中提取测试请求样本D,并根据测试请求样本D向被测服务器发送测试请求。
本实施例中的服务器压力测试装置中设定多个并发线程从样本请求队列提取不同的测试样本请求从而向被测服务器发出测试请求,可实现获取对服务器进行压力测试的详细测试结果,当出现测试不成功的测试结果时,可以方便查找到对应的测试请求样本和对应的资源标识。进而由于各个并发线程向被测服务器发出的是不同的测试请求,也避免了因被测服务器利用缓存数据快速响应测试请求所带来的测试误差。
图2是本发明另一实施例中的服务器压力测试方法的流程示意图,如图所示本实施例中的服务器压力测试方法流程可以包括:
S201,测试样本队列读取预设的多个测试请求样本,其中每个所述测试请求样本携带被测服务器的不同的资源标识。
具体的,服务器压力测试装置可以预先定义一个测试样本队列Queue,在测试开始后,测试样本队列读取预设的多个测试请求样本,该测试请求样本可以根据被测服务器的不同资源标识预先设定,例如可以根据被测服务器的不同的可用URL(UniformResoureLocator:统一资源定位符)设定测试请求样本,所述测试请求样本中可以携带所述被测服务器的不同URL,还可以包括用于向被测服务器发送测试请求的其他参数和测试数据,例如向被测服务器同一URL发送的不同参数和业务数据也可得到不同的测试结果。服务器压力测试装置可以通过预先收集用户可能向被测服务器发送的请求量较高的URL,从而得到所述多个测试请求样本。
S202,多个并发线程分别从所述样本请求队列中提取不同的测试请求样本,并根据提取到的测试请求样本向被测服务器发送测试请求。
具体的,所述并发线程可以为守护线程(ThreadUrl),而所述并发线程的数量可以通过管理员预先的设定得到。进而在可选实施例中,所述多个并发线程还可以通过定时器记录各个测试请求从发送测试请求到获取测试结果的测试时间。
S203,所述多个并发线程分别获取所述测试请求的测试结果,并将所述测试结果与所述被测服务器的资源标识关联保存。
具体的,被测服务器在接收到并发线程发送的测试请求后,可以向并发线程返回测试结果,如根据接收到的测试请求进行业务处理成功,则将业务处理结果返回该并发线程,若业务处理失败,则可以将业务处理失败结果返回该并发线程,还可以将业务处理失败的详细信息(失败原因或错误代码)返回并发线程,进而若因网络传输失败等原因导致被测服务器未能接收到并发线程发送的测试请求,该并发线程也可以根据预设的策略执行重发测试请求,或在可选实施例中若在预设的测试请求接收时限内未能接收到被测服务器返回的测试结果,则并发线程也可以确认该测试请求的结果为失败,从而得到该测试请求的测试结果。并发线程在获取到各个测试请求的测试结果后,可以将测试结果与该测试请求对应的被测服务器的资源标识关联保存,这样当发生测试不成功时,可以方便的查看到测试不成功的测试请求对应的资源标识,并且还以实现后续根据被测服务器的资源标识查询对应测试请求的测试结果。进而在可选实施例中,进而当并发线程得到测试请求的结果后,可以继续从样本请求队列中提取剩余的测试请求样本。
S204,汇总输出所述多个并发线程保存的测试结果和对应的资源标识。
具体的,当所述样本请求队列中的所有测试请求样本都已被并发线程取出并执行测试,即发送测试请求并获取测试结果之后,服务器压力测试装置将所述多个并发线程保存的测试结果和对应的资源标识汇总输出。而在可选实施例中由于并发线程可以通过定时器记录各个测试请求样本从发送测试请求到获取测试结果的测试时间,在汇总输出的时候可以输出服务器压力测试装置根据所述样本请求队列中的所有测试请求样本执行的测试总时间。如何判断所述样本请求队列中的所有测试请求样本都已被执行测试有多种方式,例如当某个并发线程从所述样本请求队列中提取测试请求样本时发现所述样本请求队列中已没有剩余测试请求样本,即所述样本请求队列中的所有测试请求样本都被提取出,这时并发线程可以通知输出汇总模块,当所有并发线程都通知了输出汇总模块,即表示所述样本请求队列中的所有测试请求样本都已被并发线程取出并得到了测试结果。在可选实施例中,服务器压力测试装置也可以根据管理员输入的控制命令汇总输出所述多个并发线程当前保存的测试结果和对应的资源标识。进一步可选的,服务器压力测试装置也可以仅汇总输出所述多个并发线程保存的不成功的测试结果和对应的资源标识。
本实施例中的服务器压力测试装置中设定多个并发线程从样本请求队列提取不同的测试样本请求从而向被测服务器发出测试请求,可实现获取对服务器进行压力测试的详细测试结果,当出现测试不成功的测试结果时,可以方便查找到对应的测试请求样本和对应的资源标识。进而由于各个并发线程向被测服务器发出的是不同的测试请求,也避免了因被测服务器利用缓存数据快速响应测试请求所带来的测试误差。
图3是本发明另一实施例中的服务器压力测试方法的流程示意图,如图3所示本实施例中的服务器压力测试方法流程可以包括:
S301,测试样本队列读取预设的多个测试请求样本,其中每个所述测试请求样本携带被测服务器的不同的URL。
以在线地图后台服务器为例,其根据不同检索条件可以得到不同的访问URL,如检索词为“url”时向被测服务器提交的http请求的URL可以为http://map.xxxxx.com/?newmap=1&ie=utf-8&s=s%26wd%3Durl,检索词为“南京”时向被测服务器提交的http请求的URL可以为http://map.xxxxx.com/?newmap=1&ie=utf-8&s=s%26wd%3D%E5%8D%97%E4%BA%AC,服务器压力测试装置可以通过预先收集用户可能向被测服务器发送的请求量较高的URL,从而得到所述多个测试请求样本。
S302,多个并发线程分别从所述样本请求队列中提取不同的测试请求样本,并根据提取到的测试请求样本向被测服务器发送HTTP请求。
具体的,所述并发线程的数量可以通过管理员预先的设定得到。例如所述样本请求队列中读取的前10个测试请求样本分别为A、B、C、D……I、J,当前的4个并发线程1、并发线程2以及并发线程3分别从样本请求队列中提取A、B以及C,并根据提取到的测试请求样本向被测服务器发送测试请求,如可以根据提取到的测试请求样本中携带的URL地址向被测服务器发送http请求。进而在本实施例中,所述多个并发线程可以通过定时器记录各个测试请求从发送测试请求到获取测试结果的测试时间。所述并发线程可以为守护线程(ThreadUrl),即为了避免进程在执行过程中的信息在终端上显示并且进程也不会被终端所产生的任何终端信息所打断,脱离于终端操作***并且在后台运行的进程。
S303,所述多个并发线程分别获取所述HTTP请求的测试结果,包括记录各个测试请求从发送测试请求到获取测试结果的测试时间,并将所述测试结果与所述被测服务器的URL关联保存。
具体的,被测服务器在接收到并发线程发送的测试请求后,可以向并发线程返回测试结果,如根据接收到的测试请求进行业务处理成功,则将业务处理结果返回该并发线程,若业务处理失败,则可以将业务处理失败结果返回该并发线程,还可以将业务处理失败的详细信息(失败原因或错误代码)返回并发线程,进而若因网络传输失败等原因导致被测服务器未能接收到并发线程发送的测试请求,该并发线程也可以根据预设的策略执行重发测试请求,或在可选实施例中若在预设的测试请求接收时限内未能接收到被测服务器返回的测试结果,则并发线程也可以确认该测试请求的结果为失败,从而得到该测试请求的测试结果。在本实施例中并发线程可以通过定时器记录各个测试请求样本从发送测试请求到获取测试结果的测试时间,在汇总输出的时候可以输出服务器压力测试装置根据所述样本请求队列中的所有测试请求样本执行的测试时间。并发线程在获取到各个测试请求的测试结果后,可以将测试结果与该测试请求对应的被测服务器的资源标识关联保存,这样当发生测试不成功时,可以方便的查看到测试不成功的测试请求对应的资源标识,并且还以实现后续根据被测服务器的资源标识查询对应测试请求的测试结果。
进而在可选实施例中,进而当并发线程得到测试请求的结果后,可以继续从样本请求队列中提取剩余的测试请求样本,仍以上文的例子,在并发线程1首先获取到测试请求的结果后,其可以继续从样本请求队列中提取测试请求样本D,并根据测试请求样本D向被测服务器发送测试请求。
S304,确定所述测试样本队列中的所有测试请求样本都已被执行测试。
具体的,如何判断所述样本请求队列中的所有测试请求样本都已被执行测试有多种方式,例如当某个并发线程从所述样本请求队列中提取测试请求样本时发现所述样本请求队列中已没有剩余测试请求样本,即所述样本请求队列中的所有测试请求样本都被提取出,这时并发线程可以通知输出汇总模块,当所有并发线程都通知了输出汇总模块,即表示所述样本请求队列中的所有测试请求样本都已被并发线程取出并得到了测试结果。
S305,汇总输出所述多个并发线程保存的测试结果和对应的URL。
具体的,当所述样本请求队列中的所有测试请求样本都已被并发线程取出并执行测试,即发送测试请求并获取测试结果之后,服务器压力测试装置将所述多个并发线程保存的测试结果和对应的资源标识汇总输出。而在本实施例中由于并发线程可以通过定时器记录各个测试请求样本从发送测试请求到获取测试结果的测试时间,在汇总输出的时候可以输出服务器压力测试装置根据所述样本请求队列中的所有测试请求样本执行的测试总时间。进一步可选的,服务器压力测试装置也可以仅汇总输出所述多个并发线程保存的不成功的测试结果和对应的资源标识。
本实施例中的服务器压力测试装置中设定多个并发线程从样本请求队列提取不同的测试样本请求从而向被测服务器发出测试请求,可实现自动输出对被测服务器进行压力测试的详细测试结果,当出现测试不成功的测试结果时,可以得到对应的测试请求样本和对应的资源标识。进而由于各个并发线程向被测服务器发出的是不同的测试请求,也避免了因被测服务器利用缓存数据快速响应测试请求所带来的测试误差。
图4是本发明实施例中的服务器压力测试装置的结构示意图。如图所示本发明实施例中的服务器压力测试装置可以至少包括:
测试样本队列410,用于读取预设的多个测试请求样本,其中每个所述测试请求样本携带被测服务器的不同的资源标识。
具体实现中,服务器压力测试装置可以预先定义测试样本队列410,如可以为一个Queue,在测试开始后,测试样本队列410读取预设的多个测试请求样本,该测试请求样本可以根据被测服务器的不同资源标识预先设定,例如可以根据被测服务器的不同的可用URL(UniformResoureLocator:统一资源定位符)设定测试请求样本,所述测试请求样本中可以携带所述被测服务器的不同URL,还可以包括用于向被测服务器发送测试请求的其他参数和测试数据,例如向被测服务器同一URL发送的不同参数和业务数据也可得到不同的测试结果,以在线地图后台服务器为例,其根据不同检索条件可以得到不同的访问URL,如检索词为“url”时向被测服务器提交的http请求的URL可以为http://map.xxxxx.com/?newmap=1&ie=utf-8&s=s%26wd%3Durl,检索词为“南京”时向被测服务器提交的http请求的URL可以为http://map.xxxxx.com/?newmap=1&ie=utf-8&s=s%26wd%3D%E5%8D%97%E4%BA%AC,服务器压力测试装置可以通过预先收集用户可能向被测服务器发送的请求量较高的URL,从而得到所述多个测试请求样本。
多个并发线程420,如图4中的并发线程1、并发线程2……并发线程N,其中每个并发线程用于分别从所述样本请求队列中提取不同的测试请求样本,并根据提取到的测试请求样本向被测服务器发送测试请求。
例如所述样本请求队列中读取的前10个测试请求样本分别为A、B、C、D……I、J,当前的4个并发线程1、并发线程2以及并发线程3分别从样本请求队列中提取A、B以及C,并根据提取到的测试请求样本向被测服务器发送测试请求,如可以根据提取到的测试请求样本中携带的URL地址向被测服务器发送http请求。进而在可选实施例中,,服务器压力测试装置可以预先定义一个定时器Timer,所述多个并发线程可以通过定时器获取各个测试请求从发送测试请求到获取测试结果的测试时间,例如在发送测试请求时从定时器获取发送时间,以及在获取到测试结果时从定时器获取测试结果时间,从而可以记录各个测试请求从发送测试请求到获取测试结果的测试时间。所述并发线程可以为守护线程(ThreadUrl),即为了避免进程在执行过程中的信息在终端上显示并且进程也不会被终端所产生的任何终端信息所打断,脱离于终端操作***并且在后台运行的进程。
所述多个并发线程420,还用于分别获取所述测试请求的测试结果,并将所述测试结果与所述被测服务器的资源标识关联保存。
具体实现中,被测服务器在接收到并发线程发送的测试请求后,可以向并发线程返回测试结果,如根据接收到的测试请求进行业务处理成功,则将业务处理结果返回该并发线程,若业务处理失败,则可以将业务处理失败结果返回该并发线程,还可以将业务处理失败的详细信息(失败原因或错误代码)返回并发线程,进而若因网络传输失败等原因导致被测服务器未能接收到并发线程发送的测试请求,该并发线程也可以根据预设的策略执行重发测试请求,或在可选实施例中若在预设的测试请求接收时限内未能接收到被测服务器返回的测试结果,则并发线程也可以确认该测试请求的结果为失败,从而得到该测试请求的测试结果。并发线程在获取到各个测试请求的测试结果后,可以将测试结果与该测试请求对应的被测服务器的资源标识关联保存,这样当发生测试不成功时,可以方便的查看到测试不成功的测试请求对应的资源标识,并且还以实现后续根据被测服务器的资源标识查询对应测试请求的测试结果。
进而在可选实施例中,当并发线程得到测试请求的结果后,可以继续从样本请求队列中提取剩余的测试请求样本,仍以上文的例子,在并发线程1首先获取到测试请求的结果后,其可以继续从样本请求队列中提取测试请求样本D,并根据测试请求样本D向被测服务器发送测试请求。
进而可选的,本发明实施例中的服务器压力测试装置还可以包括:
测试结果输出模块430,用于汇总输出所述多个并发线程420保存的测试结果和对应的资源标识。
具体实现中,当所述样本请求队列中的所有测试请求样本都已被并发线程取出并执行测试,即发送测试请求并获取测试结果之后,测试结果输出模块430将所述多个并发线程保存的测试结果和对应的资源标识汇总输出。而在可选实施例中由于并发线程可以通过定时器记录各个测试请求样本从发送测试请求到获取测试结果的测试时间,测试结果输出模块430在汇总输出的时候可以输出所述多个并发线程420根据所述样本请求队列中的所有测试请求样本执行的测试总时间。在可选实施例中,测试结果输出模块430也可以根据管理员输入的控制命令汇总输出所述多个并发线程当前保存的测试结果和对应的资源标识。进一步可选的,测试结果输出模块430也可以仅汇总输出所述多个并发线程保存的不成功的测试结果和对应的资源标识。
进而可选的,本发明实施例中的服务器压力测试装置还可以包括:
测试完成确认模块440,用于在确定所述测试样本队列中的所有测试请求样本都已被执行测试时,触发测试结果输出模块汇总输出所述多个并发线程保存的测试结果和对应的资源标识。如何判断所述样本请求队列中的所有测试请求样本都已被执行测试有多种方式,例如当某个并发线程从所述样本请求队列中提取测试请求样本时发现所述样本请求队列中已没有剩余测试请求样本,即所述样本请求队列中的所有测试请求样本都被提取出,这时并发线程可以通知输出汇总模块,当所有并发线程都通知了输出汇总模块,即表示所述样本请求队列中的所有测试请求样本都已被并发线程取出并得到了测试结果。
进而可选的,本发明实施例中的服务器压力测试装置还可以包括:
并发数量设定模块,用于设定所述并发线程的数量。
具体实现中,所述并发线程的数量N可以预先通过管理员根据需要设定得到。
本实施例中的服务器压力测试装置中设定多个并发线程从样本请求队列提取不同的测试样本请求从而向被测服务器发出测试请求,可实现获取对服务器进行压力测试的详细测试结果,当出现测试不成功的测试结果时,可以方便查找到对应的测试请求样本和对应的资源标识。进而由于各个并发线程向被测服务器发出的是不同的测试请求,也避免了因被测服务器利用缓存数据快速响应测试请求所带来的测试误差。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (18)

1.一种服务器压力测试方法,其特征在于,所述方法包括:
测试样本队列读取预设的多个测试请求样本,其中每个测试请求样本携带被测服务器的不同的资源标识;
多个并发线程分别从所述样本请求队列中提取不同的测试请求样本,并根据提取到的测试请求样本向被测服务器发送测试请求;
所述多个并发线程分别获取所述测试请求的测试结果,并将所述测试结果与所述被测服务器的资源标识关联保存。
2.如权利要求1所述的服务器压力测试方法,其特征在于,所述方法还包括:
汇总输出所述多个并发线程保存的测试结果和对应的资源标识。
3.如权利要求2所述的服务器压力测试方法,其特征在于,所述汇总输出所述多个并发线程保存的测试结果和对应的资源标识为:
汇总输出所述多个并发线程保存的不成功的测试结果和对应的资源标识。
4.如权利要求2所述的服务器压力测试方法,其特征在于,所述汇总输出所述多个并发线程保存的测试结果和对应的资源标识之前还包括:
确定所述测试样本队列中的所有测试请求样本都已被执行测试。
5.如权利要求1所述的服务器压力测试方法,其特征在于,所述多个并发线程分别获取所述测试请求的测试结果包括:
所述多个并发线程记录各个测试请求从发送测试请求到获取测试结果的测试时间。
6.如权利要求5所述的服务器压力测试方法,其特征在于,所述测试样本队列读取预设的多个测试请求样本之前还包括:
预定义定时器Timer;
所述多个并发线程记录各个测试请求从发送测试请求到获取测试结果的测试时间包括:
通过所述定时器Timer获取各个测试请求从发送测试请求到获取测试结果的测试时间。
7.如权利要求1所述的服务器压力测试方法,其特征在于,所述并发线程为守护线程。
8.如权利要求1所述的服务器压力测试方法,其特征在于,所述多个并发线程分别从所述样本请求队列中提取不同的测试请求样本之前还包括:
设定所述并发线程的数量。
9.如权利要求1~8中任一项所述的服务器压力测试方法,其特征在于,所述资源标识为URL统一资源定位符;
所述测试请求为根据所述URL发送的HTTP超文本传输协议请求。
10.一种服务器压力测试装置,其特征在于,包括:
测试样本队列,用于读取预设的多个测试请求样本,其中每个所述测试请求样本携带被测服务器的不同的资源标识;
多个并发线程,每个并发线程用于分别从所述样本请求队列中提取不同的测试请求样本,并根据提取到的测试请求样本向被测服务器发送测试请求;
所述多个并发线程,还用于分别获取所述测试请求的测试结果,并将所述测试结果与所述被测服务器的资源标识关联保存。
11.如权利要求10所述的服务器压力测试装置,其特征在于,还包括:
测试结果输出模块,用于汇总输出所述多个并发线程保存的测试结果和对应的资源标识。
12.如权利要求11所述的服务器压力测试装置,其特征在于,所述测试结果输出模块用于:
汇总输出所述多个并发线程保存的不成功的测试结果和对应的资源标识。
13.如权利要求11所述的服务器压力测试装置,其特征在于,还包括:
测试完成确认模块,用于在确定所述测试样本队列中的所有测试请求样本都已被执行测试时,触发测试结果输出模块汇总输出所述多个并发线程保存的测试结果和对应的资源标识。
14.如权利要求10所述的服务器压力测试装置,其特征在于,
所述多个并发线程,还用于记录针对每个测试请求样本从发送测试请求到获取服务器返回的测试结果的测试时间。
15.如权利要求14所述的服务器压力测试装置,其特征在于,还包括:
预先定义的定时器Timer;
所述多个并发线程通过所述定时器Timer获取各个测试请求从发送测试请求到获取测试结果的测试时间。
16.如权利要求10所述的服务器压力测试装置,其特征在于,所述并发线程为守护线程。
17.如权利要求10所述的服务器压力测试装置,其特征在于,还包括:
并发数量设定模块,用于设定所述并发线程的数量。
18.如权利要求10~17中任一项所述的服务器压力测试装置,其特征在于,所述资源标识为URL统一资源定位符;
所述测试请求为根据所述URL发送的HTTP超文本传输协议请求。
CN201410264311.9A 2014-06-13 2014-06-13 一种服务器压力测试方法和装置 Active CN105207832B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410264311.9A CN105207832B (zh) 2014-06-13 2014-06-13 一种服务器压力测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410264311.9A CN105207832B (zh) 2014-06-13 2014-06-13 一种服务器压力测试方法和装置

Publications (2)

Publication Number Publication Date
CN105207832A true CN105207832A (zh) 2015-12-30
CN105207832B CN105207832B (zh) 2019-05-03

Family

ID=54955285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410264311.9A Active CN105207832B (zh) 2014-06-13 2014-06-13 一种服务器压力测试方法和装置

Country Status (1)

Country Link
CN (1) CN105207832B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105915406A (zh) * 2016-04-12 2016-08-31 北京齐尔布莱特科技有限公司 一种测试方法、装置和计算设备
CN106210028A (zh) * 2016-07-05 2016-12-07 广州华多网络科技有限公司 一种服务器防止过载的方法、服务器及***
CN108205477A (zh) * 2016-12-16 2018-06-26 上海仪电(集团)有限公司中央研究院 服务器压力测试方法
CN109144846A (zh) * 2017-06-28 2019-01-04 北京京东尚科信息技术有限公司 用于测试服务器的测试方法和装置
CN109284227A (zh) * 2018-09-06 2019-01-29 政采云有限公司 一种自动化压力测试方法及装置、计算设备及存储介质
CN110874304A (zh) * 2018-09-03 2020-03-10 广州神马移动信息科技有限公司 压力测试方法、装置、设备及计算机可读存储介质
CN113204485A (zh) * 2021-05-08 2021-08-03 山东英信计算机技术有限公司 一种内存数据库压力测试方法、***、终端及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1506823A (zh) * 2002-12-13 2004-06-23 英业达股份有限公司 服务器总体性能的测试方法
CN1953401A (zh) * 2005-10-20 2007-04-25 英业达股份有限公司 一种多线程的网络压力测试方法
CN101848116A (zh) * 2010-04-21 2010-09-29 中国海洋大学 一种简单快捷自动的Web服务器压力测试方法
CN102035697A (zh) * 2010-12-31 2011-04-27 中国电子科技集团公司第十五研究所 一种文件***的并发连接数性能测试***和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1506823A (zh) * 2002-12-13 2004-06-23 英业达股份有限公司 服务器总体性能的测试方法
CN1953401A (zh) * 2005-10-20 2007-04-25 英业达股份有限公司 一种多线程的网络压力测试方法
CN101848116A (zh) * 2010-04-21 2010-09-29 中国海洋大学 一种简单快捷自动的Web服务器压力测试方法
CN102035697A (zh) * 2010-12-31 2011-04-27 中国电子科技集团公司第十五研究所 一种文件***的并发连接数性能测试***和方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105915406A (zh) * 2016-04-12 2016-08-31 北京齐尔布莱特科技有限公司 一种测试方法、装置和计算设备
CN105915406B (zh) * 2016-04-12 2019-10-18 北京齐尔布莱特科技有限公司 一种测试方法、装置和计算设备
CN106210028A (zh) * 2016-07-05 2016-12-07 广州华多网络科技有限公司 一种服务器防止过载的方法、服务器及***
CN106210028B (zh) * 2016-07-05 2019-09-06 广州华多网络科技有限公司 一种服务器防止过载的方法、服务器及***
CN108205477A (zh) * 2016-12-16 2018-06-26 上海仪电(集团)有限公司中央研究院 服务器压力测试方法
CN109144846A (zh) * 2017-06-28 2019-01-04 北京京东尚科信息技术有限公司 用于测试服务器的测试方法和装置
CN109144846B (zh) * 2017-06-28 2022-07-05 北京京东尚科信息技术有限公司 用于测试服务器的测试方法和装置
CN110874304A (zh) * 2018-09-03 2020-03-10 广州神马移动信息科技有限公司 压力测试方法、装置、设备及计算机可读存储介质
CN109284227A (zh) * 2018-09-06 2019-01-29 政采云有限公司 一种自动化压力测试方法及装置、计算设备及存储介质
CN113204485A (zh) * 2021-05-08 2021-08-03 山东英信计算机技术有限公司 一种内存数据库压力测试方法、***、终端及存储介质

Also Published As

Publication number Publication date
CN105207832B (zh) 2019-05-03

Similar Documents

Publication Publication Date Title
CN105207832A (zh) 一种服务器压力测试方法和装置
AU2018201459B2 (en) System and method for improving access to search results
US10362086B2 (en) Method and system for automating submission of issue reports
CN106708711B (zh) 一种日志信息输出控制方法及装置
CN102752288A (zh) 网络访问行为识别方法和装置
CN110287696B (zh) 一种反弹shell进程的检测方法、装置和设备
CN106790744B (zh) Ip调度方法及***
CN104410546A (zh) 实时处理***的测试方法和装置
KR20180074774A (ko) 악의 웹 사이트 식별 방법, 장치 및 컴퓨터 기억매체
US10341290B2 (en) Method and system for presenting recommendation information
CN111478792B (zh) 一种割接信息处理方法、***及装置
CN110798445A (zh) 公共网关接口测试方法、装置、计算机设备及存储介质
CN103428249A (zh) 一种http请求包的收集及处理方法、***和服务器
CN114629929B (zh) 一种日志记录方法、装置及***
CN106648912B (zh) 数据采集平台中数据处理的模块化方法及装置
CN107992535A (zh) 文件快速寻址装置、方法、***及计算机可读存储介质
CN106933858A (zh) 页面来源统计方法及视图控制器
CN109101297B (zh) 一种页面的标识方法及装置
CN108255868B (zh) 检查网站中链接的方法和装置
CN102694802B (zh) 网络访问信息记录方法和装置
CN103605480A (zh) Web服务器及其磁盘资源访问控制方法
CN111651356A (zh) 一种应用程序测试方法、装置及***
CN104486098A (zh) 一种访问故障监控方法及装置
CN104750693A (zh) 一种打点的实现方法和装置
CN109376066A (zh) 一种自动测试方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant