一种压力测试方法、装置、电子设备及介质制造方法及图纸

技术编号:19026597 阅读:62 留言:0更新日期:2018-09-26 19:54
本发明专利技术实施例提供了一种压力测试方法、装置、电子设备及介质,方法包括:针对每一并发线程,获取请求命中率,根据请求命中率确定出第一类请求的第一数量、第二类请求的第二数量,将生成的上述请求发送给服务器。将预设数量个当前第二类请求以及第三数量个当前第一类请求,作为当前第一类请求,将重新生成的与已生成请求不同的第二数量个第二类请求作为当前第二类请求,并返回执行将请求发送给服务器的步骤以使服务器进行压力测试。应用本发明专利技术实施例,相对于现有技术中只能由人工在后续过程中进行命中率的调节更加方便。

【技术实现步骤摘要】
一种压力测试方法、装置、电子设备及介质
本专利技术涉及计算机
,特别是涉及一种压力测试方法、装置、电子设备及介质。
技术介绍
随着互联网技术的发展,互联网服务提供商越来越依赖于服务器提供各种网络服务。在服务器工作时可能会出现故障,导致由其提供的服务受到影响,因此,需要对服务器进行压力测试,判断其是否能够长时间工作是十分必要的。压力测试是在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响。压力测试有助于确认被测系统是否能够支持性能需求,以及预期的负载增长等。目前,通常采用压力测试工具有wrk、smoku以及jmeter等,服务器进行压力测试,以判断服务器是否能够长时间工作。具体采用如下步骤进行压力测试:首先,在发送端设置若干个线程,每个线程用于模拟一个客户端,该设置的线程的数量所达到的命中率在预设命中率左右。其次,各个线程持续的向服务器发送设定数量的请求,服务器在接收到发送端发送的请求后,在内存中查找是否存在与该请求对应的数据;如果有,判定该请求命中;如果没有,当服务器判断出还未达到预设命中率时,服务器还可以从硬盘中读取与该请求对应的数据,并将该数据存储在内存中。此种状态下,当前请求未命中服务器的内存,当服务器下次接收到该请求时,那么该请求就可以命中服务器的内存。在设定的周期内,重复上述操作,以测试服务器在设定的周期内是否能够正常工作,这样就可以达到预设命中率。这里所说的命中率是指,服务器接收到的,且在服务器的内存中存储有与该请求对应数据的请求数量在服务器接收到的请求数量的占比。在实际情况中,为了对服务器进行压力测试,需要服务器保持一定的读写次数,只有未命中服务器内存的请求才会在服务器的硬盘和内存之间产生数据读写。因此,压力测试工具向服务器发送的请求并不一定全部命中,会存在一定的命中率。但是,现有技术中的压力测试工具在向服务器发送请求时,发送端不会调节请求的命中率,而发送端只会在请求发送并执行完成一次上述压力测试的过程后,根据请求的实际命中率人工调整线程的数量,进而实现命中率的调整的目的。发送端通过一个线程可以发送多个请求,而通过对线程的数量进行调整,很难实现精确地调整请求的命中率。因此,现有技术中存在调整请求的命中率不方便的技术问题。
技术实现思路
本专利技术实施例的目的在于提供一种压力测试方法、装置、电子设备及介质,以实现方便调整请求的命中率的目的。具体技术方案如下:为达到上述目的,第一方面,本专利技术实施例提供了一种压力测试方法,应用于发送端,方法包括:针对每一并发线程,获取预设的请求命中率,其中,请求命中率为命中的请求数量与当前线程发送的请求总数量的比;根据请求命中率确定出第一类请求对应的第一数量、第二类请求对应的第二数量;并将第一数量作为当前线程命中的请求数量;将第一数量和第二数量的和值作为当前线程发送的请求总数量;生成第一数量个第一类请求作为当前第一类请求、以及第二数量个第二类请求作为当前第二类请求;将当前第一类请求和当前第二类请求发送给服务器;将预设数量个当前第二类请求以及第三数量个当前第一类请求,作为当前第一类请求,其中,第三数量为第一数量与预设数量之差;将重新生成的,与已生成的请求均不相同的第二数量个第二类请求作为当前第二类请求;并返回执行将当前第一类请求和当前第二类请求发送给服务器的步骤以使服务器进行压力测试。可选的,预设数量为根据预设的命中请求变化率确定的,命中请求变化率为根据每两轮命中的请求中不同请求的数目和第一数量确定的。可选的,第三数量个当前第一类请求,包括:从第一数量个当前第一类请求中随机选择的,第一数量与预设数量之差个第一类请求。第二方面,本专利技术实施例提供了一种压力测试方法,应用于服务器,方法包括:接收由发送端发送的请求,其中,请求包括:第一数量个第一类请求和第二数量个第二类请求,所有请求是由发送端经过以下步骤发送的,针对每一并发线程,获取预设的请求命中率,其中,请求命中率为命中的请求数量与当前线程发送的请求总数量的比;根据请求命中率确定出第一类请求对应的第一数量、第二类请求对应的第二数量;并将第一数量作为当前线程命中的请求数量;将第一数量和第二数量的和值作为当前线程发送的请求总数量;生成第一数量个第一类请求作为当前第一类请求、以及第二数量个第二类请求作为当前第二类请求;将当前第一类请求和当前第二类请求发送给服务器;将预设数量个当前第二类请求以及第三数量个当前第一类请求,作为当前第一类请求,其中,第三数量为第一数量与预设数量之差;将重新生成的,与已生成的请求均不相同的第二数量个第二类请求作为当前第二类请求;并返回执行将当前第一类请求和当前第二类请求发送给服务器的步骤;针对每一请求,判断自身内存内是否存在请求对应的数据;如果自身内存内不存在请求对应的数据,将与请求对应的数据存储到内存中。可选的,在将与请求对应的数据存储到内存中之后,方法还包括:根据接收的所有第一类请求的数量与接收的所有请求的数量,计算接收的所有第一类请求的命中率,其中,第一类请求是由所有线程发送的,且所有请求包括:各个线程发送的第一类请求和第二类请求。第三方面,本专利技术实施例提供了一种压力测试装置,应用于发送端,装置包括:获取模块、第一设置模块、生成模块、发送模块,以及第二设置模块,其中,获取模块,用于针对每一并发线程,获取预设的请求命中率,其中,请求命中率为命中的请求数量与当前线程发送的请求总数量的比;第一设置模块,用于根据请求命中率确定出第一类请求对应的第一数量、第二类请求对应的第二数量;并将第一数量作为当前线程命中的请求数量;将第一数量和第二数量的和值作为当前线程发送的请求总数量;生成模块,用于生成第一数量个第一类请求作为当前第一类请求、以及第二数量个第二类请求作为当前第二类请求;发送模块,用于将当前第一类请求和当前第二类请求发送给服务器;第二设置模块,用于将预设数量个当前第二类请求以及第三数量个当前第一类请求作为当前第一类请求,其中,第三数量为第一数量与预设数量之差;将重新生成的,与已生成的请求均不相同的第二数量个第二类请求作为当前第二类请求;并返回执行将当前第一类请求和当前第二类请求发送给服务器的步骤以使服务器进行压力测试。可选的,预设数量为根据预设的命中请求变化率确定的,命中请求变化率为根据每两轮命中的请求中不同请求的数目和第一数量确定的。可选的,第三数量个当前第一类请求,包括:从第一数量个当前第一类请求中随机选择的,第一数量与预设数量之差个第一类请求。第四方面,本专利技术实施例提供了一种压力测试在装置,应用于服务器,装置包括:接收模块、判断模块以及存储模块,其中,接收模块,用于接收由发送端发送的请求,其中,请求包括:第一数量个第一类请求和第二数量个第二类请求,所有请求是由发送端经过以下步骤发送的,针对每一并发线程,获取预设的请求命中率,其中,请求命中率为命中的请求数量与当前线程发送的请求总数量的比;根据请求命中率确定出第一类请求对应的第一数量、第二类请求对应的第二数量;并将第一数量作为当前线程命中的请求数量;将第一数量和第二数量的和值作为当前线程发送的请求总数量;生成第一数量个第一类请求作为当前第一类请求、以及第二数量个第二类请求作为当前第二类请求;将当前第一类请求和当前第二类请求发送给本文档来自技高网
...

