Skip to content

JMeterTCPSocket压测实战

JMeter TCP Socket 压测实战

JMeter TCP&ws 协议性能测试

todo 截图

JMeter TCP&ws 协议性能测试

Netty是基于Java NIO client-server的网络应用框架,使用Netty可以快速开发网络应用,例如服务器和客户端协议。Netty提供了简单易用的API从网络处理代码中解耦业务逻辑。Netty是完全基于NIO实现的,所以整个Netty都是异步的。

InputStream is = new FileInputStream("input.bin");
int byte =is.read();// 当前线程等待结果到达直至错误
    while (true){
        selector.select();// 从多个通道请求事件
        Iterator it = selector.selectedKeys().iterator();while (it.hasNext()){
            SelectorKey key =(SelectionKey)it.next();handleKey(key);
            it.remove();
        }
    }

JMeter TCP&ws 协议性能测试

todo 截图

JMeter TCP&ws 协议性能测试

todo 截图

JMeter TCP&ws 协议性能测试

https://github.com/hgwz/NettyTcpServer.git

todo 截图

JMeter TCP&ws 协议性能测试

TCP Sampler TCPClient classname为TCP Sample使用的TCP Client的实现,可以是自定义的,可以是JMeter提供的。 TCPClientlmpl:TCPClient最简单实现类,也是默认使用的Client。以文本方式发送和接收数据。读取响应时读到输入流结束或者结束符停止。其中结束符通过JMeter属性的tcp.eolByte定义。使用的字符集通过tcp.charset配置。

BinaryTCPClientlmpl:TCPClient的二进制实现类。以二进制(Hex流)的方式将配置的数据传送,所以要求配置的数据必须是二进制(Hex流)。读取数据的时候会把数据重新转为二进制(Hex流)。读取响应时一直读到输入流结束,或者定义好的结束字节,该字节通过tcp.BinaryTCPClient.eomByte配置。

LengthPrefixedBinaryTCPClientlmpl:BinaryTCPClientlmpl的扩展类,在二进制(Hex流)的前面增加了默认2字节的长度。也就是说对于配置的数据,该类会自动增加2字节的长度数据。2字节的配置可以改变,通过tcp.binaryLength.prefix.length配置