定位bug

news2024/11/28 20:44:29

 

1、bug定位常用工具
  Firefox——firebug、web developer、

    live http headers、http fox

  IE插件——httpwatch

  第三方工具——fiddler

  慢速网模拟工具——firefox throttle   
 

        1.该选择框使用来选择资源的,当网页被加载的时候向服务器端请求出来的文件包括.html .ccs .js这样的文件。

  2.这个地方使用来调试js代码的地方,这个非常重要,看到行号上面有蓝色的标签,这个标签就是断电,当我们需要调试程序的时候打一个断电,然后通过3这个工具栏进行调试,那么调试过程就不详细解释,也就是打一个断电然后刷新页面程序会调到你打断点的地方,然后通过4来查看程序中变量的值什么的。

  3.中的标签,第一个是停止状态的按钮就是表示程序是否停止(在debug时),后面的是程序继续跳过方法,跳过下一个语句,调到上一个语句

2、前端bug:
前台的bug通常是功能、界面和兼容性等有关,涉及到jstl,jsp,js,css,html方面比较多。bug主要有两块,第一就是JS写的有问题,这个你可以按F12 打开控制台,在console中查看报错信息,一般浏览器都会显示报错的jS ,对于出错的js可以在Sources下查看对应报错的资源文件,基本上都会找到错误原因的变量未定义,参数未定义等,JS错误都很好解决的。 

  第二个就是页面中的bug了,现在做web项目基本上没有做静态页面的都是动态了,所以你页面中要么使用了小脚本要么使用了EL表达式来存值。页面报错的话 在控制台是可以看到你错误行号和附近代码的,你自己去找就行了。

  图片不显示,谷歌浏览器右键点击图片,点击【检查】(火狐浏览器右键点击【使用firebug查看元素】)在打开的控制台上找出图片的属性,输入到浏览器的地址内,如果能打开图片,那么不显示图片的问题就是后台的问题;如果浏览器内不能打开图片,那么就是前端的问题。

开发者工具的使用(chrom浏览器)

  (1)打开开发者工具,在浏览器菜单栏选择工具-开发者工具,快捷键是F12

  (2)打开之后切换到Network页签,操作就可以看到请求响应

  (3)再选择响应的链接,切换到Preview页签,可以看到响应的结果数据;切换到Headers页签可以看到请求的地址,请求的方式,结果等信息

  (4)Response结果中可以看到返回的数据字段、值

 可以根据响应的值判断一些bug所在

  (1)响应中没有数据,则是后端数据没有返回,前端展示为空,则为后端问题。例如:列表中新增一个数据,没有显示,通过请求中可以看到数据total为0,则是后端数据没有返回。

  (2)响应中有数据,但是前端显示错误了,可以根据字段值判断是否前端显示中取错了字段显示,可以判断是前端问题。例如:B端显示内容错误了,把登录用户名显示了登录帐号,则可以在响应中看数据是否返回正确,返回正确而显示错误,则有可能是前端绑定字段错误。

  (3)响应中有数据,但是跟自己操作的结果不一致,可以根据数据库查询,如果数据库中也没有记录,可能是代码有问题,没有记录你的操作。例如:注册了一个帐号,但是登录时提示帐号或密码错误,这就可以在数据库表中查看是否有注册的数据。

