Web测试中的BUG定位与分析

news/2024/9/23 1:43:28/

在Web测试过程中,页面内容或数据显示错误、不显示等问题是常见的挑战。为了高效地定位并解决这些问题,我们可以利用浏览器自带的开发者工具、数据库等工具进行排查和分析定位BUG。

一、发现BUG

  1. 保存现场并复现:遇到问题时,首先截图保存现场,并尝试复现问题至少三次,确保问题的稳定性和可复现性。
  2. 排除低级问题
    • 确认被测程序的版本、配置项、网络环境等是否正确。
    • 验证是否因为对需求的理解错误导致的误解。
  3. 注重性价比:如果短时间内无法定位问题,及时与开发团队沟通,说明当前情况,并请求协助。
  4. 建设bug知识库:建立和维护一个BUG历史知识库,便于温故知新,提升问题排查效率。

二、WEB项目BUG定位策略

  1. 区分浏览器端与服务端问题
    • 使用Fiddler或开发者工具查看HTTP请求和响应内容,判断问题来源。
  2. 浏览器端问题定位
    • 利用开发者工具进一步分析,如控制台(Console)查看JS报错信息。
    • 对于页面元素问题,如图片不显示,可通过检查元素(Inspect)功能定位问题。
  3. 服务端问题定位
    • 观察后台日志,分析接口返回内容,缩小问题范围。
    • 如有必要,使用JPDA等工具进行远程调试。

三、bug定位常用工具介绍

  • 开发者工具:浏览器自带的开发者工具,功能强大,包括Element、Console、Sources、Network等标签页,用于查看HTML结构、JS报错、资源文件、网络请求等。
    • Element标签:该标签使用来查看页面的HTML标签元素的,能够也就是查看源码,我们可以看到布局,可以看到用到的样式,还有用到的链接等等。
    • console标签:这个就是一个web控制台,可以查看网页运行后提示的消息,错误或者警告以及输出内容等
    • sources标签:这个是显示资源文件的,可以查看运行的脚本,调试一般都是在Sources调试的
    • Network标签:这个就是抓包常用的工具,可以看到网页加载的脚本和资源的时间,还可以看到某些不能加载成功的资源。那么这个页面就是用于抓包的页面,我们需要分析页面的请求,比如模拟登陆什么的都需要去分析程序是怎么在后台执行的,接下来就,我们可以看到Headers(请求消息头) Preview(预览) Response(响应) Timing(请求时间)Cookie这些东西。
  • 后台日志:记录服务端运行情况的日志,是定位服务端问题的重要工具。
  • Fiddler:网络抓包工具,可以捕获浏览器发出的所有HTTP请求和响应,帮助分析网络问题。
  • 数据库:直接查询数据库可以验证数据是否正确写入或读取,对于排查与数据相关的问题非常有用。

四、浏览器端问题定位与分析

浏览器端的问题主要涉及功能、界面和兼容性等方面,与JS、CSS、HTML等前端技术紧密相关。

bug类型:

1、JS写的有问题,这个可以按F12 打开控制台,在console中查看报错信息,一般浏览器都会显示报错的jS ,对于出错的js可以在Sources下查看对应报错的资源文件,基本上都可以找到错误原因:变量未定义,参数未定义等。 

2、页面中的bug,现在做web项目基本上没有做静态页面的都是动态的,页面报错的话,在控制台是可以看到错误行号和附近代码的。

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

五、服务端问题定位与分析

接口信息定位:

通过抓包软件或者开发者工具抓取接口信息,然后根据响应的值判断一些bug

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

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

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

其它:

根据后台日志文件查找错误 后台涉及到servlet,jms,ejb,还有很多框架,struts,hibernate,spring,ibatis等。主要就是看控制台报错,然后定位错误行号。如果配置文件没有问题,那么一般的报错就是空指针,或者是数组下标越界。

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


http://www.ppmy.cn/news/1462183.html

相关文章

Linux下的Rsync简介

Linux的rsync服务 rsync 是一个用于文件和目录同步的工具,广泛应用于Linux系统。它的主要功能包括本地和远程文件的同步、数据备份和镜像。rsync 在同步过程中只传输差异部分,从而大大提高了效率。 功能 文件和目录同步:将文件和目录从一个…

苹果MacOS系统使用微软远程桌面连接Windows电脑桌面详细步骤

文章目录 前言1. 测试本地局域网内远程控制1.1 Windows打开远程桌面1.2 局域网远程控制windows 2. 测试Mac公网远程控制windows2.1 在windows电脑上安装cpolar2.2 Mac公网远程windows 3. 配置公网固定TCP地址 前言 日常工作生活中,有时候会涉及到不同设备不同操作系…

鸿蒙HarmonyOS Next应用开发需要学什么语言

鸿蒙HarmonyOS Next应用开发需要学什么语言? 鸿蒙HarmonyOS Next作为华为自主研发的操作系统,其在应用开发方面有着独特的需求和优势。对于想要从事鸿蒙应用开发的开发者来说,掌握合适的编程语言是至关重要的。本文将详细探讨鸿蒙HarmonyOS N…

8.Docker微服务实战

文章目录 1、创建微服务2、通过Dockerfile发布微服务 1、创建微服务 创建空项目并在其中创建一个Module ​ 这里使用start.aliyun.com代替start.spring.io,这样可以使用jdk8。 选择需要的配置或者直接在pom文件中手动添加 <?xml version"1.0" encoding"…

Golang实现递归复制文件夹

代码 package zdpgo_fileimport ("errors""os""path/filepath""strings" )// CopyDir 复制文件夹 // param srcPath 源文件夹 // param desPath 目标文件夹 // return error 错误信息 func CopyDir(srcPath, desPath string) error {…

Dropzone 4 for Mac:一拖即达,文件处理更高效!

在繁忙的工作中&#xff0c;你是否曾因频繁切换应用程序和文件夹而烦恼&#xff1f;Dropzone 4 for Mac&#xff0c;这款强大的文件拖拽操作工具&#xff0c;将彻底改变你的工作方式&#xff01; 只需简单地将文件、文本或图片拖放到Dropzone图标上&#xff0c;即可快速执行各种…

C语言游戏实战(12):植物大战僵尸(坤版)

植物大战僵尸 前言&#xff1a; 本游戏使用C语言和easyx图形库编写&#xff0c;通过这个项目我们可以深度的掌握C语言的各种语言特性和高级开发技巧&#xff0c;以及锻炼我们独立的项目开发能力&#xff0c; 在开始编写代码之前&#xff0c;我们需要先了解一下游戏的基本规则…

jsp连接数据库

1.打开命令框进入数据库 打开eclipse创建需要连接的项目 粘贴驱动程序 查看驱动器 使用sql的包 int代表个 conlm代表列名 <%page import"java.sql.ResultSet"%> <%page import"java.sql.Statement"%> <%page import"java.sql.Connect…