一种基于Jmeter的gRPC性能测试方法及装置制造方法及图纸

技术编号:20915754 阅读:60 留言:0更新日期:2019-04-20 09:32
本发明专利技术实施例公开了一种基于Jmeter的gRPC性能测试方法及装置,方法包括:定义发送谷歌远程过程调用gRPC请求的通道,根据所述通道构造gRPC请求,并将所述gRPC请求发送给gRPC服务器;创建所述gRPC请求对应的gRPC业务的数据对象,并根据所述gRPC请求对所述数据对象进行赋值;接收所述gRPC服务器根据所述gRPC请求进行性能测试后返回的性能测试结果,根据赋值后的数据对象对所述性能测试结果进行处理,并基于Jmeter对处理后的性能测试结果进行展示。通过将gRPC请求发送给gRPC服务器,接收gRPC服务器性能测试后返回的性能测试结果,并基于Jmeter对处理后的性能测试结果进行展示,极大减少了性能测试的脚本开发时间,同时保障了并发的稳定性,以及友好的将结果通过Jmeter自带的统计展现出来。

A Jmeter-based gRPC performance testing method and device

The embodiment of the present invention discloses a Jmeter-based gRPC performance testing method and device. The method includes: defining a channel to send a Google remote procedure call gRPC request, constructing a gRPC request according to the channel, and sending the gRPC request to the gRPC server; creating a data object of the gRPC service corresponding to the gRPC request, and importing the data object according to the gRPC request. Line assignment; Receive the performance test results returned by the gRPC server after performance test according to the gRPC request, process the performance test results according to the data object after assignment, and display the performance test results after processing based on Jmeter. By sending gRPC requests to gRPC server, receiving the performance test results returned by gRPC server after performance test, and displaying the performance test results after processing based on Jmeter, the script development time of performance test is greatly reduced, and the concurrent stability is guaranteed, as well as the friendly presentation of the results through Jmeter's own statistics.

【技术实现步骤摘要】
一种基于Jmeter的gRPC性能测试方法及装置
本专利技术实施例涉及计算机
,具体涉及一种基于Jmeter的gRPC性能测试方法及装置。
技术介绍
目前分布式的应用场景中,存在着大量的服务之间的调用,微服务的发现以及跨服务的远程调用,更多的使用了RPC(RemoteProcedureCall,远程过程调用)技术。以Google为代表的gRPC(googleRemoteProcedureCall,谷歌远程过程调用),在行业内使用非常广泛,更多的后台服务都应用了gRPC的技术。所以对于gRPC请求的单独的性能测试做benchmark(基准)的场景也会很多,但是现在的性能测试,无论开发还是测试,更多是直接编码通过脚本的方式获得对应的性能数据,无法通过界面化的工具,如LoadRunner和Jmeter那样直接构造批量请求,并自动分析结果,出来各种比较可观的统计图。现有技术直接通过编码的方式去模拟发送请求,得到的结果自己去分析统计,但是通过脚本构造gRPC请求并自己实现对应的并发,以及结果的统计比较耗时,而且无法短时间内保证脚本的并发的稳定性;同时对于分布式压测支持也需要重新开发,无法界面化直观的得到对应的性能测试数据。
技术实现思路
由于现有方法存在上述问题,本专利技术实施例提出一种基于Jmeter的gRPC性能测试方法及装置。第一方面,本专利技术实施例提出一种基于Jmeter的gRPC性能测试方法,包括:定义发送谷歌远程过程调用gRPC请求的通道,根据所述通道构造gRPC请求,并将所述gRPC请求发送给gRPC服务器;创建所述gRPC请求对应的gRPC业务的数据对象,并根据所述gRPC请求对所述数据对象进行赋值;接收所述gRPC服务器根据所述gRPC请求进行性能测试后返回的性能测试结果,根据赋值后的数据对象对所述性能测试结果进行处理,并基于Jmeter对处理后的性能测试结果进行展示。可选地,所述定义发送谷歌远程过程调用gRPC请求的通道,根据所述通道构造gRPC请求,并将所述gRPC请求发送给gRPC服务器之后,还包括:根据预设格式对所述gRPC请求的数据串进行切分,得到符合所述预设格式的目标数据;相应地,所述创建所述gRPC请求对应的gRPC业务的数据对象,并根据所述gRPC请求对所述数据对象进行赋值,具体包括:创建所述gRPC请求对应的gRPC业务的数据对象,并根据所述目标数据对所述数据对象进行赋值。可选地,所述方法还包括:根据预设关键字对所述性能测试结果进行校验,确定所述性能测试结果是否符合预期。可选地,所述方法还包括:若所述性能测试结果不符合预期,则获取所述性能测试结果中的异常信息,并将所述异常信息进行显示。第二方面,本专利技术实施例还提出一种基于Jmeter的gRPC性能测试装置,包括:请求发送模块,用于定义发送谷歌远程过程调用gRPC请求的通道,根据所述通道构造gRPC请求,并将所述gRPC请求发送给gRPC服务器;对象赋值模块,用于创建所述gRPC请求对应的gRPC业务的数据对象,并根据所述gRPC请求对所述数据对象进行赋值;结果处理模块,用于接收所述gRPC服务器根据所述gRPC请求进行性能测试后返回的性能测试结果,根据赋值后的数据对象对所述性能测试结果进行处理,并基于Jmeter对处理后的性能测试结果进行展示。可选地,所述装置还包括:数据串切分模块,用于根据预设格式对所述gRPC请求的数据串进行切分,得到符合所述预设格式的目标数据;相应地,所述对象赋值模块具体用于:创建所述gRPC请求对应的gRPC业务的数据对象,并根据所述目标数据对所述数据对象进行赋值。可选地,所述装置还包括:结果校验模块,用于根据预设关键字对所述性能测试结果进行校验,确定所述性能测试结果是否符合预期。可选地,所述装置还包括:异常显示模块,用于若所述性能测试结果不符合预期,则获取所述性能测试结果中的异常信息,并将所述异常信息进行显示。第三方面,本专利技术实施例还提出一种电子设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述方法。第四方面,本专利技术实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述方法。由上述技术方案可知,本专利技术实施例通过将gRPC请求发送给gRPC服务器,接收gRPC服务器性能测试后返回的性能测试结果,并基于Jmeter对处理后的性能测试结果进行展示,极大减少了性能测试的脚本开发时间,同时保障了并发的稳定性,以及友好的将结果通过Jmeter自带的统计展现出来。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。图1为本专利技术一实施例提供的一种基于Jmeter的gRPC性能测试方法的流程示意图;图2为本专利技术一实施例提供的一种基于Jmeter的gRPC性能测试装置的结构示意图;图3为本专利技术一实施例提供的电子设备的逻辑框图。具体实施方式下面结合附图,对本专利技术的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本专利技术的保护范围。图1示出了本实施例提供的一种基于Jmeter的gRPC性能测试方法的流程示意图,包括:S101、定义发送谷歌远程过程调用gRPC请求的通道,根据所述通道构造gRPC请求,并将所述gRPC请求发送给gRPC服务器。其中,所述通道为用于构建gRPC请求而定义的对象。具体地,通过数据初始化方法setupTest()调用getDefaultParameters()方法设置需要访问的被测业务地址grpc_host、对应的端口grpc_port,以及请求的参数grpc_req,并定义传输数据的通道channel,同时创建对象blockingStub用于在通道上进行请求的构造,构造gRPC请求后将该gRPC请求发送给gRPC服务器。S102、创建所述gRPC请求对应的gRPC业务的数据对象,并根据所述gRPC请求对所述数据对象进行赋值。S103、接收所述gRPC服务器根据所述gRPC请求进行性能测试后返回的性能测试结果,根据赋值后的数据对象对所述性能测试结果进行处理,并基于Jmeter对处理后的性能测试结果进行展示。其中,gRPC服务器接收gRPC请求后执行性能测试,得到性能测试结果,并将性能测试结果返回至测试服务器或测试终端。具体地,构造Jmeter所定义的javarequest类型时,需要创建类并继承自org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient,这是一个执行类,用于创建一个gRPC业务的数据对象,并在入口函数main方法中调用业务类的方法,从而完成从数据初始化到执行请求,再到结果处理的整个过程。通过加装开发的jar包,用Jmeter界面化设置gRPC请求的参数,来进行可视化的界面压力测试,就像传统本文档来自技高网...