【技术保护点】
1.一种压力测试方法,其特征在于,应用于发送端,所述方法包括:针对每一并发线程,获取预设的请求命中率,其中,所述请求命中率为命中的请求数量与当前线程发送的请求总数量的比;根据所述请求命中率确定出第一类请求对应的第一数量、第二类请求对应的第二数量;并将所述第一数量作为当前线程命中的请求数量;将第一数量和第二数量的和值作为当前线程发送的请求总数量;生成所述第一数量个第一类请求作为当前第一类请求,以及所述第二数量个第二类请求作为当前第二类请求;将所述当前第一类请求和所述当前第二类请求发送给服务器;将预设数量个当前第二类请求以及第三数量个当前第一类请求,作为当前第一类请求,其中,所述第三数量为所述第一数量与所述预设数量之差;将重新生成的,与已生成的请求均不相同的第二数量个第二类请求作为当前第二类请求;并返回执行所述将所述当前第一类请求和所述当前第二类请求发送给服务器的步骤以使服务器进行压力测试。

【技术特征摘要】
1.一种压力测试方法,其特征在于,应用于发送端,所述方法包括:针对每一并发线程,获取预设的请求命中率,其中,所述请求命中率为命中的请求数量与当前线程发送的请求总数量的比;根据所述请求命中率确定出第一类请求对应的第一数量、第二类请求对应的第二数量;并将所述第一数量作为当前线程命中的请求数量;将第一数量和第二数量的和值作为当前线程发送的请求总数量;生成所述第一数量个第一类请求作为当前第一类请求,以及所述第二数量个第二类请求作为当前第二类请求;将所述当前第一类请求和所述当前第二类请求发送给服务器;将预设数量个当前第二类请求以及第三数量个当前第一类请求,作为当前第一类请求,其中,所述第三数量为所述第一数量与所述预设数量之差;将重新生成的,与已生成的请求均不相同的第二数量个第二类请求作为当前第二类请求;并返回执行所述将所述当前第一类请求和所述当前第二类请求发送给服务器的步骤以使服务器进行压力测试。2.根据权利要求1所述的方法,其特征在于,所述预设数量为根据预设的命中请求变化率确定的,所述命中请求变化率为根据每两轮命中的请求中不同请求的数目和所述第一数量确定的。3.根据权利要求1所述的方法,其特征在于,所述第三数量个当前第一类请求,包括:从第一数量个当前第一类请求中随机选择的,所述第一数量与所述预设数量之差个第一类请求。4.一种压力测试方法,其特征在于,应用于服务器,所述方法包括:接收由发送端发送的请求,其中,所述请求包括:第一数量个第一类请求和第二数量个第二类请求,所有请求是由发送端经过以下步骤发送的,针对每一并发线程,获取预设的请求命中率,其中,所述请求命中率为命中的请求数量与当前线程发送的请求总数量的比;根据所述请求命中率确定出第一类请求对应的第一数量、第二类请求对应的第二数量;并将所述第一数量作为当前线程命中的请求数量;将第一数量和第二数量的和值作为当前线程发送的请求总数量;生成所述第一数量个第一类请求作为当前第一类请求、以及所述第二数量个第二类请求作为当前第二类请求;将所述当前第一类请求和所述当前第二类请求发送给服务器;将预设数量个当前第二类请求以及第三数量个当前第一类请求,作为当前第一类请求,其中,所述第三数量为所述第一数量与所述预设数量之差;将重新生成的,与已生成的请求均不相同的第二数量个第二类请求作为当前第二类请求;并返回执行所述将所述当前第一类请求和所述当前第二类请求发送给服务器的步骤;针对每一请求,判断自身内存内是否存在所述请求对应的数据;如果自身内存内不存在所述请求对应的数据,将与所述请求对应的数据存储到内存中。5.根据权利要求4所述的方法,其特征在于,在所述将与所述请求对应的数据存储到内存中之后,所述方法还包括:根据接收的所有第一类请求的数量与接收的所有请求的数量,计算所述接收的所有第一类请求的命中率,其中,所述第一类请求是由所有线程发送的,且所述所有请求包括:各个线程发送的第一类请求和第二类请求。6.一种压力测试装置,其特征在于,应用于发送端,所述装置包括:获取模块、第一设置模块、生成模块、发送模块,以及第二设置模块,其中,所述获取模块,用于针对每一并发线程,获取预设的请求命中率,其中,所述请求命中率为命中的请求数量与当前线程发送的请求总数量的比;所述第一设置模块,用于根据所述请求命中率确定出第一类请求对应的第一数量、第二类请求对应的第二数量;并将所述第一数量作为当前线程命中的请求数量;将第一数量和第二数量的和值作为当前...

【专利技术属性】
技术研发人员:苗龙祁海
申请(专利权)人:北京金山云网络技术有限公司北京金山云科技有限公司北京金迅瑞博网络技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1