测试基础 接口不响应可能是什么问题?

狂天 · 2024年12月13日 · 最后由 xiaofei 回复于 2024年12月16日 · 3300 次阅读

我们最近经常出现接口不响应的问题,就是点一个按钮后没有消息返回一直转圈。
出现这种情况查日志也查不出结果,不知道为什么不响应,而且服务也运行正常,开发和运维一直定位不了问题。
这种不响应的接口集中在提交数据接口中,像查询则不会出现不响应的问题。
大家对这个问题有什么想法吗?

共收到 6 条回复 时间 点赞

前端点击某个按钮提交请求,F12 看接口一直没有响应,这个通过查日志是可以找到问题的,但是你说开发查日志查不出结果就尴尬了:
1、你们是微服务吗?如果是微服务,这个流程可能涉及多个服务调用,有没有可能是日志排查方向错了;
2、接口没有响应多半是接口代码报错,比如空指针,项目日志打印级别调整一下,再不行 log.info 隔几行打印一次;
3、接口没有响应还有种可能就是,代码不报错,但是这个操作涉及大量的数据导致一直在处理,或者数据库表出现死锁;
4、项目方面没有问题,那就是服务器资源问题了;
这种问题可以针对出现未响应按钮接口,用 jmeter 压测,这个压测不要一上来就大批量,可以呈阶梯式增加,一定会在某个阈值出现这个问题的

你先抓包看下请求发出去没,如果请求都没到服务器,你怎么定位都没用

多打几个日志就看出来了吧。

不过像这种查询没出过问题,提交数据有问题来看,可以考虑以下几个方面:

  1. 存数据库的逻辑是不是有硬伤,未处理的异常、死锁、死循环啥的
  2. 量,是不是写入量太大了,导致服务器或者数据库资源瓶颈
  3. 其实和 2 也差不多,一个从客户端考虑,一个从服务端考虑。不响应时看下服务端负载
  4. 浏览器(或者前端软件)本身兼容性或者其他问题

仅供参考。。。

从描述看,有一种情况非常符合,就是代理,如果代理对请求放行,但是对服务端响应劫持了不放行,那么对于服务端来说已经正常处理并返回了,你从服务端是排查不到问题的,而客户端又收不到响应

是自己发现的接口没响应,还是用户反馈的没响应。
有一种可能是前端直接报错了,看下控制台有没有报错日志,可能某些情况下前端报错了然后页面就会一直是 loading 的状态;
还有一种可能就是这不是一个单一的接口,存在很多的依赖,依赖的接口报错了导致流程走不到最终这一步。

交网费

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册