tcp - JMeter TCP Sampler 错误地报告 500

标签 tcp smtp jmeter

我正在使用 JMeter 对我们的 SMTP 服务器进行负载测试,使用 TCP 采样器(BinaryTCPClientImpl 类)来触发 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 不知何故未能发现响应的结尾?

任何有关如何解决或调试此问题的想法都将不胜感激。

最佳答案

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

关于tcp - JMeter TCP Sampler 错误地报告 500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10683853/

相关文章:

amazon-web-services - 通过 msmtp 发送 Crontab 电子邮件 -> Amazon SES

jmeter - 在 JMETER 非 GUI 模式下尝试使用 MergeResults PLUGIN 合并来自不同 JTL 文件的结果时出错

c - 互斥和 C 套接字

sockets - Dart 将 TCP ServerSocket 客户端传递给 Isolate

java - Netscaler : sudden ACK, RST数据包

php - 在 CodeIgniter 中保存电子邮件配置并在需要时更改设置

python-3.x - heroku smtplib 需要登录浏览器

regex - 如何使用正则表达式提取器在jmeter中提取json响应数据?

batch-file - 如何解决这个 : Execution of batch script terminates after a specific command but runs fine when commandd is executed manually

Python Scapy 引入一个TCP选项