前几天朋友公司来了一个QA妹子,据他描述大概长这个样子吧:
这可把他激动坏了,于是找强哥问要怎么接近她。我想了想,既然是QA妹子,肯定是找她帮忙测试啦。不过如果只是简单的测试好像建立不起什么深入的关系,于是根据强哥多年的工作经验,大部分初级QA妹子是不会怎么做压测的,假如会简单的压测,那么Dubbo压测肯定不会。这样不就可以让妹子帮忙做压测被鄙视转为教妹子做Dubbo压测被佩服了吗?
可是主意有了,告诉朋友,他居然告诉我他也不会用Jmeter做Dubbo压测,平常都只是压测Http接口,Dubbo接口真没测过。强哥听完一阵晕眩,好,帮人帮到底,出个最简单易学的教程助你一臂之力。
一、准备工作
1.1、下载Jmeter
1.2、打包Jmeter的Dubbo插件
为什么不是直接下载插件呢?因为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还有很多强大的功能,不过,在这里用于教授妹子入门应该是完全没问题了。哈哈,想到妹子看了教程一定会很开心,心里莫名的更加高兴了。
不过,在将教程写完给朋友后,妹子第二天却就给小组的人分结婚喜糖了。朋友真的是哭晕在厕所。
关注公众号获取更多内容,有问题也可在公众号提问哦:
强哥叨逼叨
叨逼叨编程、互联网的见解和新鲜事