Lighthouse(灯塔)—— Chrome 浏览器性能测试工具

news2024/12/26 20:09:31

1.认识 Lighthouse

  Lighthouse 是 Google 开发的一款开源性能测试工具,用于分析网页或 Web 应用的性能、可访问性、最佳实践、安全性以及 SEO 等关键指标。开发人员可以通过 Lighthouse 快速了解网页的性能瓶颈,并基于优化建议进行改进。

核心功能:

  • 对页面性能进行全面分析
  • 提供优化建议和评分
  • 支持多种测试维度,如性能、可访问性、SEO、PWA 等
  • 自动化生成测试报告


使用的谷歌浏览器版本:

2.Lighthouse 的三种模式

  Lighthouse 提供三种测试模式,每个模式适用于不同场景。以下是每种模式的说明:

模式名称说明局限性
导航模式(默认)获取页面性能分数与指标。
评估渐进式 Web 应用功能。
分析页面加载后的可访问性。
无法分析表单提交或单页应用的转换。
时间跨度模式测量特定时间范围内的性能(如布局偏移、JS 执行时间)。
适合评估长时间使用的页面或 SPA。
不提供总分。
无法分析瞬时性能指标,如最大内容绘制 (LCP)。
快照模式分析页面当前状态,适用于查找深层次表单或隐藏菜单的可访问性问题。不提供总分。
无法分析 DOM 之外的问题。

测试设备选择

  Lighthouse 支持两种设备类型:

  1. 移动设备模拟(默认)
  2. 桌面设备模拟

3.主要监测指标

  Lighthouse 监测多个维度的性能指标,以下是最重要的性能指标说明:

性能(Performance)

指标名称说明
首次内容绘制 (FCP)页面首次绘制 DOM 内容的时间,表示用户第一次看到页面内容的时间点。
最大内容绘制 (LCP)可视区域中最大内容元素呈现的时间,用于衡量主要内容的加载速度。
可交互时间 (TTI)页面完全可交互的时间点,表示浏览器可以快速响应用户操作的时刻。
总阻塞时间 (TBT)页面从首次内容绘制到完全可交互期间的总阻塞时间。
累积布局偏移 (CLS)页面布局的稳定性指标,衡量意外布局偏移对用户体验的影响。
速度指标 (SI)衡量页面内容在首屏可见的速度,值越小越佳。

可访问性(Accessibility)

检测网页的无障碍设计,包括对屏幕阅读器支持、颜色对比度、表单标签等。

最佳实践(Best Practices)

检测网页安全性和开发实践,例如是否启用 HTTPS,是否存在安全漏洞等。

SEO(Search Engine Optimisation)

评估网页的搜索引擎友好性,比如标题、元描述是否优化,页面是否允许爬取等。

渐进式 Web 应用(PWA)

验证网页是否符合 PWA 标准,如离线支持、安装性等。


4.如何使用 Lighthouse

  Lighthouse 可以通过多种方式运行:

  1. Chrome DevTools
    打开 Chrome 浏览器,右键点击页面 -> 检查 -> 切换到 Lighthouse 面板,选择测试选项,点击 分析页面加载

  1. CLI 命令行工具
  2. Chrome 插件
    在 Chrome 网上应用商店搜索 Lighthouse 插件,安装后直接在浏览器中生成报告。

  1. Node.js API
    使用 Node.js 脚本运行 Lighthouse 测试,适合高级开发者(官方介绍的,没用过)。

5.Lighthouse 报告解读

Lighthouse 报告为每个维度生成 0–100 的评分,并用颜色标识:

  • 绿色(90–100):表现优秀
  • 橙色(50–89):表现中等
  • 红色(0–49):表现较差

下面是关键性能指标的理想范围:

指标名称绿色(优秀)橙色(中等)红色(较差)
首次内容绘制 (FCP)0–1.8 秒1.8–3 秒>3 秒
最大内容绘制 (LCP)0–2.5 秒2.5–4 秒>4 秒
可交互时间 (TTI)0–3.8 秒3.9–7.3 秒>7.3 秒
总阻塞时间 (TBT)0–200 毫秒200–600 毫秒>600 毫秒
累积布局偏移 (CLS)0–0.10.1–0.25>0.25

