当前位置:   article > 正文

Jmeter tcp 压测实践_jmeter tcp压测 close

tcp压测

Jmeter 提供了3个Tcp实现类:

**·**TCPClientImpl。这是实现文本消息交换的基本类。在TCP取样器中,Text to send字段提供不同字符集的文本常量或可变字符串信息。

**·**BinaryTCPClientImpl。这是一个用于实现文本信息交互的类。Text to send字段中提供十六进制编码的二进制文本常量或变量信息。

**·**LengthPrefixedBinaryTCPClientImpl。这个类跟上一个的类似,但是在发送数据之前会加一个二进制的字节长度数据前辍。

个人选择了 BinaryTCPClientImpl, 因为项目使用的协议报文是二进制,不是字符串,而且二进制转十六进制也很容易,后续都以此为例进行测试。

配置 TCP Sampler

vim /{jmeter}/bin/jmeter.properties

启用 BinaryTCPClientImpl

tcp.handler=BinaryTCPClientImpl

重启Jmeter 即可发送16进制参数进行请求。

连接一直阻塞

运行测试任务发现:后台正常收到请求、处理并返回数据,但客户端 socket 连接一直被阻塞,无法进行后续请求及统计性能。

搜索知是因为未配置 「结束符」 所致,只有当客户端在取响应流中读到 「结束符」 才会认为本次业务完成,否则会一直阻塞,直到流被关闭。

Jmeter 配置文件中关于结束符的描述:

eolByte = byte value for end of line

set this to a value outside the range -128 to +127 to skip eol checking

#tcp.eolByte=1000

BinaryTCPClient 源码:

注意 BinaryTCPClient 的「结束符」配置是:tcp.BinaryTCPClient.eomByte, 与配置文件列的不一样。

vim /{jmeter}/bin/jmeter.properties

添加结束符

tcp.BinaryTCPClient.eomByte=-128

注意这个配置是10进制的数,需要根据响应报文转化得到。

再看源码对 「结束符」的判断:

useEolByte 只有在值为 -128 ~ +127 之间时才为 true。

对于结束符的判断,只在流的结尾处判断最后一个字节是否与为 配置的值。如果是就结束,不是就继续循环。

如果自己的业务响应报文结尾不符合 -128 ~ +127 这个范围,那么只能在正常报文尾部再添加一个 符合的字节,我们项目就是这种情况。

一个业务需单socket多次收发数据

我们的一个业务需在 一个socket 建立后,与后台进行3次有依赖顺序的通信才算完成。

方法:使用 Re-use connection 和 close connection 组合。

**·**Re-use connection:表示在一个线程循环内的 tcp sampler 是否可重用同一个socket连接,即共用一个socket。

**·**close connection:表示完成本次请求后是否关闭socket,如果关闭,则下一个 tcp sampler 会重新创建 socket

新建多个 tcp sampler:

**·**每个都勾选Re-use connection, 表示大家都可以共用一个socket

**·**只有最后一个tcp sampler 勾选 close connection,这样上面的 socket 会延续下来继续使用,完成最后交互后,关闭socket,进行下一轮循环业务时,又会创建新的socket

获取完整业务的统计数据

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

Wj0Ls-1712879135169)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/911716
推荐阅读
相关标签
  

闽ICP备14008679号