JMeter TCP采样器错误地报告500

时间:2012-05-21 10:50:03

标签: tcp smtp jmeter

我正在使用JMeter使用TCP Sampler(BinaryTCPClientImpl类)加载测试我们的SMTP服务器来激活HELO,等待30秒然后退出。

SMTP服务器接受HELO并相应地做出响应,JMeter记录正确的响应,但是它似乎找不到响应,而是命中响应超时并显示请求失败500。

在JMeter日志中,它说:

ERROR - jmeter.protocol.tcp.sampler.TCPSampler:      org.apache.jmeter.protocol.tcp.sampler.ReadException:
at org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl.read(BinaryTCPClientImpl.java:137)
at org.apache.jmeter.protocol.tcp.sampler.TCPSampler.sample(TCPSampler.java:350)
at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:416)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:271)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl.read(BinaryTCPClientImpl.java:123)

尽管它设法记录了预期的响应!

我猜JMeter在某种程度上未能发现响应的结束?

如何解决或调试这一点的任何想法都将非常感激。

1 个答案:

答案 0 :(得分:6)

如果您没有定义EOM byte,则会显示until the end of the stream。由于流不会结束,它会超时。您必须为正在使用的协议正确设置EOM字节。