jmeter在loop controller中发送tcp sample,配置tcp server的ip和port

使用长连接时,勾选re-use connection,如果当前发送后需要关闭连接,则勾选close connection。
eol
(end of line):取值范围(-128,127),需要设置为服务端返回消息body的最后一个字节的十进制值,如果返回消息后两位为10(16进制),则填写16;客户端jmeter判断tcp body是否结束的结束符,默认1000,即不在取值范围内,如果填写的eol不等于实际返回值,或不填写,则认为接收的消息没有结束,一直等待到tcp超时,关闭连接。没有返回,发送消息失败。

tcp sample放在loop controller中,且eol使用变量${var}时,由于eol在tcp第一次发送时设置,之后再循环发送只是重新取text to send内容,eol不会重新设置,导致循环发送时接收消息超时,发送失败。
此时需要修改jmeter源码,增加eol为空时,不比较结束符,接收到消息即发送成功。
BinaryTCPClientImpl.class
if (!this.useEolByte) {
break;
}//增加为空或不在取值范围内时,同样结束
if (this.useEolByte && buffer[x - 1] == this.eolByte)
break;
}