3、后端bug:
  根据后台日志文件查找错误

  后台涉及到servlet,jms,ejb,还有很多框架,struts,hibernate,spring,ibatis等。bug 比较难改,但是好找。主要就是看控制台报错,然后定位错误行号。如果配置文件没有问题,那么一般的报错就是空指针,或者是数组下标越界。看附近变量,看方法的参数基本上都可以定位错误了。

  重启的一般情况:

  (1)热部署 (新增部分功能,或者修改部分bug) 

      (2)发布新版本 (整个系统)

      (3)内存溢出,此时重启服务器即可

  由于项目中有线程程序,./shutdown脚本关闭tomcat程序,不能把启动的线程全部关闭,造成服务器启动线程未关闭的错误,所以Linux系统中重启Tomcat的一般步骤:(一般是先关闭进程,然后进行重启 ,如果 /要删除某个文件:rm 文件名,或者不为空的文件夹:rm -rf 文件夹名)

   cd usr/local/        //测试服务器名称/bin

  ps -exf            //看测试服务器下运行的项目的主进程(最前面的数字为PID进程号)

  kill -9 PID         //强制关闭某一项目的主进程

  ./startup.sh         // ./**.sh 即执行重启shell脚本文件 ,此时在测试服务器的bin下面,直接执行即可,其余的加上 chmod a+x shell脚本文件,也可用./执行

     小知识:

  ps aux和ps -ef命令区别

  ps aux 是用BSD的格式来显示 java这个进程

  显示的项目:          

       USER,PID,%CPU,%MEM,VSZ,RSS,TTY,

       STAT,START,TIME,COMMAND

  ps -ef 是用标准的格式显示java这个进程

  显示的项目有:

      UID,PID,PPID,C,STIME,TTY,TIME,CMD)

  如何查看日志

  一台服务器可以部署多个应用

     cd usr/local/测试服务器名称/logs   //查看先进入到服务器的logs目录下

  tail -f catalina.out          //监视catalina.out 文件的尾部内容(默认10行)

  日志中常见的问题

    获取日志文件中常遇到的问题:

  (1)编码问题:tomcat是新的,需要改编码修改tomcat的server.xml文件<Connector port="8080"URIEncoding="UTF-8"/>

  特别是windows下的项目重新部署到linux系统下,

  (2)空指针:程序问题,一般没有考虑到为空情况,或者主外键约束的数据为空,或者删除关联数据,导致为空

  (3)长度过长,超过最大长度,测试环境修改数据库字段长度后生产环境未修改,导致报错!!

  (4)非法数据

  (5)内存溢出:重启  

一般的问题原因总结

     程序:为空判断,增删改查,不同公众号调用的接口也不一样

  数据初始化:数据库表结构和数据初始化,权限配置,  

  故障无法重现时:

  (1)看日志,根据日志定位原因,则在测试环境中按照日志提示构造条件相同的测试案例测试,尝试在测试环境中将问题重现。问开发

  (2)测试环境和配置与实际的工程环境和配置有哪些差异等等。同时主动与开发负责人、工程实施人员以及有经验的项目经理讨论,分析可能导致的原因。

  配置环境不一致导致

  测试环境ok,生产环境新增时保存失败,查看后台日志报长度溢出,数据库内容字段要求和生产环境不一致

辅助工具:linux和SQL

  linux查看日志

  SQL用来筛选数据或直接进行数据修改状态,多用于集成测试过程中前后流程相连接

  jsp分不清前后台的,因为这里涉及到一个运行时刻的问题,它们的运行时刻是不同。用户发出请求后,服务器解析用户请求,转至对应的jsp,这个时候可以说是整个jsp都是后台程序。而Jsp做出响应后,把响应的内容返回给浏览器,这个时候浏览器就只看见html,css,javascript,这个时候所有的程序又都是前台程序。

4、谷歌浏览器开发者功能
       Element标签:该标签使用来查看页面的HTML标签元素的,能够也就是查看源码,我们可以看到布局,可以看到用到的样式,还有用到的链接等等。

  console标签:这个就是一个web控制台,可以查看网页运行后提示的消息,错误或者警告以及输出内容等

  sources标签:这个是显示资源文件的,可以查看运行的脚本,调试一般都是在Sources调试的

        Network标签:这个就是抓包常用的工具,可以看到网页加载的脚本和资源的时间,还可以看到某些不能加载成功的资源

那么这个页面就是用于抓包的页面,我们需要分析页面的请求,比如模拟登陆什么的都需要去分析程序是怎么在后台执行的,接下来就,我们可以看到Headers(请求消息头) Preview(预览) Response(响应) Timing(请求时间)Cookie这些东西。

        TimeLiness标签:这个就是请求时间。

  最上面还有一个工具栏,有一个红色的圆点和静止符号的按钮,那么这两个按钮,当为红色按钮的时候表示当前的请求不被清空(但是这里的请求是不跳转页面的请求,当跳转到新的页面,那么也会请求也会被清空),后面这个按钮就是清空请求的。

  下面还有一行工具栏,这个工具栏主要是用来选择和过滤请求消息的。

  再下面可以看到时间线,这个就是记录一个请求开始到结束的时间。

  注意:当你需要请求到另一个页面的时候都不清空你的请求的时候需要勾选上Preserve log,同时让红色按钮显示红色。

       ( 1)该选择框使用来选择资源的,当网页被加载的时候向服务器端请求出来的文件包括.html .ccs .js这样的文件。

  (2)这个地方使用来调试js代码的地方,这个非常重要,看到行号上面有蓝色的标签,这个标签就是断电,当我们需要调试程序的时候打一个断电,然后通过3这个工具栏进行调试,那么调试过程就不详细解释,也就是打一个断电然后刷新页面程序会调到你打断点的地方,然后通过4来查看程序中变量的值什么的。

  (3)中的标签,第一个是停止状态的按钮就是表示程序是否停止(在debug时),后面的是程序继续跳过方法,跳过下一个语句,调到上一个语句。


 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二维码识别率优化实践

