基于Jmeter的压力测试方法、装置、设备及存储介质制造方法及图纸

技术编号:19023263 阅读:134 留言:0更新日期:2018-09-26 19:01
本发明专利技术公开了一种基于Jmeter的压力测试方法、装置、设备及存储介质,该基于Jmeter的压力测试方法包括:获取目标压力测试请求,所述目标压力测试请求包括至少一个原始数据标识;基于至少一个所述原始数据标识,获取对应的目标自定义函数,其中,所述目标自定义函数为未进行类封装的函数;将所述目标自定义函数封装成BeanShell脚本文件;对所述BeanShell脚本文件进行初始化;调用BeanShell脚本文件中封装的目标自定义函数进行压力测试。该基于Jmeter的压力测试方法在压力测试过程中,可以直接对所需要的目标自定义函数进行调用即可,可以实现一次解释,重复调用的技术效果,在避免线程阻塞的前提下,提高了终端/系统的吞吐率。

【技术实现步骤摘要】
基于Jmeter的压力测试方法、装置、设备及存储介质
本专利技术涉及软件测试领域,尤其涉及一种基于Jmeter的压力测试方法、装置、设备及存储介质。
技术介绍
目前市面上有多种对软件进行压力测试的工具,而Jmeter是推荐度较高的压力测试工具之一。Jmeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度,以分析整体性能。在使用Jmeter进行压力测试时,通常需要编写程序进行辅助测试,主要的编程方式主要有BeanShell和JSR223脚本(Groovy和Javascript)两种。然而,无论是采用何种方式进行编程,在压力测试中都经常出现系统崩溃的情况。传统地,认为是由于BeanShell的Interpreter存在内存泄露,常规方法无法支持长时间的压力测试而引起的系统崩溃。Jmeter官网推荐,在使用BeanShell进行长时间测试时,可以打开选项“Resetbsh.Interpreterbeforeeachcall”,即在每次调用BeanShell程序前,都把解释器进行重置,以释放解释器之前占用的内存。然而,开启了解释器重置选项之后,在压力测试中会导致大量的线程阻塞,这大大降低了终端/系统的吞吐率。
技术实现思路
本专利技术实施例提供一种基于Jmeter的压力测试方法、装置、设备及存储介质,以解决在压力测试过程中终端/系统吞吐率不高的的问题。第一方面,本专利技术实施例提供一种基于Jmeter的压力测试方法,包括:获取目标压力测试请求,所述目标压力测试请求包括至少一个原始数据标识;基于至少一个所述原始数据标识,获取对应的目标自定义函数,其中,所述目标自定义函数为未进行类封装的函数;将所述目标自定义函数封装成BeanShell脚本文件;对所述BeanShell脚本文件进行初始化;调用BeanShell脚本文件中封装的目标自定义函数进行压力测试。第二方面,本专利技术实施例提供一种基于Jmeter的压力测试装置,包括:目标压力测试请求获取模块,用于获取目标压力测试请求,所述目标压力测试请求包括至少一个原始数据标识;目标自定义函数获取模块,用于基于至少一个所述原始数据标识,获取对应的目标自定义函数,其中,所述目标自定义函数为未进行类封装的函数;目标自定义函数封装模块,用于将所述目标自定义函数封装成BeanShell脚本文件;初始化模块,用于对所述BeanShell脚本文件进行初始化;压力测试模块,用于调用BeanShell脚本文件中封装的目标自定义函数进行压力测试。第三方面,本专利技术实施例提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述基于Jmeter的压力测试方法的步骤。第四方面,本专利技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述基于Jmeter的压力测试方法的步骤。本专利技术实施例提供的基于Jmeter的压力测试方法、装置、设备及存储介质中,基于目标压力测试请求中的原始数据标识来获取对应的目标自定义函数,不需要重复地进行函数的编写,提高了测试的效率。而且,目标自定义函数为未进行类封装的函数,通过将目标自定义函数封装成BeanShell脚本文件,并对BeanShell脚本文件进行初始化,保证在后续的压力测试过程中,可以直接对所需要的目标自定义函数进行调用即可,可以实现一次解释,重复调用的效果,在避免线程阻塞的前提下,提高了终端/系统的吞吐率。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例1中的基于Jmeter的压力测试方法的一流程图;图2是图1中步骤S20的一具体实施方式的一流程图;图3是图1中步骤S30的一具体实施方式的一流程图;图4是图3中步骤S31的一具体实施方式的一流程图;图5是图1中步骤S50的一具体实施方式的一流程图;图6是本专利技术实施例2中的基于Jmeter的压力测试装置的一示意图;图7是本专利技术实施例4中的计算机设备的示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术采用了Jmeter测试工具来进行压力测试。其中,Jmeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试。Jmeter可以用于测试静态和动态资源,例如静态文件、Java小服务程序、CGI脚本、Java对象、数据库或FTP服务器等。Jmeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度,以分析整体性能。实施例1图1示出本实施例中基于Jmeter的压力测试方法的流程图。该基于Jmeter的压力测试方法可以应用在各种终端或系统中,以解决在压力测试过程中终端/系统吞吐率不高的问题。如图1所示,该基于Jmeter的压力测试方法包括如下步骤:S10:获取目标压力测试请求,目标压力测试请求包括至少一个原始数据标识。其中,压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性或稳定性等特性的测试过程。目标压力测试请求是指一个压力测试的发起请求。而原始数据标识是指对该压力测试中需要导入的原始数据的数据类型进行区分的一个标识。例如,该原始数据的数据类型可以为GPS报文、CAN报文或HTTP报文等,原始数据标识即根据原始数据的类型的不同而为原始数据赋予不同的标识。S20:基于至少一个原始数据标识,获取对应的目标自定义函数,其中,目标自定义函数为未进行类封装的函数。在Jmeter中内置了一些常用的函数,在Jmeter->选项->函数助手对话框可以查询,但是在部分压力测试过程中这些内置的函数远远不能够满足压力测试的需求。例如,在车联网的压力测试中,车载终端设备(OBD,On-BoardDiagnostic)是一款具备通信功能的移动设备。OBD安装在汽车上,可实时采集汽车行驶过程中的各项数据,并通过通信模块发送给后台,后台的计算平台会对汽车的各项数据(如油耗信息、电瓶电压、进气管温度、当前车速、发动机水温和引擎转速等)进行计算。OBD发送给后台的数据包主要包含:时间点、经纬度、速度、当前油耗和当前里程等数据。OBD通过TCP协议发送汽车行驶过程的数据包,所以在一段行程里程中,会包含有多个数据包,而且每个数据包的时间为线性增长,其经纬度、速度、油耗均需要动态变化。因此在进行车联网的压力测试时,时间、经纬度、速度、油耗和里程都需要通过编程实现。具体地,需要生成时间点、经纬度数据、速度、里程、油耗等数据的自定义函数,以根据规范的报文格式,传入时间点、经纬度、里程和油耗等数据,再本文档来自技高网...

