其实网上介绍Jmeter测试的文章有很多,这次更多是从一次需求逻辑的角度去考虑怎么做一次性能测试。
一、确定需求
说是性能测试,但用到了Jmeter,其实大多数场景下更恰当说应该是叫做压力测试更合适一点,因为Jmeter发起请求更多的是对接口发起的请求,从该接口去看整个系统的一个极限性能在哪里,从而发现资源或逻辑处理瓶颈进行对应的优化。本文的出发点便来于此。
之前同事基于开源框架Californium实现了一个关于物联网Coap协议的消息组件,功能是将设备上送的Coap协议数据转换成系统可见的格式传输到物联网,中间件大致架构如下图:
如上图所示,因为使用了Redis缓存和消息队列作为辅助工具,便需要探测一下这个中间件的性能瓶颈在哪儿。初步分析因为是类UDP协议,也不涉及磁盘读写,因此网络和IO方面的影响就可以忽略了,那么重点关注的点就可以放在程序逻辑、JVM和Redis、消息队列这几块上。
二、编写Java插件
因为是特定的需求,那么自然是需要自己编写插件的,不过也简单,照官方介绍弄了一个,思路如下:
因为准备使用Jmeter集群来测,所以也就没有必要写图形界面,直接扩展使用AbstractSampler类,在里面添加发送请求报文和处理返回的响应的逻辑处理方法,然后将开发调试好的代码编译,打成JAR包,拷贝到JMeter的lib\ext目录下,其它相关依赖JAR包拷贝到JMeter的lib目录下。
三、录制脚本
Jmeter本身是可以录制脚本的,在界面上新建线程组,使用上面写的插件…
四、构建分布式测试集群
待续
五、分析调优
待续
六、总结报告
待续