本文字数&#xff1a;5939字预计阅读时间&#xff1a;15 分钟概述长按图片识别二维码在移动端是很常见的操作&#xff0c;长按后需要对图片进行识别&#xff0c;并且将二维码中所包含的数据解码出来。在我们的业务场景中&#xff0c;是通过点击图片进入大图预览页面。长按大图预…

项目管理工具dhtmlxGantt甘特图入门教程(六):dhtmlxGantt的扩展完整列表

dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表&#xff0c;可满足项目管理控件应用程序的所有需求&#xff0c;是最完善的甘特图图表库。 这篇文章给大家讲解dhtmlxGantt的扩展完整列表。 DhtmlxGantt正版试用下载&#xff08;qun&#xff1a;764148812&…

【NI Multisim 14.0原理图环境设置——电路总体设计流程】

目录 序言 &#x1f34a;知识点 一、电路板总体设计流程 &#x1f349; 1.创建电路文件 &#x1f349;2.规划电路界面 &#x1f349;3.放置元器件 &#x1f349;4.连接线路和放置节点 &#x1f349;5.连接仪器仪表 &#x1f349;6. 运行仿真并检查错误 &#x1f349;7…

Dropzone4 for MAC 文件拖拽增强工具

前言 ​​Dropzone for mac是一款文件拖拽操作增强工具&#xff0c;可以让我们把大部分工作都通过拖拽来完成&#xff0c;只需将文件拖拽到菜单栏上的窗口即可。比如保存文本、发送邮件、FTP上传、打开应用等等。提高了用户的工作效率。 下载 Dropzone4 特征 -打开应用程序…

连接格式优化,支持自定义

12月&#xff0c; eKuiper 团队继续专注于 1.8.0 版本新功能的开发。我们重构了外部连接&#xff08;source/sink) 的格式机制&#xff0c;更加清晰地分离了连接、格式和 Schema&#xff0c;同时支持了格式的自定义&#xff1b;受益于新的格式机制&#xff0c;我们大幅完善了文…

echarts中formatter修改鼠标悬浮事件信息操作、echarts地图块、散点区分触发点击事件 只触发散点问题详解

这里写目录标题1、实例2、案例详解1、实例 这次我拿echarts中 地图组合散点图的实例 &#xff01;&#xff01;&#xff01;实现效果&#xff1a;滑到散点显示不同于地图块的信息 及 formatter 提示窗自定义&#xff01;&#xff01;&#xff01; 这个显示项目名称为"文昌…

千锋教育+计算机四级网络-计算机网络学习-01

目录 课程链接 最早的广域网 计算机网络发展阶段 计算机网络的定义与要点 英文单词网络术语与解释 计算机网络分类 广域网技术 城域网 局域网 个人局域网 五种基本的网络拓扑结构​ 误码率 电路交换网特点 分组交换 交换方式 TCP/IP协议族 IP协议介绍 TCP协议介绍 …

OpenCV的solvePnP函数和Dlib估计头部姿势

一、姿势估计概述1、概述在许多应用中&#xff0c;我们需要知道头部是如何相对于相机倾斜的。例如&#xff0c;在虚拟现实应用程序中&#xff0c;可以使用头部的姿势来渲染场景的右视图。在驾驶员辅助系统中&#xff0c;在车辆中观察驾驶员面部的摄像头可以使用头部姿势估计来查…

React(coderwhy)- 06(RTK)

认识ReduxToolkit 认识Redux Toolkit ◼ Redux Toolkit 是官方推荐的编写 Redux 逻辑的方法。  在前面我们学习Redux的时候应该已经发现&#xff0c;redux的编写逻辑过于的繁琐和麻烦。  并且代码通常分拆在多个文件中&#xff08;虽然也可以放到一个文件管理&#xff0c;…

[RoarCTF 2019]Online Proxy(x-forwarded-for盲注)

