【发布时间】:2021-09-17 20:23:39
【问题描述】:
我发送了一个带有主机和端口的 HTTP 原始请求默认值,我确信我可以使用我的 windows 10 设备进行连接。(使用 Test-NetConnection 测试并通过 Ubuntu 应用程序发送数据,回显“DEMO Message”| nc我的主机 6021) 但是,当我在 Jmeter 中发送请求时,出现以下错误。
采样结果如下。
Thread Name:Thread Group 1-1
Sample Start:2021-09-17 15:55:08 IST
Load time:9300
Connect Time:0
Latency:0
Size in bytes:921
Sent bytes:0
Headers size in bytes:0
Body size in bytes:921
Sample Count:1
Error Count:1
Data type ("text"|"bin"|""):text
Response code:500
Response message:java.net.SocketTimeoutException: Timeout exceeded while reading from socket
SampleResult fields:
ContentType:
DataEncoding: null
响应如下。
java.net.SocketTimeoutException: Timeout exceeded while reading from socket
java.net.SocketTimeoutException: Timeout exceeded while reading from socket
at kg.apc.io.SocketChannelWithTimeouts.read(SocketChannelWithTimeouts.java:133)
at kg.apc.jmeter.samplers.HTTPRawSampler.readResponse(HTTPRawSampler.java:64)
at kg.apc.jmeter.samplers.HTTPRawSampler.processIO(HTTPRawSampler.java:163)
at kg.apc.jmeter.samplers.AbstractIPSampler.sample(AbstractIPSampler.java:112)
at kg.apc.jmeter.samplers.HTTPRawSampler.sample(HTTPRawSampler.java:42)
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:630)
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558)
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256)
at java.base/java.lang.Thread.run(Thread.java:830)
这个演示主机和端口虽然可以正常工作,但我在实际请求中也使用了完全相同的方法。
当我使用带有以下代码的 JSR223 Sampler 时,也会出现类似的问题。
def client = new Socket('DemoHostname', 9000);
client.setSoTimeout(2000);
client << "Hello ";
client.withStreams { input, output ->
def reader = input.newReader()
def response = reader.readLine()
log.info('Response = ' + response)
}
client.close()
还有 Jmter 的 TCP 采样器。
所以根据建议,我将其作为 Http 请求发送到 Logstash 的 websocket。 好事是添加记录被添加,但 Jmter http 请求运行在无休止的状态。似乎由于 logstash 通过 TCP 通信,它无法提供 http 响应。
【问题讨论】:
-
这不是一个有效的 HTTP 请求。服务器可能正在等待客户端继续发送,但客户端没有。双方互相等待,直到一次超时。请注意,连接本身是成功的,只是从服务器读取超时。
-
谢谢,帮了大忙,