6.性能优化建议

根据报告中提供的优化建议,可以从以下几个方面提升性能:

  1. 减少未使用的 JS 和 CSS
    • 使用代码分割和按需加载技术。
    • 删除无用的 CSS 和 JS 文件。
  2. 启用文本压缩
    • 配置服务器支持 gzip 或 Brotli 压缩。
  3. 优化图片加载
    • 使用下一代图片格式(如 WebP)。
    • 启用懒加载(Lazy Loading)。
  4. 消除渲染阻塞资源
    • 将关键 CSS 内联到 HTML 中。
    • 为非关键资源添加 asyncdefer 属性。
  5. 开启 HTTP/2
    • 改用 HTTP/2 协议,提高请求效率。
  6. 优化服务器响应时间
    • 使用 CDN 缓存静态资源。
    • 减少重定向请求。

……


总结

  Lighthouse 是前端性能优化的强大工具,通过全面的分析和详细的优化建议,开发者可以发现网页性能问题并进行改进。

参考资料:

  • Google Developers 文档
  • CSDN 博客

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

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

相关文章

Logistic Regression(逻辑回归)、Maximum Likelihood Estimatio(最大似然估计)

Logistic Regression(逻辑回归)、Maximum Likelihood Estimatio(最大似然估计) 逻辑回归(Logistic Regression,LR)逻辑回归的基本思想逻辑回归模型逻辑回归的目标最大似然估计优化方法 逻辑回归…

使用Hadoop MapReduce进行大规模数据爬取

Hadoop MapReduce概述 Hadoop MapReduce是一个编程模型,用于处理和生成大数据集。它由Map和Reduce两个主要阶段组成。Map阶段负责处理输入数据,并将结果输出为键值对;Reduce阶段则对Map阶段的输出进行汇总和合并,生成最终结果。 …

AI驱动的低代码平台:解密背后的算法与架构创新

引言 在如今的数字化浪潮中,企业对软件的需求正以前所未有的速度增长。传统的开发方式由于开发周期长、成本高,已逐渐无法满足市场的快速变化。而低代码平台的出现,使得开发者和业务人员能够以极简的方式快速构建应用。然而,随着企…

【Spring工具插件】lombok使用和EditStarter插件

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 引入 一:lombok介绍 1:引入依赖 2:使用 3:原理 4&…

释放超凡性能,打造鸿蒙原生游戏卓越体验

