如何正确定位前后端bug?

在平时的开发过程中,正确定位前后端bug是提高开发效率和项目质量的关键。以下是一些实用的方法。

一、前后端bug 特征

前端主要负责显示数据,后端主要负责处理数据、存储数据,前后端主要通过接口进行数据交换。

1.前端bug特征

  • 界面显示类问题:如文字大小不一,控件颜色不搭,控件不整齐,静态界面错误;
  • 页面布局类问题:文字排版没有统一,行间距大小、重叠、显示不全;
  • 页面交互类问题:没有点击,拖拽,基本都是JS的问题;
  • 兼容性问题:不同环境下的界面显示类问题和页面布局类问题;

2.后端bug特征

  • 业务逻辑类问题:如正确的用户名密码却登录失败等;
  • 数据类问题:数据新增成功但是没有显示;
  • 性能类问题,安全类问题;

二、判断前后端bug方法

1.抓包+报文分析

在复现bug时,F12或者Fiddler抓包,分析报文;

如果前端没有发出请求,则是前端bug;

如果前端发出了请求,但是参数不对,则是前端bug;

如果前端发出了请求,参数正确,后端没有相应,没有数据,则是后端bug;

如果前端发出了请求,参数正确,后端返回的数据不正确,则是后端bug;

如果前端发出了请求,参数正确,后端返回的数据也正确,但是界面显示不对,则是前端bug;

2.查看错误提示或日志

前端错误提示:如果浏览器控制台(Console)有报错信息,如JavaScript错误、资源加载失败等,通常是前端的bug。

后端日志:查看后端服务的日志文件,如Linux服务器中的日志文件。如果日志中有error、warning、exception等报错信息,通常是后端的bug。

3.利用状态码判断

4xx状态码:表示客户端错误,通常是前端或客户端的问题。例如,404表示未找到资源,可能是前端请求的URL错误。

5xx状态码:表示服务器错误,通常是后端或服务器的问题。例如,500表示服务器内部错误。

常见状态码:

(1)以2开头

  • 200 -- 请求成功,服务器也返回了响应信息

(2)以3开头:请求重定向了,请求的位置转移了

  • 301 -- 永久性定向,请求的资源被分配了新的URL地址,而且以后请求的时候都是用新的URL地址
  • 302 -- 临时性定向,请求的资源被分配了新的URL地址,这次访问是这个新的URL地址,下次访问可能就是另外的URL地址
  • 303 --临时性定向,请求的资源被分配了新的URL地址,请求的时候使用GET方法定向获取资源(与302的区别就是303要求客户端使用GET请求方式)

(3)以4开头

  • 401 -- 表示访问的页面没有授权
  • 403 -- 表示没有权限访问这个页面
  • 404 -- 表示没有这个页面,服务器上无法找到请求的资源(也可以是服务器拒绝请求但是不想给拒绝原因),例如:前端未传标头Authorization,则后端状态码显示401表示该访问的页面未做授权

(4)以5开头

  • 500 -- 表示服务器内部异常
  • 503 -- 表示服务器正处于超负载或者正在进行停机维护,无法处理请求
  • 504 -- 表示服务器请求超时,没有返回结果

4.前端特定调试方法

(1)使用Vue Devtools等调试工具:对于使用Vue等前端框架的项目,可以利用Vue Devtools等浏览器扩展工具来查看和调试组件状态、属性和事件。

(2)控制台日志:在代码中添加console.log、console.error等日志语句,跟踪程序执行流程和变量状态变化。

(3)代码调试:通过浏览器的开发者工具设置断点,逐步执行代码,查看变量的值和调用栈,定位问题所在。

5.后端特定调试方法

(1)查看数据库:检查数据库中的数据是否正确存储和更新。如果数据不正确,可能是后端处理逻辑的问题。

(2)查看缓存:如果项目使用了缓存机制,检查缓存是否正确更新和同步。缓存问题也可能导致后端bug。

相关推荐
牧羊狼的狼1 小时前
React 中的 HOC 和 Hooks
前端·javascript·react.js·hooks·高阶组件·hoc
知识分享小能手3 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
魔云连洲3 小时前
深入解析:Vue与React的异步批处理更新机制
前端·vue.js·react.js
mCell3 小时前
JavaScript 的多线程能力:Worker
前端·javascript·浏览器
超级无敌攻城狮5 小时前
3 分钟学会!波浪文字动画超详细教程,从 0 到 1 实现「思考中 / 加载中」高级效果
前端
excel5 小时前
用 TensorFlow.js Node 实现猫图像识别(教学版逐步分解)
前端
前端工作日常6 小时前
我学习到的Vue2.6的prop修饰符
vue.js
gnip6 小时前
JavaScript事件流
前端·javascript
小菜全6 小时前
基于若依框架Vue+TS导出PDF文件的方法
javascript·vue.js·前端框架·json
赵得C6 小时前
【前端技巧】Element Table 列标题如何优雅添加 Tooltip 提示?
前端·elementui·vue·table组件