当前位置: 首页 > news >正文

如何判断BUG是前端BUG还是后端BUG

一般像界面上的错别字、字体大小、控件显示、输入框超出边界、字符被截断、字符重叠等问题,不要犹豫、不要徘徊,肯定是前端问题。

界面报404的八成是前端写错了请求地址,指给前端开发;报500的,一般是后端问题,指给后端开发。

利用抓包工具进行分析

举例:一个查询接口,输入查询条件后,界面上没有数据展示出来。如何去分析这个问题呢?

首先,确保数据库里有符合条件的数据。

然后,使用工具比如Fiddler抓包,总结下来就是三步走的一个策略:

找到对应的请求包 -> 查看请求信息 -> 查看响应结果

一、找到对应的请求包

怎么抓到目的包,也就是问题对应的包?
建议先停止抓包,并清除之前的记录,然后在客户端进行操作,这样Fiddler上抓到的基本上就是当前操作的记录,然后再对抓包数据进行分析。

二、看请求信息

从上图可以看出,请求方式是POST,信息分四部分:请求行、请求头、空一行、请求体。Raw存放的是原始数据,其他的项是分析请求中的某一类型数据。

抓包分析:对照接口文档,看对应的接口有没有触发请求,如果没有触发请求(没有调用接口)或请求有问题,那就是前端的BUG。

三、看响应结果

HTTP响应主要由状态行、响应报头、响应正文(和响应报头之间空一行)组成。

抓包分析:如果前端请求没问题,那么看响应。

先看响应的状态码,如果返回报错,看报错的状态码是什么,然后根据状态码进行原因排查;如果状态码为200,表示响应成功了,需要具体分析后端返回的报文。

根据接口文档,看前端传参是否正确,如果是前端传参不对导致后端返回错误,那就是前端问题;如果传参正确,后端处理不正确,那可能就是后端问题。

如果后端响应和数据与接口文档一致,那就是前端展示的问题。

类似的问题:比如一个登录界面,输入用户名密码后点击【登录】发现无响应是什么问题;一个支付功能,支付成功后在我的订单里却没有显示;打开一个网页,显示空白是什么问题等等,都可以按上述策略进行分析。

利用系统日志进行分析

还有一些问题,可以借助系统日志(Log)来分析。

为了便于查找、分析问题,开发人员会写很多日志来记录系统运行过程中的错误、异常或者系统处理过的事件等等。

这里说一下遇到过的一个问题:A系统对接B系统做数据同步,但是到达同步时间后,数据并没有同步过来。

通过数据库查询到B系统中需要同步的数据已经放到同步队列中了。然后去查询了同步日志,日志记录了每一笔要同步的数据信息,发现有一笔数据一个字段的长度超限了,那么这笔数据肯定是无法同步过来的,但是理论上不应该影响后面数据的同步。

原来是后端的代码错误地加了顺序的判断,导致了这个问题。

到这里,问题不但解决了,定位到了BUG,还帮助开发分析了BUG的原因。

相关文章:

  • HTTP协议和Tomcat服务器
  • 前端基础(四十二):SVG入门
  • 【.Net实用方法总结】 整理并总结System.IO中StringReader类及其方法介绍
  • Dapr 的 gRPC组件(又叫可插拔组件)的提案
  • Centos 8 安装 nginx
  • 【WSN】基于LGNDO算法实现传感器物理路由优化附matlab代码
  • 数据结构初步(六)- 复杂链表的分析与C语言实现
  • C语言-文件操作(最全)(二十一)
  • 时空数据挖掘五(城市计算)
  • mysql进阶:企业数据库安全防护方案
  • 会员营销体系构建需要满足的四个条件
  • C++----unordered_map unordered_set使用及模拟
  • R统计绘图-变量分组相关性网络图(igraph)
  • JUC并发编程系列详解篇五(线程基础理论进阶)
  • 设计模式 人类父母和猫孩子的关系理解观察者模式(发布订阅模式)
  • [case10]使用RSQL实现端到端的动态查询
  • [deviceone开发]-do_Webview的基本示例
  • 【Linux系统编程】快速查找errno错误码信息
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2017-09-12 前端日报
  • Angular 响应式表单 基础例子
  • Apache的基本使用
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Git的一些常用操作
  • HTTP中GET与POST的区别 99%的错误认识
  • JavaScript中的对象个人分享
  • jdbc就是这么简单
  • ubuntu 下nginx安装 并支持https协议
  • 阿里云购买磁盘后挂载
  • 高度不固定时垂直居中
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 怎么将电脑中的声音录制成WAV格式
  • 正则表达式
  • Android开发者必备:推荐一款助力开发的开源APP
  • $GOPATH/go.mod exists but should not goland
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (6)添加vue-cookie
  • (poj1.2.1)1970(筛选法模拟)
  • (二)Eureka服务搭建,服务注册,服务发现
  • (三) diretfbrc详解
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十六)一篇文章学会Java的常用API
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET微信公众号开发-2.0创建自定义菜单
  • .Net下的签名与混淆
  • .net中生成excel后调整宽度
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • @SuppressLint(NewApi)和@TargetApi()的区别