web性能测试:Lighthouse测试实践

news2024/10/6 2:29:11

一工具简介

Lighthouse是Google开源的一个自动化工具,它可以搜集多个Web网页性能指标,分析Web应用的性能并生成报告,为开发人员进行性能优化提供了参考方向。

1工作原理

•Driver(驱动)—— 通过 Chrome Debugging Protocol 和 Chrome 进行交互。

•Gatherer(采集器)—— 决定在页面加载过程中采集哪些信息,将采集的信息输出为 Artifact。可自定义。

•Audit(审查器)—— 将 Gatherer 采集的 Artifact 作为输入,审查器会对其测试,然后得出相应的测评结果。可自定义。

•Reporte(报告)—— 将审查的结果通过指定的方式报告出来

1.1工具安装

1.1.1安装路径:更多工具-扩展程序-Chrome应用商城-添加至Chrome。

1.2.工具使用方法

1.2.1访问需要评估的网站。例如https://www.baidu.com

1.2.2开发者工具打开Lighthouse工具

1.2.3点击’分析网页加载情况‘按钮,开始性能分析

1.2.4分析过程显示进度条

1.3.报告生成

工具分析完毕后,能够生成一份HTML报告,点击链接可直接打开报告,进行网页性能分析。

二性能报告分析

2.测试报告概述

报告包含了Performance,访问无障碍(Accessibility),最佳实践(Best Practice),搜索引擎优化(SEO),PWA(Progressive Web App)五个部分。



2.1报告分析

主要参考了报告中的Performance模块的报告数据,Performance性能测试结果会分成 Metrics,Diagnostic,Opportunities 三部分。

2.1.1Metrics模块的部分指标项会影响报告分数,是开发人员进行性能优化的主要参考点,需要关注红色得分的指标。

点击learn more,可以学习各指标释义。



为方便大家更好地理解指标及指标释义,整理如下:





Opportunities模块主要罗列详细的性能优化建议及对应的文档,来解释低分的原因,帮助研测同学定位需要改进的点。截图建议支持展开,展示的文档罗列的是具体可优化的点,研发可结合业务实际有针对性进行性能优化。



展开:



Diagnostics模块指的是现在存在的问题,为进一步改善性能的实验和调整给出了指导。

Diagnostics模块从各个维度给出了具体的、有针对性的建议,分别是:最小化主线程工作,减少javascript执行时间,避免巨大的网络负载等。截图建议支持展开,展示的文档罗列的是具体可优化的点,研发可结合业务实际有针对性进行性能优化。

总:





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

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

相关文章

力扣sql基础篇(六)

力扣sql基础篇(六) 1 学生参加各科测试的次数 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 a 输入示例 b 输出示例 1.2 示例sql语句 # 无论考没考试都要该科目这栏且无连接字段,就可以考虑笛卡尔积了 SELECT s.student_id,s.student_name,s.subject_name,IFNULL…

【软件STM32cubeIDE下STM32F4xx使用DMA+定时器推PWM+灯带WS2812-进阶-综合汇总(讲解移植相关)】

2TOC (1)前言 做灯带ws2812其实有一段时间了,中间遇到很多问题,从开始的学习,到后来慢慢熟悉,再到后来尝试点很多灯带,做过非常多的实验了,自己新建工程,几乎尝试过很多…

【Git】GitHub 操作

6、GitHub 操作 GitHub 网址:https://github.com/ Ps:全球最大同性交友网站,技术宅男的天堂,新世界的大门,你还在等什么? 账号姓名验证邮箱atguiguyueyue岳不群atguiguyueyuealiyun.comatguigulinghuchong令狐冲atguigulinghu…

72、PaletteNeRF: Palette-based Appearance Editing of Neural Radiance Fields

简介 官网:https://palettenerf.github.io/ 以(a)多视图照片为训练输入,重建NeRF并将其外观分解为一组(b)基于3D调色板的色基,实现了©直观和逼真的场景重新着色,在任意视图之间具有3D一致性,如(d)所示,该方法支…

人工智能与Python的渊源

人工智能起源与发展 文章目录人工智能起源与发展前言一、达特茅斯会议与人工智能起源二、人工智能发展的高峰与低谷Python与人工智能构建Python人工智能编程环境1.Python版本2.Anaconda编程环境数据处理常用算法2.1傅里叶变换2.1.1傅里叶分析的由来2.1.2傅里叶变换原理及应用傅…

MODBUS协议下,组态王与S7-1200能否建立无线通讯?

MODBUS协议下,想要组态王与S7-1200之间的无线通讯其实很容易。可采用了西门子PLC专用无线通讯终端DTD434MC,作为实现无线通讯的硬件设备,使用简单方便,不必深入理解 MODBUS 协议细节,无需更改网络参数直接替换有线连接…

波士顿房价预测—随机梯度下降法优化

