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才能行.
问题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才能行.
相关文章推荐
- Jmeter第一次尝试
- Jmeter第一次尝试
- Jmeter第一次尝试
- Jmeter发送某个request时而成功,时而失败(处理办法:失败的时候尝试重新发送这个HTTP request)
- 第一次尝试
- 在CentOS上部署Asp.Net MVC3的第一次尝试
- 昨晚第一次使用了 NUnit,方才发现它是个好东西,似乎好多好东西其实一直在身边,只是没有勇气去尝试而一直无法体会。
- 第一次尝试三层架构<实现简单的增、删、查、改>
- 我的第一次尝试-Python
- 第一次尝试写博客记录我的技术大牛之路,哈哈
- 第一次尝试用ANT进行build
- 我的第一次尝试
- c 睡觉前请关灯 的第一次尝试
- 尝试写第一次博客
- 第一次尝试
- Hadoop的第一次尝试
- 数据挖掘第一次尝试(致即将逝世的研一)
- 第一次进步 尝试着在这开始进步旅程
- 第一次尝试使用tensorflow来识别图片
- 第一次poj的尝试——poj1423