JMeter 内置支持了一系列的常用协议,例如 HTTP/HTTPS、FTP、JDBC、JMS、SOAP 和 TCP 等,可以直接通过编写脚本来支持相关协议的测试场景。除了这些协议之外,用户也可能需要进行一些其他标准协议的测试,或者某些情况下在标准协议基础上增加了定制化的内容,需要对定制后的协议进行测试。本文中介绍的 Java Sampler 扩展机制就是 JMeter 提供的一种可以轻松实现对新协议支持的方式。
Java Sampler 简介
JMeter 中有一类重要的组件 Sampler,即“取样器”。取样器中包含了前面提到的一系列协议,可以认为“取样器”这个类别中的组件,是对相应协议的实现。不过 Java Sampler 的意思并不是指支持所谓的 Java 协议,也不能简单地说成 Java 取样器,比较准确的意思是利用自定义的 Java 类来扩展对新协议的支持,这些扩展的新协议都是通过“Java请求“加入到测试脚本中的。
下面两张图的步骤展示了如何添加 Java 请求,以及如何选择不同的 Java Sampler。


接下来我们将以 MQTT 协议中的连接为例,介绍使用 Java Sampler 来进行扩展开发的具体步骤。
准备开发环境
在开发 JMeter插件的时候,大部分情况不需要把 JMeter 的源代码下载,只需要对相关的 JMeter 库进行引用就可以了。请参见文章 JMeter 扩展开发:自定义函数 来准备开发环境。需要注意的是,在本文的示例中,除了引用 ApacheJMeter_core 之外,还需要引入 ApacheJMeter_core ,以及支持 MQTT 协议的 Java 类库,在此例中使用的是开源的 Eclipse Paho Java MQTT client 库。其他的 MQTT Java 类库当然也可以,取决于被扩展的协议和协议扩展者的偏好。
pom.xml 中所需的依赖部分如下:
<dependencies>
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.5

本文介绍了如何使用JMeter的JavaSampler扩展机制来支持MQTT协议的测试。首先,讲解了JavaSampler的基本概念和作用,然后详细阐述了通过继承AbstractJavaSamplerClient并实现相关方法来创建自定义JavaSampler的步骤,包括设置默认参数、初始化和清理操作。最后,以MQTT连接为例,展示了具体代码实现,并说明了如何编译、部署和使用自定义的JavaSampler。
最低0.47元/天 解锁文章
272

被折叠的 条评论
为什么被折叠?