这道题点开题目 然后题目显示不出网&#xff0c;一开始误认为是ssrf了&#xff0c;但是没有更多的信息了。 源码有一个ip会不会是修改X-Forwarded-For就可以了呢&#xff0c;抓包试一下&#xff0c; 发现有两个ip&#xff0c;一个当前一个是last上一个的意思把&#xff0c;…

数字图像处理实验——图像增强

一、实验目的与要求1.掌握图像空域点处理增强方法&#xff0c;包括图像求反&#xff0c;线性灰度变换&#xff0c;以及直方图均衡化方法&#xff1b;2.熟练掌握空域滤波增强方法&#xff0c;包括平滑滤波器及锐化滤波器。二、实验内容及步骤1.图像的求反、线性灰度变换、直方图…

【回答问题】ChatGPT上线了!比较流行的监督学习模型

监督学习模型是指在训练过程中&#xff0c;使用带有正确答案的标记数据来进行学习。常见的监督学习模型包括逻辑回归、决策树、支持向量机、朴素贝叶斯分类器、神经网络等。最近流行的监督学习模型还包括深度学习模型&#xff0c;如卷积神经网络和循环神经网络。 下面给出一些…

超级浏览器能帮来赞达(Lazada)老板什么忙?

近几年东南亚市场因人口红利及互联网的高度普及倍受关注&#xff0c;东南亚市场成了跨境市场的香饽饽&#xff0c;像来赞达&#xff08;Lazada&#xff09;、虾皮&#xff08;shopee&#xff09;等平台都是最近东南亚地区比较受欢迎的在线购物网站。根据第三方发布的调查报告显…

QGroundControl中使用QT语言家功能

QT语言家支持多种语言功能&#xff0c;在QGC中也很好的使用了该功能&#xff0c;下面对该功能是一些理解进行整理。首先在QGC使用语言家功能中分为qml文件和.c文件&#xff0c;两种略有不同。在.c文件中使用tr()将需要翻译的内容进行包裹在qml文件中使用qsTr()进行包裹下面以新…

【手把手一起学习】(一) Altium Designer 20 软件安装

Altium Designer 20 软件安装 1、解压安装压缩包 2、打开Setup文件夹 3、选中AltiumDesigner20Setup&#xff0c;选择“以管理员身份运行” 4、直接点击Next 5、选择“Chinese”&#xff0c;点击Next 6、直接点击Next 7、选择安装路径 8、直接点击Next 9、继续Next 10、软件安…

软件设计师通关攻略

软件设计师考什么&#xff1f;一、基础知识1.计算机科学基础知识2.计算机系统知识3.系统开发和运行知识4.面向对象基础知识5.信息安全知识6.标准化、信息化和知识产权基础知识7.计算机专业英语二、应用技术1.外部设计2.内部设计3.数据库应用分析与设计4.程序设计5.系统实施6.软…

【内网基于docker部署flink1.13.6 CDC、zeppelin0.10.0、flink-sql-cookbook-on-zeppelin】

内网基于docker部署flink1.13.6 CDC、zeppelin0.10.1、flink-sql-cookbook-on-zeppelin1、基础环境2、部署步骤2.1 docker安装2.2 拷贝docker镜像至内网2.2.1 外网机器下载所有需要镜像2.2.2 外网机器镜像检查2.2.3 外网机器镜像打包2.2.4 拷贝至内网2.2.5 内网加载镜像2.3 下载…

(剖面图全网唯一教程)如何利用EDEM制作剖面图 (自己琢磨出)

EDEM制作剖面图是一件非常重要的工作,本篇文章的方法是自己琢磨出来的,不一定完全精准,但是有效果,剖面图是可以制作出来的。方法在文末。

如何在图片上添加贴图?试试这几种方法

你平时在拍照的时候&#xff0c;有没有遇到过这样的情况&#xff1a;当你拍照后&#xff0c;发现背景不是很符合你的心意出现了一些你不想分享的物品&#xff0c;这个时候你会怎么办呢&#xff1f;一般情况下&#xff0c;有的小伙伴会选择使用马赛克来遮住这些物品&#xff0c;…

js如何引用同级元素

具体效果示例效果,可点击文末左下角阅读原文https://coder.itclan.cn/fontend/js/17-yinyong-tongji-elem/具体描述在网页中,同级(兄弟)元素,指的是拥有相同的直接父级元素的元素,并且往往指的是同类的元素,同类元素在实际开发中遇到的比较多比如:列表li,并列的按钮等,当需要做…