JMeter websocket 错误:WebSocket I/O 错误:连接超时:连接

问题描述 投票:0回答:1

我正在使用 JMeter 创建 SignalR 负载测试

我遵循了教程这里

注意:我第一次调用使用 https,第二次调用使用 wss

当我运行 100 个线程时,一切都很好,但当我增加到 500 个或更多线程时,80% 的测试开始失败,并显示以下消息:

对于 http /chat 请求:

Thread Name: SignalR 1-788
Sample Start:2024-08-15 17:05:10 EEST
Load time:21042
Connect Time:21042
Latency:0
Size in bytes:2908
Sent bytes:0
Headers size in bytes:0
Body size in bytes:2908
Sample Count:1
Error Count:1
Data type ("text"|"bin"|""):text
Response code:Non HTTP response code: org.apache.http.conn.HttpHostConnectException
Response message:Non HTTP response message: Connect to xxx.azurewebsites.net:443 [xxx.azurewebsites.net/xxx.xxx.0.xxx] failed: Connection timed out: connect


HTTPSampleResult fields:
ContentType: 
DataEncoding: null

对于 websocket 打开连接:

Thread Name:SignalR 1-754
Sample Start:2024-08-15 16:38:30 EEST
Load time:21045
Connect Time:0
Latency:0
Size in bytes:0
Sent bytes:0
Headers size in bytes:0
Body size in bytes:0
Sample Count:1
Error Count:1
Data type ("text"|"bin"|""):
Response code:Websocket I/O error
Response message:WebSocket I/O error: Connection timed out: connect


SampleResult fields:
ContentType: 
DataEncoding: null

我注意到的一件非常重要的事情是所有失败的请求的加载时间> 20000。

我将http请求超时设置为300000毫秒

我还将 websocket 打开连接超时(连接和读取)设置为 300000

没有帮助。

我尝试了 2 种不同的 WiFi 网络速度(4-6 mbps)和(12-15 mbps)

然后我尝试从手机作为热点到我的电脑使用 4g(35-42 mbps)

我关闭了防火墙和防病毒软件

我尝试增加启动时间

都给出相同的结果......80%的请求因上述响应而失败。

发生什么事了?

websocket jmeter signalr
1个回答
0
投票

嗯,说明被测系统超载,无法正常处理500个并发用户。

  1. 检查测试下的系统配置,可能是连接池已耗尽
  2. 检查被测系统是否有足够的资源,如CPU、RAM、网络套接字、磁盘IO等。您可以使用JMeter PerfMon Plugin来实现
  3. 使用APM分析器工具检查幕后发生的情况以及是否存在有问题的函数或低效的算法
© www.soinside.com 2019 - 2024. All rights reserved.