使用浏览器这么多年,你真的了解DevTools吗?

news2024/10/8 21:56:32

Devtools是Web测试时每天都要用的工具,它提供了很多调试功能,可以帮助我们更好的定位问题。而我们平时使用的功能只是它全部功能的子集,很多功能并没用到过。

作为高频使用的工具,还是有必要好好掌握的。测试时在日常工作中提BUG时,如果能提供有用的信息给到开发工程师,可以降低和开发工程师之间的沟通成本,巧用开发者工具也能间接体现自身具备一定的技术专业性,所以今天就分享Chrome Devtools 的常用功能

一 :认识 Devtools

1、Devtools的用处

大体来说,Devtools对于不同人员来说,有如下作用:

  •     前端开发:开发预览、远程调试、性能调优、Bug跟踪、断点调试等;
  •     后端开发:网络抓包、开发调试Response;
  •     测试:服务端API数据是否正确、审查页面元素样式及布局、页面加载性能分析、自动化测试;
  •     其他:安装扩展插件,如AdBlock、Gliffy、Axure等;

2、Devtools功能拆解

首先打开Devtools:

  •     在 Chrome 菜单中选择更多工具 → 开发者工具;
  •     在页面元素上右键点击,选择检查;
  •     Windows: ctrl + shift + i
  •     Mac: cmd + option + i;
     

我们在平时工作中,主要用到以下8个功能:

  •     Elements :页面dom元素;
  •     Console : 控制台;
  •     Sources : 页面静态资源;
  •     Network : 网络;
  •     Performance :设备加载性能分析;
  •     Application :应用信息,PWA/Storage/Cache/Frames;
  •     Security :安全分析;
  •     Audits :审计,自动化测试工具;


不同浏览器的“开发者工具”在界面上会有差异,但功能基本一致。掌握某种浏览器的用法后,便可以操作其他浏览器。

二 Devtools 8个常用面板

1、Elements(元素)

使用Elements元素面板可以自由操作 DOM 和 CSS 来迭代布局和设计页面。查看网页所有元素的代码和属性。可以在Elements标签直接手动修改任一元素的属性和样式,修改后能立即在浏览器里面得到反馈。

  •     检查和调整页面;
  •     编辑样式;
  •     编辑 DOM;

2、Console(控制台)

在开发期间,可以使用Console控制台面板记录诊断信息,查看JavaScript对象、查看调试日志信息或异常信息。通常控制台有JS报错,直接找到前端开发,再由前端开发根据具体问题进行调试,并解决问题。

  • 使用控制台面板;

  • 命令行交互;

3、Sources(源代码)

Sources也称之为资源,当前打开的网页页面所涉及到的所有源代码都会出现在该栏目,包括:样式、css、图片、js文件等。在源代码面板中设置断点来试 JavaScript ,或者通过 Workspaces (工作区)连接本地文件来使用开发者工具的实时编辑器

  •     断点调试;
  •     调试混淆的代码;
  •     使用开发者工具的 Workspaces (工作区)进行持久化保存;
     

 

4、Network

使用Network网络面板了解请求和下载的资源文件并优化网页加载性能。查看网络信息,包括:请求地址、Status(响应状态码)、Type(响应数据类型)、Size(响应数据大小)、Time(响应时间)以及Waterfall(重要相关区域的请求耗时),也可以筛选出不同数据类型的URL。

  •     网络面板基础;
  •     了解资源时间轴;
  •     网络带宽限制;

 

主要记录前端往服务器发的所有的http请求信息,每个请求发送了什么数据,服务器是否正常响应请求;如果响应请求,在Network标签下看到响应状态码、响应数据等。

5、 Performance(性能分析)

Performance记录和查看网站生命周期内发生的各种事件,提高页面的运行时性能。
 

 

6、Memory(内存)

Memory内存面板主要用于:

  • 跟踪内存泄漏;

  • JavaScript CPU 分析器;

  • 内存堆区分析器;

7、Application (应用信息)

Application用于检查加载的所有资源:

  • IndexedDB 与 Web SQL;

  • 本地和会话存储, cookie;

  • 应用程序缓存,图像,字体和样式表;

8、Security(安全分析)

Security主要用于:

  • 证书问题;

  • 安全相关问题;

三 、Devtools高频用途

接下来我们再来学一些常用的小技巧吧,都是一看就会的那种,相信大家平时工作中有所接触。

1、调整Devtools位置

点击Dock Side,可以调整开发者工具的位置,4个图标分别对应:

(1)将开发者工具独立窗口;

(2)停靠于左侧;

(3)停靠于底部;

(4)停靠于右侧;

如果是测试移动端(例如:H5),采用左/右布局会比较方便;如果是测试Web端问题,采用底部布局会比较方便。

2、定位前后端Bug

分析一个BUG是属于前端还是后端,通常看两个标签:Console(控制台)、Network(网络)。

例如:

(1)点击某个按钮,页面没有任何反应:在Console(控制台)处看到有看到js错误。

在Network(网络)处,没有看到前端对后端的功能接口发起调用,即点击按钮时没有看到返回数据,大多数情况下,这个BUG属于前端。

(2)点击某个按钮,页面没有任何反应:在Console(控制台)处看到没有js错误。

 

在Network(网络)处,看到请求返回的状态码是500。此时可以判断这个BUG是后端导致的,可以知道后端开发直接解决问题。常见的状态码:200、404、500,作为测试基本了解。

3、查看/编辑元素

点击Devtools的【箭头】(或者使用快捷键Ctrl+Shift+C)进入选择元素模式,在页面中选择需要查看的元素,就可以在开发者工具Elements标签处直接定位到该元素源代码的具体位置 。

可以修改字体的大小、颜色、背景色,以及图片的高度、宽度等等,刷新页面之后就会恢复原状。

例如:在日常工作中,希望调整一下某个页面的字体颜色,可以自行在Elements做调整,调整后可以在浏览器立即看到效果。当知道需要如何调整之后,再将相关信息给到UI设计师/前端开发,从而避免反复调整。

4、移动端适配

点击的Devtools【手机图标】(或者使用快捷键Ctrl+Shift+M)可以换成模拟移动端浏览的状态。

可选择不同型号手机,以及不同的分辨率样式来查看页面,从而观察页面在不同手机、不同分辨率下的显示效果。

5、下载图片/视频

在日常搜索图片时,如果存在某张图片不支持直接保存,可以通过“开发者工具”进行保存。点击F12,再打开对应的页面,选择【Network】,再选择【Img】,能想要保存的图片,双击或者直接复制URL,打开对应的网址就可以下载图片。

 

 

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

项目前置知识

目录 std::bind 定时器 timerfd 时间轮设计 C11正则库 日志打印宏 通用类型ANY std::bind std::bind是C11提供的一个接口,他的功能:传递一个原始函数对象,对其绑定某些参数,生成一个新的函数对象。 其实简单来说&#xff…

YOLO--前置基础词-学习总结(上)

RFBNet是什么意思 RFBNet 是一种用于目标检测的深度学习网络,它的名字来源于 "Receptive Field Block Network"(感受野块网络)。简单来说,RFBNet 是一种可以让计算机更好地“看”图像中不同大小的物体的方法。 在图像处…

混凝土裂缝检测分割系统源码&数据集分享

