当前位置: 首页 > 软件库 > 开发工具 > 测试工具 >

jmeter-grpc-request

JMeter Grpc 请求协议插件
授权协议 Apache-2.0
开发语言 Java
所属分类 开发工具、 测试工具
软件类型 开源软件
地区 国产
投 递 者 强保臣
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Apache JMeter and gRPC logo

这个JMeter采样器允许您向服务器发送一个gRPC请求

它和HTTP请求一样简单

介绍

JMeter gRPC Request 是一个功能强大的 JMeter Grpc 插件,可用于测试任何 gRPC 服务器,它不需要生成gRPC类或编译服务的protos二进制文件,只是一个非常简单的输入:

  • gRPC服务的主机和端口
  • 需要测试的RPC方法
  • proto文件路径
  • 格式化的JSON请求数据

特性

  • 支持压测阻塞等调用方式
  • 支持在运行时解析proto文件
  • 支持TLS连接
  • 支持元数据认证(JWT/Token)
  • 支持JSON格式的请求数据
  • 支持运行在Windows、Mac、Linux中
  • 支持自动列出proto文件中的所有完整方法
  • 支持根据proto文件自动生成请求Mock
  • 支持各种报告生成
  • 支持自动化测试

如何使用

jmeter-create-testscript-grpc

插件安装

  你需要将 jmeter-grpc-request 插件的 jar 包复制到JMeter的 lib/ext 目录下面,然后重启你的JMeter工具。

  jmeter-grpc-request 插件的 jar 包,可以从 Releases Page 获得,也可以 在 JMeter Plugins Manager 中找到

使用 JMeter 发出 gRPC 请求

创建测试脚本:

  • 添加线程组:右键单击测试计划 → 添加 → 线程(用户) → 线程组
  • 添加GRPC Request:右键单击新建的线程组 → 添加 → 取样器 → GRPC Request
  • 填写请求信息:主机、端口、proto文件夹、rpc方法、请求数据
  • 保存测试脚本

运行测试:

  • 通过JMeter GUI在顶部栏点击启动按钮
  • 通过命令行:bin/jmeter -n -t <test JMX file>.jmx -l <test JMX result>.csv -j <test log file>.log -e -o <Path to output folder>

使用说明

序号 选项 描述
1 Server Name or IP gRPC服务器地址(域名或IP)
2 Port Number gRPC服务器端口 (80/ 443)
3 SSL/TLS 开启SSL/TLS认证
4 Proto Root Directory proto文件的根路径
5 Library Directory (Optional) proto文件解析需要依赖的额外库的文件夹路径 (googleapis)
6 Full Method 用于请求测试的RPC方法
7 Metadata

Metadata可以用于token身份验证等方式,支持以下两种方式传输(UTF-8):
1. 使用键值对(Key: Value):
  - key1: value1, key2: value2
2. 使用 Json String:
   - {"key1":"Value1", "key2":"value2"}

8 Deadline 请求超时时间(单位:毫秒)
9 Send JSON Format With the Request 格式化的JSON请求数据

基准测试

通过基准测试验证,jmeter-grpc-request 插件在对gRPC系统进行负载测试时是稳定的。

了解更多 Benchmark: jmter-grpc-request

  • CCU: 120 user
  • Duration: 30 min

  • 背景:为了项目需要,需要对基于gRPC协议的模块进行性能测试。当前没有直接的工具可以使用,可以通过代码实现,这里选择了借助JMeter的测试特性,通过对JMeter进行二次开发完成这一需求的工具。 环境:Win7(64bit)+ JMeter3.2 + JDK 1.8.0_111 + IntelliJ IDEA 目录 1.gRPC概念 2.Java环境 3.proto3文件及语法 1.gRPC概念

  • 1.主要实现方法是借助JavaSamplerClient 实现接口: import org.apache.jmeter.config.Arguments; import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient; import org.apache.jmeter.protocol.java.sampler.JavaSampl

  • 一、下载内容如下: 1、Jmeter安装包         apache-jmeter-5.1.1.zip 2、jar包如下(放到jmeter安装路径/lib/ext中):         JMeterPlugins-Extras.jar         metersphere-jmeter-functions-1.4.jar         jmeter-plugins-manager-1.3.

  • 1.安装: pip install grpcio pip install grpcio_tools pip install protobuf 2.通过.proto文件生成所需的模块和方法 1.安装好了必要的模块和工具(编译器)之后,我们就可以根据proto协议文件生成所需的模块和方法,比如我们要测试的协议文件是consumer.proto,那我们cmd命令行打开,进入到存放.proto文件目录下,

  • 转载:https://blog.csdn.net/yaorongke/article/details/82799609

 相关资料
  • 我有专有的基于http的API要从JMeter测试。不幸的是,API的一些endpoint希望http DELETE方法带有请求体(我知道它的API设计有问题,使用DELETE with request body,但我无法更改该API,需要对其进行测试)。 如何从JMeter测试它?似乎标准的HttpRequest采样器在没有任何警告的情况下默默忽略了我的身体有效载荷。(当我在《邮递员》中尝试它时

  • 正如问题所说,我从源代码编译了grpc,也做了,但是,grpc_python_plugin的

  • 本文档作为 gRPC 在 HTTP2 草案17框架上的实现的详细描述,假设你已经熟悉 HTTP2 的规范。产品规则采用的是ABNF 语法 大纲 以下是 gRPC 请求和应答消息流中一般的消息顺序: 请求 → 请求报头 *有定界符的消息 EOS 应答 → 应答报头 *有定界符的消息 EOS 应答 → (应答报头 *有定界符的消息 跟踪信息) / 仅仅跟踪时 请求 请求 → 请求报头 *界定的消息 E

  • WebSocket提供了一种像人类对话一样的双向通信。客户端可以向服务器发送数据,服务器可以随时向客户端发送数据。但是请求-响应行为呢?客户端可以向服务器询问一些内容并等待响应。看来Websocket并没有提供任何东西来将客户端数据(请求)链接到服务器数据(响应)。 这可能是子协议的工作,我对如何做到这一点有一些想法(发送一个ID和请求,并在超时期间内等待一个具有相同ID的响应)。 为了不推倒重来

  • 本文向大家介绍PHP中Http协议post请求参数,包括了PHP中Http协议post请求参数的使用技巧和注意事项,需要的朋友参考一下 本文给大家介绍PHP中Http协议post请求参数,具体内容如下所示: WEB开发中信息基本全是在POST与GET请求与响应中进行,GET因其基于URL的直观,易被我们了解,可POST请求因其信息的隐蔽,在安全的同时,也给开发者们模拟发送带来了麻烦。接下来的几篇博

  • 我在Jmeter中有一个Java请求,我为它编写了扩展AbstractJavaSampleClient的代码,并实现了重写的方法,可以在远程机器的日志中看到响应,但在Jmeter中的view Results树和save response to file中看不到响应。下面是运行测试代码片段,请告诉我如何在Jmeter中捕获Java请求响应