【技术保护点】
1.一种基于Jmeter的压力测试方法,其特征在于,包括:获取目标压力测试请求,所述目标压力测试请求包括至少一个原始数据标识;基于至少一个所述原始数据标识,获取对应的目标自定义函数,其中,所述目标自定义函数为未进行类封装的函数;将所述目标自定义函数封装成BeanShell脚本文件;对所述BeanShell脚本文件进行初始化;调用BeanShell脚本文件中封装的目标自定义函数进行压力测试。

【技术特征摘要】
1.一种基于Jmeter的压力测试方法,其特征在于,包括:获取目标压力测试请求,所述目标压力测试请求包括至少一个原始数据标识;基于至少一个所述原始数据标识,获取对应的目标自定义函数,其中,所述目标自定义函数为未进行类封装的函数;将所述目标自定义函数封装成BeanShell脚本文件;对所述BeanShell脚本文件进行初始化;调用BeanShell脚本文件中封装的目标自定义函数进行压力测试。2.如权利要求1所述的基于Jmeter的压力测试方法,其特征在于,所述基于至少一个所述原始数据标识,获取对应的目标自定义函数,包括以下步骤:基于至少一个所述原始数据标识,获取自定义函数列表中和所述原始数据标识对应的自定义函数,作为目标自定义函数;若存在任一所述原始数据标识,在自定义函数列表中获取不到对应的自定义函数,则发送提示消息;获取用户输入的新增自定义函数,作为目标自定义函数。3.如权利要求2所述的基于Jmeter的压力测试方法,其特征在于,在所述获取用户输入的新增自定义函数,作为目标自定义函数的步骤之后,所述压力测试方法还包括:将所述新增自定义函数和对应的所述原始数据标识进行关联,并保存至所述自定义函数列表中。4.如权利要求1所述的基于Jmeter的压力测试方法,其特征在于,所述将所述目标自定义函数封装成BeanShell脚本文件,具体包括以下步骤:获取已有压力测试项目,基于已有压力测试项目获取每一目标自定义函数的平均调用次数;将平均调用次数大于预设次数的目标自定义函数封装成所述BeanShell脚本文件。5.如权利要求4所述的基于Jmeter的压力测试方法,其特征在于,所述目标压力测试请求还包括目标压力测试类型;所述获取已有压力测试项目,包括:获取已有压力测试项目中和所述目标压力测试类型相同的已有压力测试项目。6.如权利要求4所述的基于Jmeter的压力测试方法,其特征在于,所述...

【专利技术属性】
技术研发人员:蔡良
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

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

1