我正在使用 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%的请求因上述响应而失败。
发生什么事了?
嗯,说明被测系统超载,无法正常处理500个并发用户。