Jmeter的第一次尝试
博客专区 > pior 的博客 > 博客详情
Jmeter的第一次尝试
pior 发表于7个月前
Jmeter的第一次尝试
  • 发表于 7个月前
  • 阅读 53
  • 收藏 2
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

计划用Jmeter做下性能测试, 问题我们不是Web应用, 是纯TCP的交互系统, 所以要用Jmeter的TCP通信方式,

问题1, 怎么收发TCP消息.

Jmeter里有个TCP取样器, 用于TCP通信, 但是默认是字符通信, 也就是说收发消息是字符消息. 配置如下图:

但是我们通信是二进制数据, 怎么搞呢?

找到jmeter.properites文件, 将tcp.handler修改为如下:

这个BinaryTCPClientImpl就是一个用于二进制数据处理的工具. 这时就可以写十六进制数据进行发送了.

写一个服务端, 在收到消息后进行响应数据的发送. 但是发送jmeter收到消息以后也不处理, 没有后续操作,

且在jmeter上, 通过给TCP取样器添加 察看结果树 后, 还能看到响应失败, response code:500

问题2, 解决消息结束符问题

这个BinaryTCPClientImpl默认消息接收为消息流结束, 但我们这种交互应用是长链的, 通过消息长度等表示一个消息的结束, 那怎么能等到流结束呢. 于是又找到一个配置项, tcp.BinaryTCPClient.eomByte , 可以配置BinaryTCPClientImpl某个字节时, 做为消息的结束处理.

这样只要服务端回的消息中有0x00, 这个Tcp取样器就认为这个消息结束了.

这样就可以继续下一个TCP取样器的消息发送了,

但是, 这个配置, 只能支持一个字节. 显然不能支持用帧尾进行消息处理.

看来得自定义一个TCPClientImpl才能行.

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 25
博文 151
码字总数 22496
×
pior
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: