您的位置:首页 > 其它

Jmeter的第一次尝试

2017-07-21 16:20 281 查看
计划用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才能行.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: