百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

10个强大的Chrome DevTools测试技巧

myzbx 2025-03-20 16:57 7 浏览

  “通过掌握 Chrome DevTools 或其他浏览器的等效工具,测试人员可以显著提升测试过程的质量和效率,最终支持更快的问题解决和更稳定的用户体验。”

  你知道吗?Chrome DevTools 不仅是开发者的工具,也是测试人员的利器。作为一名 QA 专业人士,发现缺陷固然重要,但理解缺陷的根本原因并提出解决方案,才能将测试提升到一个新的水平。

  如果你不使用 Chrome,每种现代浏览器都有类似 Chrome DevTools 的工具,功能也很相似。因此,你可以在自己选择的浏览器中运行这些测试。

  为了最大化利用 Chrome DevTools 的价值,测试人员需要对 HTML、CSS、DOM、JavaScript 以及阅读网络级响应有一定的了解。

  什么是 Chrome DevTools?

  Chrome DevTools 是一个强大的网络工具包,能够让你检查和调试网站及网络应用程序。对于测试人员来说,它提供了一种高效的方式来检查元素、分析控制台日志、监控网络活动以及评估页面性能。

  让我们通过以下 10 个测试,探索使 Chrome DevTools 对测试人员极具价值的功能。

  测试 1:使用元素标签页排查间距问题

  Chrome DevTools 的元素标签页分为两个视图:HTML 和 CSS。右键单击任何元素并选择检查,或使用 Chrome DevTools 左上角的箭头悬停在任何元素上并选择它,这将在右侧面板中显示样式。这允许实时修改 HTML 和 CSS,而无需永久更新代码。

  下图展示了一个页面,其中分隔线和横幅图像之间存在意外的间距。假设在设计中,横幅图像应该紧贴分隔线。

图 1:由分隔线和图像之间的间距导致的横幅图像问题

  悬停在分隔线或横幅图像上以捕获间距区域并选择它。下图展示了检查到的间距区域。

图 2:悬停在顶部区域以捕获间距

  从 CSS 中移除 margin-bottom 样式可以解决间距问题。

图 3:从 CSS 文件中移除 margin-bottom 样式解决了间距问题

  从上述三张截图可以看出,你可以悬停在间距上捕获它,检查它,并通过调整外边距或内边距来排查问题。

  测试 2:使用检查元素功能排查阻碍用户导航的问题

  在下图中,界面提供了用于幻灯片导航的“轮播点”。然而,这些点只有部分可见。这些点应该完全可见,以便用户可以轻松选择它们来切换到下一张幻灯片。

  显示幻灯片的区域有一个边界,会隐藏边界外的任何内容(一个名为 overflow-hidden 的样式)。因此,幻灯片边缘的点被截断了,用户很难正确看到或选择它们。

图 4:幻灯片中半隐藏的轮播点

  要排查此问题,只需悬停在内容上,你将看到轮播点上的绿色阴影溢出。当你选择它时,你将在右侧看到相关的样式。

图 5:悬停在 carousel 元素上以观察 overflow-hidden 的 CSS 值

  取消选中 overflow-hidden 属性,你会看到问题在不改变点的位置的情况下得到解决。

图 6:移除 overflow-hidden 属性以解决问题

  测试 3:使用控制台标签页识别 JavaScript 错误

  控制台标签页是一个重要的工具,用于识别以红色标记的 JavaScript 错误,这使得它们很容易被找到。因为有数百种可能的错误类型,你分析它们的能力只能通过经验积累。在某些情况下,开发人员会在代码中附加脚本,以便更容易识别与脚本相关的故障。

  当网站部署到生产环境时,控制台中不应该有任何错误。然而,服务器或网络问题有时会生成日志。

  下图显示了控制台错误日志中与插入工作区的图表相关的某些损坏文本。然而,这个错误并不是该网站的所有用户都会遇到。在这种情况下,应该及时为特定客户提供热修复,而不是让他们等待一般应用程序级别的解决方案。

图 7:控制台中图表中损坏文本元素的文本 ID

  测试 4:分析控制台中的错误日志

  在下图中,从错误本身来看,很明显日志与某些 cookie 属性中的安全问题有关。如果这种类型的错误未被处理,可能会导致会话管理问题、分析数据不一致、应用程序行为不一致等。因此,如果网站依赖 cookie 或同源策略,这个错误需要被验证并修复。

