English | 简体中文
他是一个功能强大的JMeter Grpc插件,可用于测试任何gRPC服务器,它不需要生成gRPC类或编译服务的protos二进制文件,只是一个非常简单的输入:
- gRPC服务的主机和端口
- 需要测试的RPC方法
- proto文件路径
- 格式化的JSON请求数据
- 支持压测阻塞等调用方式
- 支持在运行时解析proto文件
- 支持TLS连接
- 支持元数据认证(JWT/Token)
- 支持JSON格式的请求数据
- 支持运行在Windows、Mac、Linux中
- 支持自动列出proto文件中的所有完整方法
- 支持根据proto文件自动生成请求Mock
- 支持各种报告生成
- 支持自动化测试
你需要将 jmeter-grpc-request 插件的 jar
包复制到JMeter的 lib/ext
目录下面,然后重启你的JMeter工具。
jmeter-grpc-request 插件的 jar
包,可以从 Releases Page 获得,也可以 在 JMeter Plugins Manager 中找到
创建测试脚本:
- 添加线程组:右键单击测试计划 → 添加 → 线程(用户) → 线程组
- 添加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认证(https) |
4 | Disable SSL/TLS Cert Verification | 禁用SSL/TLS证书校验(自签证书需开启) |
5 | Proto Root Directory | proto文件的根路径 |
6 | Library Directory (Optional) | proto文件解析需要依赖的额外库的文件夹路径 (googleapis) |
7 | Full Method | 用于请求测试的RPC方法 |
8 | Metadata | Metadata可以用于token身份验证等方式,支持以下两种方式传输(UTF-8): 1. 使用键值对(Key: Value): - key1: value1, key2: value2 2. 使用 JSON String: - {"key1":"Value1", "key2":"value2"} |
9 | Deadline | 请求超时时间(单位:毫秒) |
10 | Send JSON Format With the Request | 格式化的JSON请求数据 |
运行示例说明见 ./dist/example 目录
通过基准测试验证,jmeter-grpc-request 插件在对gRPC系统进行负载测试时是稳定的。
了解更多 Benchmark: jmter-grpc-request
- CCU: 120 user
- Duration: 30 min
从源码构建 JMeter GRPC Request 插件,进行开发调试,必须拥有以下环境:
mvn clean package