浅谈我理解的,bug如何定位前后端问题

测试,如何定位 前后端bug ?

首先需要清楚知道 数据的传输流程:用户在前端页面操作,如点击某个功能, 页面携带数据进行请求,访问具体功能接口,由后端服务执行该接口相应的业务逻辑,如涉及数据,后端从数据库取相关信息 ,并组装数据返回给前端,前端页面进行渲染和展示对应的页面和数据 。

1 接口分析法 :

抓包 或 浏览器F12 ,选择NETWORK网络,选择XHR ,JS, WS, Manifest ,Other , 过滤一些其他内容,打开后,有问题的地方,点一下,就可以看见 对应抓取的内容。

然后看内容: 请求 和 响应 和 参数 3个大的部分 ,

请求 部分 :主要是看 URL ,请求方式,状态码 , 请求入参格式 content-type ,IP 可以不看(网络打不开时,拼使用)

响应部分 : 看状态码 ,响应内容!

参数:就是需要传递的具体内容 !

这些熟悉后,就开始核对 确认问题 : 如果抓不到这个接口,就是前端没有发出请求,显然是前端问题。

抓取到接口后,如何分析?

抓到包了符合分析 : 第一步 :看 URL ,和 接口文档 对比 , 是否一致,不一致,连请求的地址都错了,返回怎么可能正确呢,是 前端 问题。

第二步 , 看 输入的 和请求的 是否一致 ,不一致,表示前端解析数据错误,属于 前端问题 !

还有一种情况 :若是输入和请求一致,接口响应,核对接口文档,响应内容正确,这种情况 ,就是 前端解析接口回调数据错误,也是前端问题!

以上总结位,URL 错误, 传值错误,解析数据错误 !前端问题,当然前端的问题还有:界面相关,布局相关,兼容性相关

前端的完了,来确定后端的:前端url传值正确,和接口文档对比,响应数据不正确(包含响应为空),属于后端问题,那么继续分析是 后端哪里出了问题?

是接口吐数据错了问题? 还是数据库里面的数据就错误了 ?

这个时候首先排查数据库, 需要去数据库里面查看:若是数据库里的内容错了,则是数据库的问题。;若是数据库里面的内容正确,就是接口处理逻辑错了。

总结 :后端BUG:– 业务逻辑相关– 性能相关– 数据相关– 安全性相关 以上这个 是一个流程的非常简单的例子 !

--

还有日志查询法 !

可以查看后端服务的日志,复现BUG时,查看日志中有没有相关信息。基本可以认为,如果日志没有输出,很可能这个功能并没有与后端交互,也就不存在后端的问题。反之,如果日志有输出,可以进一步查看有无错误日志信息,进一步分析。

如何查询日志 ? 后端日志在哪里? 小技巧,可以直接问开发 ! 后端服务器有哪些 ?:nginx , tomcat ,apache

如何查看日志 一台服务器可以部署多个应用,找开发,或者测试 ,直接告诉你 : cd usr/local/测试服务器名称/logs //查看先进入到服务器的logs目录下 tail -f catalina.out //监视catalina.out 文件的尾部内容(默认10行)

Ctrl+c 退出tail命令

另外:输入【./catalina.sh run】也可以查看tomcat的运行日志,但不是实时查看。

————————————————————————————————————————————

若是没有人告诉你,你自己这样操作:

进入Linux服务器 :

1 、 find / -name nginx,找到nginx坐在位置,看到了后,

2 、 进入nginx文件夹 : cd /etc/nginx

显示里面的具体内容:ls

进入找到conf文件

这个conf文件,是文件,不是目录!用查看命令: tail -n 100 nginx.conf

查看nginx.conf,找到error_log的路径:

找到后进入 : cd /ver/log/nginx

再使用 tail -f 命令查看错误log 日志!

tail -f error.log warn

这个时刻体会到 沟通,的便捷性,当然,别人在忙时,你也可以自立更生!

当然 其他服务器也是一个道理 !就是换一下名字的问题 !

经验分享 程序员 微信小程序 职场和发展