前几天朋友公司来了一个QA妹子,这可把他激动坏了,于是找强哥问要怎么接近她。我想了想,既然是QA妹子,肯定是找她帮忙测试啦。不过如果只是简单的测试好像建立不起什么深入的关系,于是根据强哥多年的工作经验,大部分初级QA妹子是不会怎么做压测的,假如会简单的压测,那么Dubbo压测肯定不会。这样不就可以让妹子帮忙做压测被鄙视转为教妹子做Dubbo压测被佩服了吗?
可是主意有了,告诉朋友,他居然告诉我他也不会用Jmeter做Dubbo压测,平常都只是压测Http接口,Dubbo接口真没测过。强哥听完一阵晕眩,好,帮人帮到底,出个最简单易学的教程助你一臂之力。
一、准备工作
1.1、下载Jmeter
下载地址[1]
1.2、打包Jmeter的Dubbo插件
项目地址[2]
为什么不是直接下载插件呢?因为GitHub上插件项目对应的jar包下载地址好像是被删掉了。所以只能自己clone源码下来打包啦。不过强哥懂各位爱学习的小伙伴总是“最勤奋的”,所以已经把两个包准备好了,想要的小伙伴直接公众号后台发消息:Jmeter获取吧。
1.3、安插件
把插件搞到Jmeter的安装目录下,即:JMETER_HOME/lib/ext/下。
二、使用教程
2.1、打开Jmeter
直接在JMETER_HOME目录下,Java -jar ApacheJMeter.jar 或 ./jmeter.sh。打开后如下:
2.2、先看界面
2.3、添加线程组
妹子肯定不知道线程组是干什么的,线程组就是用来配置发多少个请求来压接口用的。
一个线程相当于一个用户请求。比如线程数填3,Ramp-up时间填2,循环次数填1,就表示在2秒内发送3次请求,执行1次。
2.4、添加Dubbo取样器
2.5、配置Dubbo取样器
下面红框的填上就行
注意:Get Provide List按钮点击后,右边的Interfaces和Methods的下拉框就会获取到zk上对应的所有Dubbo接口和接口对应的方法了。
2.6、添加查看结果树和汇总报告
看结果正常这两个就足够了。
2.7、测试
点击界面工具栏的绿色三角按钮开始压测。
等待压测结束后,我们可以选择左侧的察看结果树,就可以看到本轮测试的请求情况:
选择其中的请求可以在右边看到这个请求的详细信息,包括时间,请求数据长度,请求地址等等。
选择汇总报告可以看到本轮测试的数据报告:
最后再好好的和妹子介绍下报告的意思:
•样本:请求的次数,计算公式是线程数*循环次数,如果线程组配置勾选了永远,那么就是你停止测试时实际发送的请求数
•平均值:响应时间的平均用时,单位是毫秒。比如这里的平均响应时间是38毫秒
•中位数:响应时间的中位数,单位是毫秒。
•90%百分位:90%的响应时间小于该数值,单位是毫秒。这里有90%的响应时间小于22毫秒
•95%百分位:含义和90%类似
•99%百分位:含义和90%类似
•最小值:本轮测试最小响应时间,单位是毫秒。
•最大值:本轮测试最大响应时间,单位是毫秒。
•异常%:本轮测试出现异常的请求比例。
•吞吐量:可以理解为QPS,即是我们测试的接口处理请求的能力。比如这里是平均每秒可以处理2.2次请求
•接收KB/Sec:响应数据的接收速率
•发送KB/Sec:请求数据的发送速率
至此,使用Jmeter调用Dubbo接口进行压测的教程就结束了。当然Jmeter还有很多强大的功能,不过,在这里用于教授妹子入门应该是完全没问题了。
哈哈,想到朋友学了我的教程然后教授妹子做压测,妹子一脸崇拜的表情,朋友这顿饭没跑了。
不过,在将教程写完给朋友后,妹子第二天居然就给小组的人分结婚喜糖了。朋友真的是哭晕在厕所。