图 8:与 cookie 属性安全问题相关的控制台日志错误

  测试 5:通过在控制台运行自定义 JavaScript 查找损坏链接

  你可以在控制台中运行自定义 JavaScript 来查找损坏链接、清除页面缓存等。

  以下代码片段会检查损坏的链接,调用函数 checkBrokenLinks() 将查找并显示所有损坏的链接,并将它们标记为红色。在测试无法从外部网络访问的页面时,这非常有帮助。

  // 检查链接是否损坏的函数async function checkBrokenLinks() {
   // 获取页面上所有的  元素
   const links = document.querySelectorAll('a');
   // 遍历每个链接
   for (let link of links) {
   const href = link.getAttribute('href');
   // 跳过空的或不存在的 href 链接
   if (!href || href.startsWith('#') || href.startsWith('mailto:') || href.startsWith('javascript:')) {
   continue;
   }
   try {
   // 获取链接并检查响应状态
   const response = await fetch(href, { method: 'HEAD' });
   // 如果状态码不是 OK(即不是 2xx)
   if (!response.ok) {
   console.log(`发现损坏的链接:${href} (状态:${response.status})`);
   link.style.color = 'red'; // 可选地将损坏的链接标记为红色
   }
   } catch (error) {
   // 如果发生错误(例如,网络错误,或链接无法到达)
   console.log(`发现损坏的链接:${href} (错误:${error.message})`);
   link.style.color = 'red'; // 标记损坏的链接
   }
   }}

  测试 6:使用网络标签页分析特定浏览器操作导致的错误代码

  网络标签页会记录页面上每个操作的所有请求,显示关键的状态码,这些状态码表明操作是否成功或失败。

  下图显示了一个 HTTP 404 错误代码的 favicon.png 文件。这仅仅表明指定的文件缺失。选择文件名可以提供更多详细信息,包括头部和响应,这有助于进一步诊断。

  如果你想充分利用网络标签页中的内容,你应该更多地了解 HTTP 状态码。

图 9:favicon.png 的 HTTP 404 错误代码

  测试 7:捕获传递给操作元素的数据

  我们可以在网络标签页中调查某些隐藏信息。在下图中,你可以看到用户输入的电话号码和电子邮件地址。如果收集这些信息存在问题,你将能够看到信息缺失。

图 10:页面右上角图标链接的电话号码和电子邮件地址

  测试 8:无需实际断开网络连接即可测试离线功能

  你可以直接从网络标签页进入离线模式。只需选择无限制 -> 离线。此功能有助于测试离线功能,而无需物理断开设备的网络连接。

图 11:从无限制下拉选项列表中选择离线

  测试 9:使用应用标签页调查数据流

  在应用标签页中,你可以深入调查与数据相关的活动。你可以执行各种任务,从清除缓存到分析 indexDB,你可以从中一窥与应用程序 UI 级别相关的数据。但要很好地理解此标签页中生成的信息,你首先需要对使用的数据库有一定的了解。

  下图展示了本地应用存储中的身份验证令牌。这些数据可用于某些测试目的,例如自动化图表工作区的功能。

图 12:检索身份验证令牌以执行自动化测试

  测试 10:检索用户 ID 以使用特定用户数据进行测试

  下图展示了在应用标签页中创建的工作区的用户 ID。如果你需要对这个用户执行任何与数据库相关的测试,这将非常有用。

图 13:获取已登录用户的用户 ID

  总结

  元素、控制台、网络和应用标签页特别有利于测试人员处理基于浏览器的应用程序,提供超越简单识别问题的宝贵见解。通过掌握 Chrome DevTools 或其他浏览器的等效工具,测试人员可以显著提升测试过程的质量和效率,最终支持更快的问题解决和更稳定的用户体验。

关注+私信回复:"入群"

这里有一起交流行业热点和offer机会,可加入↓↓↓↓↓↓

AI测试涨薪交流群,内含银行业务、车载、互联网、游戏更多行业测试实战和面试题库 &【软件测试专用AI提示词包】等各种好用的

助你快速进阶测试开发技术,稳住当前职位同时走向高薪之路

相关推荐

Django零基础速成指南:快速打造带用户系统的博客平台

#python##服务器##API##编程##学习#不是所有教程都值得你花时间!这篇实战指南将用5分钟带你解锁Django核心技能,手把手教你从零搭建一个具备用户注册登录、文章管理功能的完整...

