我正在尝试使用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 ......
有什么想法吗?
答案 0 :(得分:1)
发现问题。
在某些情况下,那些服务器没有发送\ r \ n。 服务器修复后,一切都开始工作了。
答案 1 :(得分:0)
我遇到了相同的行为,并检查了提供的响应(在服务器端消息末尾发送\ r \ n \在gui中设置 eol字节值选项),但是对我没用。
我的解决方案:在this question之后,我发现\ meter是Jmeter在TCP采样器中期望的eol字符。当我的服务器用\ 0终止消息时-在Jmeter中接收到该消息。
更多参考文献: Jmeter documentation(TCPClientImpl一章-讨论tcp.eolByte的地方)。
某些选项:如果消息的大小恒定,则可以检查LengthPrefixedBinaryTCPClientImpl(请参阅this discussion)。
答案 2 :(得分:-2)
直到收到EOF,TCP采样器才会返回。 在TCP采样器上设置自己的EOF字节值。 服务器在EOF字节值的末尾发送流。