【技术保护点】
1.一种基于Jmeter的gRPC性能测试方法,其特征在于,包括:定义发送谷歌远程过程调用gRPC请求的通道,根据所述通道构造gRPC请求,并将所述gRPC请求发送给gRPC服务器;创建所述gRPC请求对应的gRPC业务的数据对象,并根据所述gRPC请求对所述数据对象进行赋值;接收所述gRPC服务器根据所述gRPC请求进行性能测试后返回的性能测试结果,根据赋值后的数据对象对所述性能测试结果进行处理,并基于Jmeter对处理后的性能测试结果进行展示。

【技术特征摘要】
1.一种基于Jmeter的gRPC性能测试方法,其特征在于,包括:定义发送谷歌远程过程调用gRPC请求的通道,根据所述通道构造gRPC请求,并将所述gRPC请求发送给gRPC服务器;创建所述gRPC请求对应的gRPC业务的数据对象,并根据所述gRPC请求对所述数据对象进行赋值;接收所述gRPC服务器根据所述gRPC请求进行性能测试后返回的性能测试结果,根据赋值后的数据对象对所述性能测试结果进行处理,并基于Jmeter对处理后的性能测试结果进行展示。2.根据权利要求1所述的方法,其特征在于,所述定义发送谷歌远程过程调用gRPC请求的通道,根据所述通道构造gRPC请求,并将所述gRPC请求发送给gRPC服务器之后,还包括:根据预设格式对所述gRPC请求的数据串进行切分,得到符合所述预设格式的目标数据;相应地,所述创建所述gRPC请求对应的gRPC业务的数据对象,并根据所述gRPC请求对所述数据对象进行赋值,具体包括:创建所述gRPC请求对应的gRPC业务的数据对象,并根据所述目标数据对所述数据对象进行赋值。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据预设关键字对所述性能测试结果进行校验,确定所述性能测试结果是否符合预期。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:若所述性能测试结果不符合预期,则获取所述性能测试结果中的异常信息,并将所述异常信息进行显示。5.一种基于Jmeter的gRPC性能测试装置,其特征在于,包括:请求发送模块,用于定义发送谷歌远程过程调用gRPC请求的通道,根据所述通...

【专利技术属性】
技术研发人员:高强荣震郭海超姚俊晓
申请(专利权)人:北京奇安信科技有限公司
类型:发明
国别省市:北京,11

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

1