根据我上一篇关于波士顿房价预测一文可以知道,如果使用梯度下降法,需要将所有的样本对梯度的贡献取平均,根据梯度更新参数。 但是面对海量样本的数据集,如果每次计算都使用全部的样本来计算损失函数和梯度,性能会很差&…

如何创建商用照明 App SDK 应用?

商用照明 App SDK 是专为照明行业的物联网应用提供的移动端开发工具。通过商用照明 SDK,大家可以形成完整的商用照明物联网控制系统,多协议兼容,完美满足绿色建筑的设备管理及能源管理要求。 什么是涂鸦商用照明? 涂鸦商用照明解…

python基础语法(1)

专栏:python 每日一句:人生,无非只有三天,昨天,今天,明天。昨天很长,说不清有多少天,但不管有多少天,不管是受到挫折,还是取得辉煌,都只能代表过去…

Feign

文章目录Http客户端Feign1、Feign替代RestTemplate1.1、RestTemplate方式调用存在的问题1.2、Feign介绍1.3、定义和使用Feign客户端2、Feign的自定义配置2.1、修改日志级别3、Feign的性能优化3.1、Feign的性能优化-连接池配置4、Feign的最佳实践4.1、方式一(继承&am…

TypeScript类型 : any,unknown

1.any类 在某些情况下,我们确实无法确定一个变量的类型,并且可能它会发生一些变化,这个时候我们可以使用any类型(类似 于Dart语言中的dynamic类型)。 any类型有点像一种讨巧的TypeScript手段: 1.我们可以…

【23届秋招总结】本科小学弟成功签约滴滴后端开发offer

大家好!我是路飞,最近工作太忙啦,断更很久,今天给大家分享一位本科23届小学弟的秋招历程~ 在今年整体上就业困难,各大公司校招HC收缩的情况下,这位小学弟也历经坎坷成功拿到了滴滴后端开发岗位…

【安卓学习笔记】安卓的事件处理

安卓提供了两种方式的事件处理:基于回调的事件处理和基于监听的事件处理。 基于监听的事件处理 基于监听的事件处理一般包含三个要素,分别是: Event Source(事件源):事件发生的场所,通常是各个…

c++11 标准模板(STL)(std::forward_list)(六)

定义于头文件 <forward_list> template< class T, class Allocator std::allocator<T> > class forward_list;(1)(C11 起)namespace pmr { template <class T> using forward_list std::forward_list<T, std::pmr::polymorphic_…

动态内存管理详解(malloc、calloc、realloc)

文章目录 一、什么是动态内存 二、为什么要存在动态内存分配 三、动态内存函数的介绍 3、1 malloc和free的介绍 3、2 calloc的介绍 3、3 reallco的介绍 四、常见的动态内存错误 4、1 对NULL指针的解引用操作 4、2 对动态开辟空间的越界访问 4、3 对非动态开辟内存使用free释放 …

rcu锁原理以及rcu example学习

rcu参考资料&#xff1a; https://airekans.github.io/c/2016/05/10/dive-into-liburcu https://lwn.net/Articles/262464/ https://cloud.tencent.com/developer/article/1684477 https://www.cnblogs.com/LoyenWang/p/12681494.html userspace rcu: https://github.com/urcu…

PHP 过滤器

PHP 过滤器用于验证和过滤来自非安全来源的数据&#xff0c;比如用户的输入。什么是 PHP 过滤器&#xff1f;PHP 过滤器用于验证和过滤来自非安全来源的数据。测试、验证和过滤用户输入或自定义数据是任何 Web 应用程序的重要组成部分。PHP 的过滤器扩展的设计目的是使数据过滤…

目标检测、实例分割、旋转框样样精通!详解高性能检测算法 RTMDet

1. 简介 近几年来&#xff0c;目标检测模型&#xff0c;尤其是单阶段目标检测模型在工业场景中已经得到广泛应用。对于检测算法来说&#xff0c;模型的精度以及运行效率是实际使用时最受关注的指标。因此&#xff0c;我们对目前的单阶段目标检测器进行了全面的改进&#xff1a…

超参数、划分数据集、

目录1.超参数(hyperparameters)参数(Parameters)&#xff1a;&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;...超参数&#xff1a;能够控制参数W,b的参数&#xff0c;是在开始学习之前设置的参数。比如&#xff1a;学习率、梯度下降循环的数量#iterations、隐…

【阶段三】Python机器学习23篇:机器学习项目实战:XGBoost分类模型

本篇的思维导图: XGBoost算法可以说是集成学习方法中的王牌算法。在著名的数据挖掘比赛平台Kaggle上,众多获胜者都使用了XGBoost算法,它在绝大多数回归问题和分类问题上的表现都十分不错。 XGBoost算法的核心思想 XGBoost算法在某种程度上可以说是GBDT算法…