【Jmeter】Jmeter的gRPC调用

这篇具有很好参考价值的文章主要介绍了【Jmeter】Jmeter的gRPC调用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Jmeter 作为一个老牌测试工具,有着很强大的功能和其他工具无法比肩的可扩展性。每当遇到一个新的测试场景或者测试工具,我都会去尝试一下使用 Jmeter 去实现。后续有可能的话我会出一个系列来介绍其他测试工具的功能如何使用 Jmeter 实现,给喜欢“简约法则”的朋友们多一个选择。

一、安装

Jmeter 安装与配置

Jmeter 运行依赖 JDK 环境,安装 Jmeter 之前需要先安装JDK。JDK的安装配置方式在此就不再介绍。

Jmeter 在 MacOS 下可以直接使用 Homebrew 进行安装,在终端中执行 brew install jmeter 即可。也可以从官网下载最新版本的 binary包 进行安装:

wget  https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.1.tgz
tar -zxvf  apache-jmeter-5.4.1.tgz

安装完成后需要配置一下Jmeter环境变量:

# JMETER_HOME 是Jmeter根目录的路径 我的长这样:~/apache-jmeter-5.4.1
export JMETER_HOME=path/to/jmeter_home
export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar

然后在终端输入Jmeter即可打开 Jmeter GUI界面。

Jmeter gRPC Request 插件安装

插件安装有两种方式,选择其一即可:

  1. 使用 Jmeter Plugins Manager
    - 下载 plugins-manager.jar 放到JMETER_HOME下的 lib/ext 目录下并重启 Jmeter (已安装可跳过此步):
cd $JMETER_HOME/lib/ext
curl -L https://jmeter-plugins.org/get/ -o ./jmeter-plugins-manager-1.6.jar
  • 点击菜单栏 Options 菜单中的 Plugins Manager ,选择 Available Plugins ,搜索 Jmeter gRPC Request 并勾选第一项,等待安装完毕后点击 Apply Changes and Restart Jmeter ,等待 Jmeter 重启即可。
    jmeter-grpc-request,性能测试,测试工具,1024程序员节当然如果你也像我一样在公司内网得到一个下图这样报错的话,请看 Plan B 。
    jmeter-grpc-request,性能测试,测试工具,1024程序员节
  1. 自己通过 Github 下载链接 下载插件将 jar 包放在 lib/ext 目录下并重启 Jmeter 。
cd $JMETER_HOME/lib/ext
wget -k https://github.com/zalopay-oss/jmeter-grpc-request/raw/master/dist/bin/jmeter-grpc-request-1.1.2.jar

二、配置和使用

创建请求

  1. 右键测试计划,添加一个线程组。

  2. 右键新添加的线程组,添加一个 gRPC 请求。
    jmeter-grpc-request,性能测试,测试工具,1024程序员节
    jmeter-grpc-request,性能测试,测试工具,1024程序员节

  3. 配置 gRPC请求:
    jmeter-grpc-request,性能测试,测试工具,1024程序员节
    必填字段:
    | | |
    |–|–|
    | | |

字段 字段解释
Server Name or IP gRPC 服务器的域名或者 ip
Port Number gRPC 服务运行在的端口
Proto Root Directory proto 文件所在的文件夹路径(路径下可以存在多个 proto 文件)
Full Method 被测方法,选择 proto 文件夹后可通过下拉列表选择
Deadline 请求超时时间,超时会收到DEADLINE_EXCEEDED异常,默认1000ms
Send JSON Format With the Request JSON 格式的请求入参,根据方法定义的结构传入。

发起及分析请求

  1. 在线程组下新增两个常用监听器 查看结果树 和 聚合报告。建议将线程组名修改为服务名,请求名修改为被测方法名:
    jmeter-grpc-request,性能测试,测试工具,1024程序员节
  2. 使用 ⌘ + R/ Ctrl + R 或者点击工具栏的运行按钮执行请求。
  3. 使用监听器查看请求的响应数据、执行时间等指标。

三、为什么 Jmeter

市面上也有不少其他优秀的 gRPC 调试或测试工具(BloomRPC/grpcui/gRPCurl等),各有其千秋。那么 Jmeter 的优势体现在哪里呢?我总结为以下几点:

  1. 工具复用。Jmeter 作为常用测试工具,直接使用它避免了我们多安装一个单独的 gRPC 工具。
  2. 性能测试。Jmeter 本身支持并发、参数化以及请求性能数据的收集,可以用来做 gRPC 的性能测试。
  3. 可扩展性。Jmeter gRPC 请求完美兼容 Jmeter 自带的各种前后置处理组件,可以像处理 http 请求一样使用各种前置处理器进行数据准备,然后使用各种后置处理器进行数据的后置处理和提取,有较强的可扩展性。
  4. 断言功能。Jmeter gRPC 请求完美兼容 Jmeter 自带的各种断言组件,适合配合各种参数化工具进行 gRPC 的自动化测试。特别是在功能重构的时候,可以把老版本的请求结果作为断言,验证新版本是否引入了 bug,非常实用。
  5. 脚本持久化。可以向 http 请求的脚本一样,把待测请求脚本写好保存下来,供后续使用。
    当然,在 gRPC 调用上,对比其他工具 Jmeter 当前也有一些缺点。比如:
  6. 依赖 proto 文件却又不能像 BloomRPC 一样提供请求入参示例。
  7. 异常查看不方便,需要依赖控制台的日志。
  8. 受限于 Jmeter 本身的功能,在一个脚本中单独执行某个请求时需要把其他请求禁用。
  9. 不能像 Jmeter http 请求一样设置请求默认值,处理域名更换这种需求会比较麻烦(当然这可以配合用户自定义变量解决)。
    所以这里也只是提供另外一种选择给,工作中还是根据自己的实际需求去选择适合自己的工具。