iOS 17.0 Bootstrap 1.2.9 半越狱来啦!更新两点

这款Bootstrap半越狱工具终于更新,离上一次更新已相隔很久,现在推出1.2.9版本,主要为内置两点功能进行更新,也是提升半越狱的稳定性。如果你正在使用这款半越狱工具的,建议你更新。注意!...

iOS 16.x Bootstrap 1.2.3 发布,支持运行清理工具

本文主要讲Bootstrap半越狱工具更新相关内容。如果你是iOS16.0至16.6.1和17.0系统的,想体验半越狱的果粉,请继续往下看。--知识点科普--Bootstrap...

SpringBoot整合工作流引擎Acticiti系统,适用于ERP、OA系统

今日推荐:SpringBoot整合工作流引擎Acticiti的源码推荐理由:1、SpringBoot整合工作流引擎Acticiti系统2、实现了三级权限结构3、持久层使用了mybatis框架4、流程包...

SpringCloud自定义Bootstrap配置指南

在SpringCloud中自定义Bootstrap配置需要以下步骤,以确保在应用启动的早期阶段加载自定义配置:1.添加依赖(针对新版本SpringCloud)从SpringCloud2020...

Python使用Dash开发网页应用(三)(python网页开发教程)

PlotlyDash开发Web应用示例一个好的网页设计通常都需要编写css甚至js来定制前端内容,例如非常流行的bootstrap框架。我们既然想使用Dash来搭建web应用,很大的一个原因是不熟悉...

Oxygen XML Editor 27.1 中的新功能

OxygenXMLEditor27.1版是面向内容作者、开发者、合作者和出版商的行业领先工具包的增量版本。在27.1版本中,AIPositronAssistant得到了增强,包括用于...

【LLM-多模态】Mini-Gemini:挖掘多模态视觉语言模型的潜力

一、结论写在前面论文提出了Mini-Gemini,一个精简而强大的多模态VLM框架。Mini-Gemini的本质在于通过战略性框架设计、丰富的数据质量和扩展的功能范围,发掘VLM的潜在能力。其核心是补...

谐云课堂 | 一文详解分布式改造理论与实战

01微服务与分布式什么是分布式?首先,我们对上图提到的部分关键词进行讲解。单体,是指一个进程完成全部的后端处理;水平拆分,是同一个后端多环境部署,他们都处理相同的内容,使用反向代理来均衡负载,这种也叫...

基于Abaqus的手动挡换挡机构可靠性仿真

手动挡,也称手动变速器,英文全称为Manualtransmission,简称MT,即用手拨动换挡操纵总成才能改变变速器内的齿轮啮合位置,改变传动比,从而达到变速的目的。家用轿车主要采用软轴连接的换挡...

【pytorch】目标检测:彻底搞懂YOLOv5详解

YOLOv5是GlennJocher等人研发,它是Ultralytics公司的开源项目。YOLOv5根据参数量分为了n、s、m、l、x五种类型,其参数量依次上升,当然了其效果也是越来越好。从2020...

超实用!50个非常实用的PS快捷键命令大全分享

今天,给大家介绍50个非常实用的快捷键命令大全,大家伙都是设计师,关于软件使用那是越快越好啊。一、常用的热键组合1、图层混合模式快捷键:正常(Shift+Option+N),正片叠底(Shif...

Pohtoshop中深藏不露的小技巧(科目一考试技巧记忆口诀看完必过)

邢帅教育ps教程为大家总结了一些Pohtoshop中深藏不露的小技巧,可以帮助到大家在设计时减少不必要的麻烦,提高工作效率哦~~~1.设置网格线保持像素完美不在1:1分辨率下也能保持像素完美,可以...

Ganglia监控安装总结(监控安装工作总结)

一、ganglia简介:Ganglia是一个跨平台可扩展的,高性能计算系统下的分布式监控系统,如集群和网格。它是基于分层设计,它使用广泛的技术,如XML数据代表,便携数据传输,RRDtool用于数据...

谁说Adobe XD做不出好看的设计?那是你没搞懂这些功能

AdobeXD的美化栏具有将设计视图美化的功能,它能使界面设计和原型设计更漂亮、更吸引眼球。美化栏的7个功能包括竖线布局设计、横线布局设计、重复网格、图形大小和位置设置、响应式调整大小、文字美化以及...