【jmeter知识】03_jmeter接口报Read timed out +ng日志499分析

背景

进行ws的登录压测时,在高并发下很容易出现WebSocket I/O error: Read timed out,需要分析产生的原因。

 

分析过程

1、jmeter查看结果树

 

2、jmeter请求体,发现Response(read) timeout(ms)字段,填写了6000ms,即6s。遍历了下查看结果树中的报错请求,发现果然Load time 时间大于6S的,均报了Response message: WebSocket I/O error: Read timed out。初步定为是此字段导致。

 

 

 

 3、由于业务接口暂时达不到6s返回的标准,这里先不纠结,把Response(read) timeout(ms)字段,改成20000ms,重新跑一遍,再次测试,没有发现WebSocket I/O error: Read timed out的报错。

 

结论

本次的WebSocket I/O error: Read timed out,为jmeter脚本接口返回断言时间设置不合理导致(哈哈,其实是之前设置的我忘了,这里做下记录)。但是WebSocket I/O error: Read timed out有无其他报错原因,暂时不得而知,后面遇到再补充。

 

20210506补充

在上述操作后,重新压测,发现ng偶尔出现499日志。经分析如下:

ng日志中查看499有8条:

 

在jmeter日志(保存下来的用表格查看结果)中超过20S的read timed out刚好也有8条,结合之前的脚本已经被设置响应时间超时为20s,推测这两个的关联。

 

 网上查询一下,发现

 499对应的是 “client has closed connection”。这很有可能是因为服务器端处理的时间过长,客户端“不耐烦”了。

因此推断,在jmeter脚本设置20s超时后,由于服务器在20内没有响应返回,在20s后jmeter主动关闭了连接,导致服务器ng的日志记录499。

 

posted @ 2021-04-30 17:29  chooperman  阅读(5020)  评论(0编辑  收藏  举报