5

JMeterを使用して、TCPサンプラー(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がどういうわけか応答の終わりを見つけることができなかったと思いますか?

これを解決またはデバッグする方法についての考えは大歓迎です。

4

1 に答える 1

7

EOMバイトを定義しない場合、ストリームの終わりまで読み取ります。ストリームが終了しないため、タイムアウトになります。使用しているプロトコルのEOMバイトを正しく設定する必要があります。

于 2012-05-21T11:00:13.337 に答える