jmeter压测3000并发_使用JMeter进行Dubbo性能测试

jmeter压测3000并发_使⽤JMeter进⾏Dubbo性能测试
1 前⾔
说道性能测试⼯具,你会⽴刻联想到哪⼀个?ab(ApacheBench)、JMeter、LoadRunner、wrk…可以说市⾯上的压测⼯具实在是五花⼋门。那如果再问⼀句,对 Dubbo 进⾏性能压测,你会 pick 哪⼀个?可能⼤多数⼈就懵逼了。可以发现,⼤多数的压测⼯具对开放的协议
⽀持地⽐较好,例如:HTTP 协议,但对于 Dubbo 框架的私有协议:dubbo,它们都显得⼒不从⼼了。
如果不从通⽤的压测⼯具上解决 Dubbo 的压测需求问题,可以⾃⼰写 Dubbo 客户端,⾃⼰统计汇总结果,但总归不够优雅,再加上很多开发同学没有丰富的测试经验,很容易出现⼀些偏差。说到底,还是压测⼯具靠谱,于是便引出了本⽂的主⾓ —— jmeter-plugins-for-apache-dubbo。这是⼀款由 Dubbo 社区 Commiter – 凝⾬ 同学开发的 JMeter 插件,可以⾮常轻松地对 Dubbo 实现性能测试。
2 JMeter 介绍
在开始压测 Dubbo 之前,先简单介绍⼀下这款开源的性能测试⼯具 —— JMeter。JMeter 是 Apache 组织基于 Java 开发的⼀款性能测试⼯具。它最初被设计⽤于 Web 应⽤测试,但后来扩展到其他测试领域,并可以在 Windows、Mac、Linux 环境下安装使⽤。JMeter
商品流通企业会计制度
还提供了图形界⾯,这使得编写测试⽤例变得⾮常简单,具有易学和易操作的特点。
JMeter 官⽹:/i
2.1 安装 JMeter
截⽌本⽂发布,官⽅的最新版本为:apache-jmeter-5.1.1.zip , 下载后直接解压即可。
jmeter⽬录
在 ${JMETER_HOME}/bin 下到启动脚本,可以打开图形化界⾯
Mac/Linux ⽤户可以直接使⽤ jmeter 可执⾏⽂件,或者 jmeter.sh 启动脚本
Windows ⽤户可以使⽤ jmeter.bat 启动脚本
2.2 命令⾏提⽰信息
启动过程中会有⼀段命令⾏⽇志输出:
================================================================================Don't use GUI mode for load testing !, only for Test c 注意到第⼀⾏的提⽰,GUI 仅仅能够⽤于调试和创建测试计划,实际的性能测试需要使⽤命令⾏⼯具进⾏。
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
【jmx file】:使⽤ GUI 创建的测试计划⽂件,后缀名为 .jmx
【results file】:测试结果⽂本⽂件输出路径
【Path to web report folder】:测试报告输出路径,JMeter 的强⼤之处,可以⽣成图⽂并茂的测试报告
2.3 GUI 界⾯展⽰
上图所⽰为 JMeter 的主界⾯。官⽅提供了国际化⽀持,通过 【Options】->【Choose Language】可以将界⾯语⾔变更为简体中⽂。
3 JMeter 压测 HTTP
本节以 JMeter 压测 HTTP 为引⼦,介绍 JMeter 的使⽤⽅式,让没有使⽤过 JMeter 的读者对这款⼯具有⼀个较为直观的感受。鼻科手术中文版
3.1 创建线程
在“测试计划”上右键 【添加】–>【线程(⽤户)】–>【线程组】。
给线程组起⼀个名字,⽅便记忆。
线程数:决定了由多少线程并发压测
Ramp-Up:代表了 JMeter 创建所有线程所需要的时间,如图所⽰则代表每 0.1s 创建⼀个线程
循环次数:在运⾏所设置的次数之后,压测将会终⽌。如果想要运⾏固定时长的压测,可以设置为:永远,并在下⾯的调度器中指定持续时间
3.2 增加 HTTP 取样器
在刚刚创建的线程组上右键 【添加】–>【取样器】–>【HTTP请求】。
为 HTTP 取样器配置上压测地址和必要的参数
3.3 添加察看结果树
在刚刚创建的线程组上右键 【添加】–>【】–>【察看结果树】。
只有添加了【察看结果树】才能让我们看到 GUI 中测试的结果。
3.4 准备 HTTP Server
使⽤ SpringBoot 可以快速构建⼀个 RestController,其暴露了 localhost:8080/queryOrder/{orderNo} 做为压测⼊⼝
@RestControllerpublic class OrderRestController { @Autowired OrderService orderService; @RequestMapping("/queryOrder/{orderNo}") public OrderDTO 被压测的服务 OrderService :
@Componentpublic class OrderService { public OrderDTO queryOrder(long orderNo) { OrderDTO orderDTO = new OrderDTO(); orderDTO.setOrderNo(o 3.5 验证结果
在刚刚创建的线程组上右键 【验证】,执⾏单次验证,可以⽤来测试与服务端的连通性。在【察看结果树】选项卡中可以看到【响应数
据】已经正常返回了。长沙铁道学院学报
3.6 执⾏测试计划
还记得之前启动 GUI 时控制台曾经提⽰过我们,GUI 只负责创建测试计划并验证,不能⽤于执⾏实际的并发压测。在 GUI 中准备就绪之
王薄
后,我们可以在【⽂件】->【保存测试计划为】中将测试计划另存为 rest-order-thread-group.jmx 测
试⽂件,以便我们在命令⾏进⾏压测:
1jmeter -n -t ./rest-order-thread-group.jmx -l ./ -e -o ./webreport
下图展⽰了最终⽣成的测试报告,主要汇总了执⾏次数、响应时间、吞吐量、⽹络传输速率。
在实际的测试报告中,还有更加详细的维度可以展⽰,上述只是展⽰了汇总信息。
4 JMeter 压测 Dubbo
JMeter 默认并不⽀持私有的 dubbo 协议,但其优秀的扩展机制使得只需要添加插件,就可以完成 Dubbo 压测,这⼀节也是本⽂重点介绍的部分。
高温工业电视
4.1 安装 jmeter-plugins-for-apache-dubbo
插件地址:github/thubbo/jmeter-plugins-for-apache-dubbo
⽬前该插件⽀持对最新版本的 Dubbo 进⾏压测,推荐的安装⽅式:
1. 克隆项⽬:git clone github/thubbo/jmeter-plugins-for-apache-dubbo.git
2.
3. 打包项⽬,构建 JMeter 插件:mvn clean install ,得到:jmeter-plugins-dubbo-2.7.3-jar-with-dependencies.jar无锡毛小平
4.
5. 将插件添加到 ${JMETER_HOME}libext
安装插件后的ext⽬录
4.2 增加 Dubbo 取样器
之前的⼩结已经介绍了如何添加线程组和 HTTP 取样器,现在想要对 Dubbo 应⽤进⾏性能测试,可
以直接复⽤之前的线程组配置,在线程组上右键 【添加】–>【取样器】–>【Dubbo Sample】。

本文发布于:2024-09-22 13:37:43,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/472849.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:压测   测试   线程   结果
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议