首页 > 解决方案 > 如何在 Jmeter 的 TCP 采样器中设置行尾字节值

问题描述

使用 TCP 采样器时出现 ReadException。

   "Response message: org.apache.jmeter.protocol.tcp.sampler.ReadException: 
    Error reading from server, bytes read: 518"

我正在尝试使用 TCP 采样器测试一些响应,但无法确定必须设置的行尾字节值。

2019-10-28 10:42:01,014 ERROR o.a.j.p.t.s.TCPSampler: 
org.apache.jmeter.protocol.tcp.sampler.ReadException: Error reading from server, bytes read: 518
    at org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl.read(TCPClientImpl.java:131) ~[ApacheJMeter_tcp.jar:4.0 r1823414]
    at org.apache.jmeter.protocol.tcp.sampler.TCPSampler.sample(TCPSampler.java:402) [ApacheJMeter_tcp.jar:4.0 r1823414]
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:490) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:416) [ApacheJMeter_core.jar:4.0 r1823414]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:250) [ApacheJMeter_core.jar:4.0 r1823414]
    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.socketRead(Unknown Source) ~[?:?]
    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.TCPClientImpl.read(TCPClientImpl.java:114) ~[ApacheJMeter_tcp.jar:4.0 r1823414]
    ... 5 more

预计会看到来自服务器的响应数据的 200 响应代码。但是接收到正确的响应数据与“

Response code: 500
Response message: org.apache.jmeter.protocol.tcp.sampler.ReadException: Error reading from server, bytes read: 518

作为响应代码和消息”

尝试使用以下设置

Re-use Connection--Yes
Close Connection--Yes
Set No Delay--No
SO_LINGER-Blank
End of Line: 128

标签: tcpjmeterjmeter-4.0

解决方案


bytes read: 518调查我希望你得到你正在测试的 TCP 服务器的响应。

如果服务器强制关闭连接并且您期望这种行为,您可以“告诉”JMeter 将 TCP 采样器视为成功。

  1. 添加响应断言作为失败的 TCP 采样器的子项
  2. 配置如下:

    • 测试领​​域:Response Code
    • 勾选Ignore Status
    • 模式匹配规则:Equals
    • 要测试的模式:500

    在此处输入图像描述

更多信息:JMeter 3.2 中的响应断言 - 新增和改进


推荐阅读