初上手!Jemter测试TCP协议

一个对充电桩系统的性能测试前期准备,系统采用TCP协议发送16进制报文的形式进行通信。

为了方便后期测试,而且也是因为第一次接触,直接到客户现场调试了下,发现Jmeter是可以支持TCP协议的测试的,去之前也和小伙伴了解了下,百度上还是有很多对应的文章的,但是苦于没有对应的环境,好在客户那边有套测试环境,这样就可以实操下了。

根据前期看的文章,整个过程分别为:修改配置文件、创建线程组、添加tcp插件、填写服务器信息(ip+端口+报文)、结果树和聚合报告就不多介绍了;本质上和传统的http协议场景的构建可以说是大同小异了,唯一的区别就在于配置文件的修改和协议插件的选择了。

修改Jmeter配置文件

为什么修改Jmeter的配置文件呢?这是因为在配置文件中默认是关闭的,所以需要手动开启…

Jmeter的tcp插件提供了3种报文的实现类

org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl TCPClientImpl以文本编辑器中所编辑的纯文本为内容进行发送。—这个是默认的,如果就是这个就不用改了
org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl 以文本编辑器中所编辑的16进制字符(hex)内容为基础转换为二进制的 字节内容进行发送
org.apache.jmeter.protocol.tcp.sampler. LengthPrefixedBinaryTCPClientImpl 在BinaryTCPClientImpl基础上默认以发送内容的长度为 字节前缀进行填充

本次调试过程发送的报文是以16进制的方式进行发送的,所以这里使用表格中的第二种方式进行

找到jmeter/bin目录下的jmeter. properties。搜索tcp,然后改成BinaryTCPClientImpl,切记:不能有空格!!!
file
修改完配置文件后,需要将jmeter重启后才可以生效。

场景构建

按照以往的http方式分别添加线程组、tcp sampler、结果树
file

填写服务器信息

从图上看到需要填写的就是服务器的ip、端口以及发送的报文信息,值得注意的一点是在TCPlient classname中需要填写和配置文件中一样的handler类名(在TCP sampler中需要写全)
file

注意⚠️:如果发送的是16进制报文,正常的报文是带有空格的,就像这样
file
但是在工具中必须要删除报文中的空格,且不能有换行…
file

运行场景

在发送报文时如果需要保持长链接,在TCP sampler中需要勾选re-use connection才可以
file
发送后可以看到返回了对应的报文内容,这里看到显示的是红色,这是因为报文没有读取完毕导致的,如果等待足够的时间就可以看到是绿色的了
file

发表回复 0

邮箱信息不会被公布. 必填内容需填写 *

Captcha Code