混凝土裂缝检测分割系统源码&数据集分享 [yolov8-seg-RCSOSA&yolov8-seg-C2f-REPVGGOREPA等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Glo…

时间序列+Transformer席卷而来,性能秒杀传统,创新性拉满,引爆顶会!

时间序列分析与Transformer模型的结合,已成为深度学习领域的一大趋势。这种结合能够高效捕捉序列中的长期依赖关系,提升时间序列分析和预测的准确性。 时间序列Transformer技术在股票价格预测、气候预测、交通流量预测、设备故障预测、自然语言处理等多…

43页PPT | 大健康行业BI解决方案

药企应用现状与挑战 大健康行业中的药企在数据分析方面仍面临诸多挑战。传统的数据分析模式依赖于纸质记录和线下手动更新,导致数据时效性低、人力成本高,难以快速发挥数据价值。随着数据量的激增,多源数据的归集和整合成为药企数据分析的难点…

Python画笔案例-080 绘制 颜色亮度测试

1、绘制 颜色亮度测试 通过 python 的turtle 库绘制 颜色亮度测试,如下图: 2、实现代码 绘制 颜色亮度测试,以下为实现代码: """颜色亮度测试.py本程序需要coloradd模块支持,请在cmd窗口,即命令提示符下输入pip install coloradd进行安装。本程序演示brig…

JavaSE——面向对象6.1:继承知识点补充(虚方法表等)

目录 一、子类到底能继承父类中的哪些内容? 二、继承内存图 三、继承中:成员变量和成员方法的访问特点 (一)成员变量的访问特点 (二)成员方法的访问特点 1.this与super访问成员方法的特点 2.方法重写 2.1方法重写的本质:子类覆盖了从…

社区交流礼仪 | 提问的艺术

唠唠闲话 2021 年通过 Julia 社区了解到开源,自此开始融入开源社区,学习和体验这种独特的协作模式与交流文化,受益良多。本篇文章为开源新手必读,文章中探讨的交流模式,不仅对参与开源项目的协作有所帮助,…

计组体系软考题2-计算机组成原理与计算机体系结构概论

一、CPU组成(运算器控制器) 1.运算器 题1-存放操作数/运算结果的ACC累加寄存器 1. 2. 题2-加法器(算术逻辑单元的部件) 题3-判断对错 程序计数器PC(运算器),只存放地址题4- 2. 控制器 题1-…

10.8每日作业

当用户点击取消按钮,弹出问题对话框,询问是否要确定退出登录,并提供两个按钮,yes|No,如果用户点击的Yes,则关闭对话框,如果用户点击的No,则继续登录 当用户点击的登录按钮&#xff…

热网无线监测系统 GetMenuItem 接口存在SQL注入漏洞

漏洞描述 热网无线监测系统 /DataSrvs/UCCGSrv.asmx/GetMenuItem 接口处存在SQL注入漏洞,未经身份验证的远程攻击者除了可以利用 SQL 注入漏洞获取数据库中的信息(例如,管理员后台密码、站点的用户个人信息)之外,甚至…

Hydra 新手友好使用教程

1. Hydra 简介 Hydra是一款强大的网络登录暴力破解工具,支持多种协议。本教程将帮助新手快速上手,掌握常用指令和操作。 2. 基本语法 hydra [参数] 目标 3. 核心参数详解 3.1 用户名和密码设置 单个用户名: -l LOGIN 例:-l admin 用户名…

【LeetCode】动态规划—115. 不同的子序列(附完整Python/C++代码)

动态规划—115. 不同的子序列 前言题目描述基本思路1. 问题定义2. 理解问题和递推关系3. 解决方法3.1 动态规划方法3.2 空间优化的动态规划 4. 进一步优化5. 小总结 代码实现PythonPython3代码实现Python 代码解释 CC代码实现C 代码解释1. 变量定义:2. 初始化:3. 动态规划状态转…

高级算法设计与分析 学习笔记11 动态规划

要讲动态规划,当然少不了斐波拉及数列: 可以看到,动态规划效率高的秘诀就在于有记忆,不用做重复的事。 矩阵列乘法: 可以看到,只要找到了一个恰到好处的计算顺序(注意矩阵乘法只有结合律没有交换…

HT8513 内置自适应同步升压和防破音功能的6.5W D类及AB类音频功率放大器

1、特征 防削顶失真功能(防破音,Anti-Clipping Function, ACF) 免滤波器数字调制&#xff0c;直接驱动扬声器 输出功率 3W (VBAT3.3V, RL-4Ω, THDN<1%, 20-20kHz full band) 2.0W (VBAT3.3V, RL8Ω,THDN<1%, 20-20kHz full band) 6.5W (VBAT4.2V, RL2Ω, THDN10%,f1kHz…

SQL第14课挑战题

1. 将两个select语句结合起来&#xff0c;以便从OrderItems表中检索产品ID(prod_id)和quantity。其中&#xff0c;一个select语句过滤数量为100的行&#xff0c;另一个select语句过滤ID以BNBG开头的产品。按产品ID对结果进行排序。 2. 重新第一题&#xff0c;仅使用单个select语…

2021浙江省赛 F I

F - Fair Distribution 题意 给定两个a,b,每次操作可以使b或者a--,为使得b是a的倍数,最小操作次数是多少 思路 朴素版本:枚举a一直到1为止,每一次找到离b最近的a的倍数(>b),然后每次更新一下最小操作次数是多少,时间复杂度O(n*T) 优化版本:每一个a在找到:找到离b最近的…

图像增强论文精读笔记-Low-Light Image Enhancement via a Deep Hybrid Network

1. 论文基本信息 论文标题&#xff1a;Low-Light Image Enhancement via a Deep Hybrid Network 作者&#xff1a;Wenqi Ren等 发表时间和期刊&#xff1a;2019&#xff1b;IEEE TIP 论文链接&#xff1a;https://ieeexplore.ieee.org/document/8692732 2. 研究背景和动机 …

Linux防火墙-案例(二)snatdnat

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们经过上小章节讲了Linux的部分进阶命令&#xff0c;我们接下来一章节来讲讲Linux防火墙。由于目前以云服务器为主&#x…

YOLOv11改进 ,YOLOv11改进主干网络为MobileNetV3,助力涨点

YOLOv11改进介绍 YOLOv11 跟 YOLOv8 结构差不多相似,只是作者在 YOLOv8 基础上进行了改进,我感觉 YOLOv11 训练速度更快,map和精度应该比 YOLOv8 高一些,所以我会把 YOLOv11 改进也写在本专栏里面。YOLOv11 改进,可以看往期 YOLOv8 改进主干网络教程,原理都是一样的,这…