4

我正在尝试使用 TCP Sampler 运行一个简单的测试

使用默认 TCPClient 类时,响应超时时间过去后,我收到来自服务器的正确响应,然后采样器结果中出现错误 500:

响应代码:500 响应消息:org.apache.jmeter.protocol.tcp.sampler.ReadException:

JMeter 似乎无法识别消息字符的结尾(服务器发送\r\n)。

如何配置 JMeter 以查看 EOM?


我尝试使用 BinaryTCPClientImpl,并在Jmeter.properties中设置tcp.BinaryTCPClient.eomByte = 13,但是 binaryTCPClient 需要 HEX 数据,而我发送人类可读的字符串,它仍然忽略 eomByte ...

有任何想法吗?

4

3 回答 3

1

发现了问题。

在某些情况下,这些服务器没有发送 \r\n。服务器修复后一切都开始工作了。

于 2012-06-28T14:30:05.933 回答
0

我遇到了同样的行为并检查了提供的响应(在服务器端的消息末尾发送 \r\n \ 在 gui 中设置eol 字节值选项),但这对我不起作用。

我的解决方案:这个问题之后,我发现 \0 是 Jmeter 在 TCP 采样器中期望的 eol 字符。当我的服务器使用 \0 终止消息时 - 在 Jmeter 中收到消息。

更多参考资料: Jmeter 文档(TCPClientImpl 章节 - 这是讨论tcp.eolByte的地方)。

一些选项:如果消息的大小是恒定的,可以检查 LengthPrefixedBinaryTCPClientImpl(请参阅此讨论)。

于 2020-04-27T11:18:56.027 回答
-2

在收到 EOF 之前,TCP 采样器不会返回。在 TCP 采样器中设置您自己的 EOF 字节值。服务器在 EOF 字节值的末尾发送一个流。

于 2018-08-17T06:36:58.153 回答