11月26日在华为Mate品牌盛典上,全新Mate70系列及多款全场景新品正式亮相。在游戏领域,HarmonyOS NEXT加持下游戏的性能得到充分释放。HarmonyOS SDK为开发者提供了软硬协同的系统级图形加速解决方案——Graphics Accelerate Kit(图形加速服务…

Zynq(6)FATFS读写eMMC

文章目录 1.简介eMMc与FAT2.eMMC与FAT的关系3.添加xilinx库4.用 FATFS完成emmc的读写5.传送门 1.简介eMMc与FAT eMMC (embedded MultiMediaCard) 是一种嵌入式闪存存储解决方案,由NAND闪存和内置的控制器组成,NAND闪存存储数据,而控制器负责…

【Linux】gdb / cgdb 调试 + 进度条

🌻个人主页:路飞雪吖~ 🌠专栏:Linux 目录 一、Linux调试器-gdb 🌟开始使用 🌠小贴士: 🌟gdb指令 🌠小贴士: ✨watch 监视 ✨打条件断点 二、小程序----进…

如何解决maven项目使用Ctrl + /添加注释时的顶格问题

一、问题描述 相信后端开发的程序员一定很熟悉IDEA编译器和Maven脚手架,使用IDEA新建一个Maven工程,通过SpringBoot快速构建Spring项目。在Spring项目pom.xml文件中想添加注释,快捷键Ctrl /,但是总是顶格书写。 想保证缩进统一…

python学习——数据的验证

文章目录 1. str.isdigit()2. str.isnumeric()3. str.isalpha()4. str.isalnum()5. str.islower()6. str.isupper()7. str.istitle()8. str.isspace()实操 以下是Python中字符串数据验证方法的详细解释: 1. str.isdigit() 这个方法用于检查字符串中的所有字符是否都…

基于Springboot+Vue的在线答题闯关系统

基于SpringbootVue的在线答题闯关系统 前言:随着在线教育的快速发展,传统的教育模式逐渐向互联网教育模式转型。在线答题系统作为其中的一个重要组成部分,能够帮助用户通过互动式的学习方式提升知识掌握度。本文基于Spring Boot和Vue.js框架&…

Web(CSS+JS+HTML实现简单界面)

前言 写的是个人博客界面,代码比较冗余,web的一个小作业。。。。。。 因为后面改了一次,有些css是直接写到了html文件中,重复的代码也比较多。 项目结构 CSS style.css * {margin: 0;padding: 0;box-sizing: border-box; }b…

Scala:正则表达式

object test03 {//正则表达式def main(args: Array[String]): Unit {//定义一个正则表达式//1.[ab]:表示匹配一个字符,或者是a,或者是b//2.[a-z]:表示从a到z的26个字母中的任意一个//3.[A-Z]:表示从A到Z的26个字母中的任意一个//4.[0-9]:表示从0到9的10…

经验帖 | Matlab安装成功后打不开的解决方法

最近在安装Matlab2023时遇到了一个问题: 按照网上的安装教程成功安装 在打开软件时 界面闪一下就消失 无法打开 但是 任务管理器显示matlab在运行中 解决方法如下: matlab快捷方式–>右键打开属性–>目标 填写许可证文件路径 D:\MATLAB\MatlabR20…

VCU——matlab/simulink软件建模

一、认识MATLAB/Simulink 1. matlab主界面 2. simulink 二、Simulink 建模基础 1. Simulink模块 2. 模型的仿真 matlab 中比较两个浮点型,不要用,采取差值和Compare To Constant的方案 3. 自动代码生成

(软件测试文档大全)测试计划,测试报告,测试方案,压力测试报告,性能测试,等保测评,安全扫描测试,日常运维检查测试,功能测试等全下载

1. 引言 1.1. 编写目的 1.2. 项目背景 1.3. 读者对象 1.4. 参考资料 1.5. 术语与缩略语 2. 测试策略 2.1. 测试完成标准 2.2. 测试类型 2.2.1. 功能测试 2.2.2. 性能测试 2.2.3. 安全性与访问控制测试 2.3. 测试工具 3. 测试技术 4. 测试资源 4.1. 人员安排 4.2. 测试环境 4.2.…

Crash-SQLiteDiskIOException

目录 相关问题 日志信息 可能原因 问题排查 相关问题 蓝牙wifi无法使用 日志信息 可能原因 磁盘空间不足:当设备上的可用存储空间不足时,SQLite无法完成磁盘I/O操作,从而导致SQLiteDiskIOException。 数据库文件损坏:如果数…

PyTorch 深度学习框架简介:灵活、高效的 AI 开发工具

PyTorch 深度学习框架简介:灵活、高效的 AI 开发工具 PyTorch 作为一个深度学习框架,以其灵活性、可扩展性和高效性广受欢迎。无论是在研究领域进行创新实验,还是在工业界构建生产级的深度学习模型,PyTorch 都能提供所需的工具和…

Java Web 4 Maven

本文详细介绍了Maven的用途,包括依赖管理、项目结构统一和构建流程标准化;然后讲解了Maven的安装、IDEA中的集成以及依赖管理的核心概念。 1 什么是Maven? 什么是apache? 2 Maven的作用 (1)方便依赖管理 有…

无人机吊舱类型详解!

一、侦察与监测类吊舱 电子侦察吊舱 功能:主要用于侦察和监测目标,具备侦察、监听、干扰等多种功能。 设备:通常安装有电子侦察设备和通信设备,可以实时获取目标的电子信息,并将数据传输回地面指挥中心。 应用&…

数据结构与算法之美:顺序表详解

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《题海拾贝》、《编程之路》、《数据结构与算法之美》 欢迎点赞、关注&#xff01; 1、 什么…