参考资料:
https://github.com/zalopay-oss/jmeter-grpc-request文章来源地址https://www.toymoban.com/news/detail-620389.html

到了这里,关于【Jmeter】Jmeter的gRPC调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【gRPC实现java端调用go的服务】

    在lib下面的存在一个simple.proto文件,我们使用插件protobuf-maven-plugin对其进行编译。配置如下: 利用插件进行编译 后可以获得对应的文件。 在client下创建一个grpc的包,并将以上两个文件放入。最后创建一个SimpleClient。 最后在Application中调用即可

    2024年02月04日
    浏览(43)
  • rpc、gRPC快速入门,python调用,protobuf协议

    远程过程调用协议RPC (Remote Procedure Call Protocol) RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据 举例:在 a服务内

    2024年02月13日
    浏览(44)
  • 仿`gRPC`功能实现像调用本地方法一样调用其他服务器方法

    在介绍 gRPC 简介之前我们先了解一写概念: 单体架构 单体架构简单理解就是所有的业务代码都在一台服务器上,一旦某个服务宕机,会引起整个应用不可用,隔离性差。只能整体应用进行伸缩,例如整体打包部署一台或多台服务器,浪费资源,可伸缩性差。代码耦合在一起

    2024年02月09日
    浏览(28)
  • 【C++】开源:grpc远程过程调用(RPC)配置与使用

    😏 ★,° :.☆( ̄▽ ̄)/$: .°★ 😏 这篇文章主要介绍grpc远程过程调用(RPC)配置与使用。 无专精则不能成,无涉猎则不能通。。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路🥞 项目Github地址: https://github.com/grpc/grpc 官网

    2024年02月15日
    浏览(30)
  • 深入剖析gRPC:Google开源的高性能RPC框架

    在本篇文章中,我们将深入剖析gRPC,Google开源的高性能RPC框架。gRPC是一种基于HTTP/2的高性能、可扩展的RPC框架,它使用Protocol Buffers作为接口定义语言,可以在多种编程语言之间实现无缝通信。 gRPC的核心设计理念是:通过使用HTTP/2作为传输协议,实现高效、可扩展的RPC通信

    2024年02月19日
    浏览(37)
  • 【Jmeter-Http Request】

    记录和学习http Request 控件的使用 创建http request 需要先创建一个线程组 创建 Http Request : 线程组 - add - Sampler - Http Request 创建完成,如下图所示,主要分为两个区域 basic 和 advanced,也就是基础配置区域和高级配置区域: 基础配置区域,如下图所示 web server 区域: Protocol 填写

    2023年04月09日
    浏览(25)
  • 【性能测试】Jmeter —— jmeter计数器

    如果需要引用的数据量较大,且要求不能重复或者需要递增,那么可以使用计数器来实现 如:新增功能,要求名称不能重复 1,新增计数器 计数器:允许用户创建一个在线程组之内都可以被引用的计数器。 计数器允许用户配置一个起点,一个最大值,增量数,循环到最大值,然

    2024年02月09日
    浏览(31)
  • JMeter性能测试系列一初识JMeter

    1.JMeter介绍 Apache组织的Stefano Mazzocchi是JMeter项目的创始人。编写JMeter最初的目的是为了测试server的性能(后期被Tomcat替代)。随后,JMeter在Apache组织内部开始被其他项目所使用,并最终推广出来,成为独立的软件项目并不断更新,提高能力。 JMeter使用Java语言开发,桌面级应用,

    2024年02月19日
    浏览(28)
  • 【Jmeter】Request1输出作为Request2输入-后置处理器

    【Jmeter】基础介绍-详细 接上文,继续介绍Jmeter,本文关注点为如何解决上文中提到的第一个问题,即: 需要实现Request1的返回作为Request2的RequestBody或Header Jmeter支持后置处理器,即对http请求(或其他取样器)的返回值进行提取并赋值给变量。 本例中从Request1的ResponseBody中提

    2023年04月20日
    浏览(26)
  • Jmeter接口/性能测试,Jmeter使用教程(超细整理)

    1、线程组 线程组分类: Jmeter线程组主要分为3类分别为线程组、setUp线程组、tearDown线程组 ①线程组 这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。 ②setUp线程组 一种特殊类型的ThreadG

    2024年02月15日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包