当测试遇到bug,你是会第一时间提给开发,还是先自己分析一下再提?

如果当你提每次提bug,能顺带把bug原因附带上,我相信开发对你的印象会非常好~

那么今天就说一说,我们如何去分析定位bug。

分析bug绕不开查日志,这篇以查日志这一环节细说一下~

大家都知道要查日志,那对于新手来说,怎么着手查日志呢?

01 在查之前,我们必然会面临如下问题:

  • 查什么?
  • 去哪查?
  • 怎么查?

02 举个具体的例子

场景:注册一个账号后,去实名认证,认证页面显示认证成功了,返回到主页还是未认证;不是前端显示问题;(业务逻辑:账号是一个系统,认证是另一个系统,分别由两个团队负责)

现在要开始定位问题了:

1、查什么?

前提:必须要了解实现逻辑:认证成功后会给账号发送mq,账号消费mq成功,更新账号的认证状态;

首先需确认是账号的问题?还是认证的问题?怎么确认呢?

  • 查认证发mq了吗?
  • 如果发了,账号消费mq了吗?
  • 如果mq已消费,查有报错吗?
  • 没有报错,查有更新认证状态的日志吗?
2、去哪查?

不同的问题在不同的地方查;我们可以

  • 去服务器下查日志log文件;
  • 有日志系统的直接去系统查;(比如kibana,很多公司用)
  • 去MQ后台查;

如果实在不知道去哪查,后端有一个必杀技,那就是查服务器日志;

但你需要清楚,服务端日志在哪?有没有权限?

很多公司对服务器的访问都会设置很多权限,诸如跳板机、堡垒机等等(可以去网上搜下是什么);

如果是跳板机,就去找运维申请账号权限,一般情况下运维会有指引手册,教如何登录到服务器下;

登录到了服务器下,就去问开发,哪个服务的日志在哪个路径下;

3、怎么查

找到了位置,就到了最重要的环节,怎么查;

1)查认证发mq了吗?

两种方法:

方法一:

直接查日志,搜索发送mq的关键词(开发写了打log才能查,要是没写就没办法)

如果在日志能搜到,就可以说明发了

(下图是随便找的截图,kibana搜索举例;如果是在服务器下搜索,就用grep搜索,这就涉及到Linux命令,此处不细说)

方法二:

登录mq后台,查是否发了

由于已消费的mq查不到记录,所以在mq后台查的话,需要自己新建一个队列去绑定发送的交换机,来监听发送方是否发了(这个我下篇讲吧,这里就不细讲了)

贴个图

2)如果认证发了mq,账号消费mq了吗?

这个和上面一样,查消费日志、或者去mq后台查有没有积压;

3)如果mq已消费,查有报错吗?

一般这种异步处理的场景,报错不会体现在接口本身,而只是内部报错;

以账号userid为关键字搜索,或者最后一次请求的requestid为关键字搜索,根据操作时间看对应的服务器日志有没有报错信息;

如果有报错,一般长这样; 具体在哪一行都暴露出来;

(查服务器日志更简单,直接查error文件就行)

4)没有报错,查有更新认证状态的日志吗?

这个就跟上面一样了,只不过查询的关键字不同。

以上就讲完了日志的分析查看过程。

分析问题前,一定要熟悉业务逻辑,不能盲目提bug,如果不去定位,稍微复杂的场景就会提错开发负责人,尤其涉及团队协作的,如果能更精准定位到责任方,就能更快速去解决问题。

当然有个更重要的点,就是能提升自己的能力,这样才能一步步升级打怪!

Logo

科技之力与好奇之心,共建有温度的智能世界

更多推荐