使用JMH对远程接口进行压测

在 《java中的基准测试框架JMH》中我们使用JMH框架进行Java SDK中的API的压测。
最近我又遇到了需要对第三方接口进行压测的需求,又用到了它。

JHM(Java Microbenchmark Harness)是OpenJDK团队开发的Java微基准测试框架,专门用于精确测量Java代码的性能,精度可以达到纳秒级别。

提供吞吐量、平均时间、采样时间等多种测试模式
自动进行预热处理,使JVM达到稳定状态
支持多线程测试,模拟真实并发场景

虽然它本身是针对JDK的,但是配合http框架也可以对远程API进行压测。

项目我放到网上了: https://github.com/davelet/local-load-test

用法是:

/* by 01130.hk - online tools website : 01130.hk/zh/allencrypt.html */
java -Dapi.baseUrl=http://localhost:8080 \
  -Dapi.endpoint=/api/v1/test \
  -Dapi.method=GET \
  -jar target/benchmarks.jar \
  -t 10 -wi 3 -w 5s -i 5 -r 10s \
  ApiLoadTestBenchmark
API配置参数(通过-D指定)
参数说明默认值
api.baseUrlAPI基础URLhttp://localhost:8080
api.endpointAPI端点路径/api/v1/test
api.methodHTTP方法GET
api.body请求体(JSON)""
api.headersHTTP Headers""
api.connectionTimeout连接超时(ms)5000
api.socketTimeout响应超时(ms)10000
JMH性能测试参数(通过命令行选项指定)
参数说明默认值示例
-t并发线程数1-t 10
-wi预热迭代次数0-wi 3
-w每次预热时长10s-w 5s
-i测试迭代次数1-i 5
-r每次测试时长10s-r 10s
-fJVM fork次数1-f 1

更复杂和详细的说明可以参考 https://github.com/davelet/local-load-test/blob/develop/README.md

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值