灯塔是什么?
灯塔是什么?
灯塔是一个开源的自动化工具,用于提高网页质量。它可以针对任何网页进行审计,无论是否需要身份验证。灯塔会审查网站的性能、可访问性、渐进式Web应用程序、搜索引擎优化等方面,为网页的质量和有效性提供一个全面的评估。
要在Chrome中使用灯塔,请导航到要审计的网页,打开开发者工具,然后点击灯塔标签。选择要运行的审计,然后点击生成报告按钮。灯塔将对页面运行所选审计,然后生成一份关于页面表现的报告。
对于自动化测试,灯塔可以集成到持续集成系统中。它可以作为Node模块、命令行工具或作为自定义构建过程的一部分进行编程。灯塔CI是一组命令,使在持续集成中使用灯塔变得更加容易。评分是根据性能指标和启发式方法计算的。每个指标单独得分,然后将分数组合成一个总体得分。
提高低灯塔得分的方法是解决报告中提供的具体反馈。这可能包括优化图像、压缩CSS和JavaScript、实现懒加载、改善可访问性功能等。
对于JavaScript执行,灯塔模拟中间层设备,即使在使用强大的桌面机器时也会这样做,以创建一致的现实世界条件。
使用灯塔常见的问题包括不稳定的性能指标,可以通过多次运行审计并考虑中值来缓解。
为什么灯塔在软件自动化中重要?
灯塔在软件自动化中有多重要?
灯塔在软件测试自动化中至关重要,因为它能够将性能和质量检查整合到开发和部署流程中。它为性能、可访问性、渐进式Web应用程序、搜索引擎优化和最佳实践提供了自动审计,这些都是维护高质量Web应用程序的关键。通过将灯塔纳入自动化测试,工程师可以确保任何代码更改都根据这些指标进行评估,及时发现回归或问题。这对于持续集成(CI)和持续部署(CD)环境尤为重要,在这些环境中,自动化测试必须快速反馈代码更改的可能影响。
灯塔的作用不仅限于性能预算制定,还帮助团队设定并遵循性能目标。它可以无头运行,使其适合服务器端自动化,并融入CI/CD管道。该工具的可配置性允许定制审计以满足特定需求,其评分系统为网站的质量属性提供了一个可量化的衡量标准。
此外,灯塔的报告提供了可操作的见解,对于寻求优化其Web应用程序的工程师来说非常有价值。通过自动化这些审计并将其融入开发工作流程,灯塔成为一个重要的工具,以自动化和高效的方式维护和改善Web应用程序的质量和用户体验。
灯塔的关键特征是什么?
关键功能:
Lighthouse 的主要功能包括:
性能指标:Lighthouse 提供诸如首次内容呈现绘制(FCP)、速度指数、最大内容呈现绘制(LCP)、交互时间(TTI)、总阻塞时间(TBT)和累积布局移位(CLS)等详细的性能指标。
无障碍审计:Lighthouse 评估网站的无障碍性并根据《Web 内容无障碍指南》(WCAG)提出改进建议。
最佳实践:Lighthouse 检查网页开发中的最佳实践,如使用 HTTPS、正确的图像纵横比以及避免过时的 API 等。
SEO 审计:Lighthouse 评估影响页面搜索引擎排名的元素,如元标签、 hreflang 标签和描述性的链接文本。
Progressive Web App(PWA)评估:Lighthouse 可以验证 PWA 的各种方面,确保它们符合可靠性、性能和互动性的特定标准。
自定义审计:开发者可以通过编写自定义审计来检查特定要求或标准,以适应其项目。
CLI 和可编程 API:Lighthouse 可以通过命令行或程序化地通过其 API 运行,从而允许将其集成到自动化工作流程和 CI/CD 管道中。
可配置性:用户可以通过指定类别进行审计、延迟设置和其他运行时选项来配置 Lighthouse 运行。
报告:审计后,Lighthouse 生成每个类别的得分、详细的解释和可执行的改进建议。
可扩展性:Lighthouse 是开源的,可以扩展或定制以满足特定的测试需求,并与其他工具(如 Lighthouse CI)集成以进行持续测试。
这些特性使 Lighthouse 成为 Web 开发人员和专注于提高网站应用质量测试自动化工程师的通用工具。
灯塔如何与其他性能审计工具不同?
灯塔与其它性能审计工具的区别是什么?
灯塔通过与其集成的前端开发工具(如Chrome开发者工具)以及强调用户体验指标(如核心网页质量)来区别于其他性能审计工具。虽然WebPageTest提供了详细的流量和水准图,但灯塔更注重提供全面的网页性能、可访问性、最佳实践、SEO和渐进式网络应用指标的视角。与其他需要复杂设置或服务器端集成的工具不同,灯塔易于访问,可以在命令行、Node模块或直接浏览器中运行,使其具有高度适应性。它还通过灵活的配置选项提供了自定义审计能力。
灯塔具有明确的评分和建议的报告,这对于指导开发人员改进性能和用户体验非常有用。特别是在移动网络和中端设备上模拟页面加载,这是其他工具可能不覆盖的典型用例。此外,灯塔是一个开源项目,由谷歌维护,确保定期更新以反映最新的网页开发最佳实践和标准。这与一些私有工具形成对比,这些工具可能不如灯塔那么透明或有最新的网页标准。最后,灯塔通过将其集成到CI/CD管道中(如灯塔CI),使其成为自动化性能检查并确保在部署之前满足性能标准的强大选择。
Lighthouse 进行哪些类型的审计?
Lighthouse执行跨五个类别的审计:性能、可访问性、最佳实践、SEO和Progressive Web App(PWA)。每个类别都包含各种检查:
- 性能:评估诸如首次内容填充、速度指数和时间到交互等指标,关注用户的加载体验和互动性。
- 可访问性:检查可能导致用户无法访问内容的常见问题,如缺失的图像alt标签、错误的ARIA属性和不正确的语义HTML元素。
- 最佳实践:寻找现代Web开发实践,包括使用HTTPS、正确的图像纵横比和避免过时的API。
- SEO:评估影响页面搜索引擎可见性的元素,如meta描述、hreflang链接和易读的字体大小。
- PWA:验证服务工人是否存在、Web应用程序manifest以及其他使Web应用程序可以安装在设备的主屏幕并离线工作的条件。
每个审计都提供具体且可操作的反馈,并在个人范围内得分。Lighthouse还提供了机会和诊断,以帮助识别改进领域并了解潜在问题。这些审计可以通过Lighthouse配置扩展或定制特定用途。
如何使用Chrome中的Lighthouse?
如何使用Chrome中的Lighthouse?要使用Lighthouse在Chrome中进行测试自动化,请按照以下步骤操作:打开Chrome开发者工具(按Ctrl+Shift+I或Cmd+Option+I)。导航到Lighthouse标签。选择所需的审计类别(性能、可访问性、最佳实践、SEO和渐进式Web应用程序)。选择相应的设备类型(移动或桌面)进行模拟。点击生成报告以开始审计。对于自动化目的,您可以以程序化的方式使用Lighthouse,例如通过命令行或作为Node模块。以下是使用Node.js的基本示例:使用Node.js运行Lighthouse:const lighthouse = require('lighthouse');const chromeLauncher = require('chrome-launcher');async function runLighthouse(url, options, config = null) {choo
如何可以使用灯塔进行自动化测试?
如何使用灯塔进行自动化测试?灯塔可以集成到自动化测试工作流程中,以确保Web应用程序符合性能、可访问性、最佳实践和SEO标准。要自动化灯塔测试,可以使用灯塔命令行界面(CLI)或灯塔Node模块。CLI方法:通过npm全局安装灯塔:npm install -g lighthouse运行灯塔以测试URL并将结果输出到JSON文件中:lighthouse https://example.com --output=json --output-path=./report.json --chrome-flags="--headless"Node模块方法:通过npm将灯塔作为开发依赖项安装:npm install --save-dev lighthouse创建一个脚本,以程序化地启动Chrome并运行灯塔:const lighthouse = require('lighthouse');const chromeLauncher = require('chrome-launcher');async function runLighthouse(url, opts, config = null) {chome = await chromeLauncher.launch({ chromeFlags: opts.chromeFlags});opts.port = chrome.port;const results = await lighthouse(url, opts, config);await chrome.kill();return results.lhr;}const options = {chromeFlags: ['--headless'],output: 'json'}runLighthouse('https://example.com', options).then(results => {//处理灯塔结果})持续集成:将灯塔集成到持续集成管道中使用灯塔CI。设置一个.lighthouserc.js配置文件,并在您的CI配置中添加灯塔CI命令:lhci autorun --config=.lighthouserc.js这将在每个提交或拉取请求中运行审计,确保代码更改不会降低应用程序质量。使用灯塔CI服务器进行历史跟踪并设定性能预算。
进行Lighthouse审计的步骤是什么?
运行 Lighthouse 审计的步骤是什么?
在浏览器中打开要审计的页面。
访问开发者工具。可以通过按Ctrl+Shift+I(或Mac上的Cmd+Option+I)或在页面上右键单击并选择“检查”来访问开发者工具。
点击开发者工具面板中的 Lighthouse 标签。如果它不显示,你可能需要点击“>>”图标来找到它。
选择您希望审计的类别(性能、可访问性、最佳实践、SEO 和渐进式 Web 应用)。
选择要模拟的设备类型(移动设备或台式机)。
(可选)点击“高级设置”按钮以调整测试选项或阻止审计期间特定 URL。
点击生成报告按钮开始审计。
Lighthouse 现在将针对页面运行一系列测试并生成报告。审计完成后,您将看到一个详细的报告,概述了页面的性能和质量。您可以使用此报告来确定改进领域。
对于自动化测试或持续集成,您可以使用 Lighthouse CLI 通过 npm 进行安装:
npm install -g lighthouse
然后使用以下命令进行审计:
lighthouse https://example.com --output json --output-path ./report.json
请将 https://example.com 替换为您的 URL,并根据需要调整输出格式和路径。此命令将生成一个 JSON 报告,可以将其集成到您的 CI/CD 管道中。
如何将在持续集成过程中使用Lighthouse?
如何将Lighthouse集成到持续集成(CI)流程中?
要使用Lighthouse在持续集成(CI)中,请按照以下步骤操作:
- 安装:使用npm安装全局@lhci/cli包。
npm install -g @lhci/cli
配置:在你的项目根目录下创建一个.lighthouserc.js或.lighthouserc.json文件,定义要审计的URL、运行次数以及其他配置。
在CI管道中添加一个Lighthouse CI步骤。例如,在GitHub Actions工作流程中,添加一个运行Lighthouse CI的任务:
- name: Run Lighthouse CI run: lhci autorun
- 设置断言:设置性能预算或特定审计阈值,以强制满足这些标准。如果未达到这些标准,则失败CI构建:
"assertions": { "categories:performance": ["error", { "minScore": 0.9 }], "categories:accessibility": ["error", { "minScore": 0.9 }] }
存储报告:将报告存储供历史比较和跟踪回归。使用--upload.target选项将报告上传到Lighthouse CI服务器或其他存储解决方案。
自动化过程:在每个拉取请求或在特定分支上运行Lighthouse,确保新代码符合定义的质量标准。
通过将Lighthouse集成到CI中,您创建了反馈循环,以便在早期发现潜在问题,从而维护Web应用程序用户体验的高标准。
如何为您定制Lighthouse审计进行配置?
如何配置Lighthouse进行自定义审计?要配置Lighthouse进行自定义审计,您需要创建自定义审计定义和收集器。以下是简洁指南:创建自定义收集器:一个收集器从页面收集信息。扩展Lighthouse的Gatherer类。const { Gatherer } = require('lighthouse');class CustomGatherer extends Gatherer {afterPass(options){//收集数据并返回它}}module.exports = CustomGatherer;开发一个自定义审计:审计使用由收集器收集的数据。扩展Lighthouse的Audit类。const { Audit } = require('lighthouse');class CustomAudit extends Audit {static get meta() {return {id: 'custom-audit-id', title: 'Custom Audit',failureTitle: 'Custom Audit Failed', description: 'Description of your custom audit', requiredArtifacts: ['CustomGatherer']}};static audit(artifacts) {const loadMetrics = artifacts.CustomGatherer;//执行审计逻辑并返回得分return {score: Number(loadMetrics < threshold)}}module.exports = CustomAudit;将其添加到Lighthouse配置:将自定义收集器和审计包含在Lighthouse配置中。module.exports = {passes: [{passName: 'defaultPass', gatherers: ['path/to/customgatherer'],}],audits: ['path/to/customaudit'],categories: {customCategory: {title: 'Custom Category', description: '包括自定义审计',auditRefs: [{id: 'custom-audit-id', weight: 1}]},}},
如何计算灯塔分数?
Lighthouse分数是根据五个类别计算的:性能、可访问性、最佳实践、SEO和渐进式Web应用程序。每个类别都有一个包含各种测试的审计列表。这些测试的得分然后被汇总为每个类别的得分。性能得分主要受到速度指标,如首次内容绘制(FCP)、速度指数、最大内容绘制(LCP)、互动时间(TTI)、总阻塞时间(TBT)和累积布局位移(CLS)的影响。这些指标从加载、互动和视觉稳定性方面反映用户的体验。可访问性审计检查可能导致用户因残疾而无法访问内容的常见问题。这包括正确使用HTML元素、ARIA属性、颜色对比率和导航。最佳实践得分源于检查现代web开发标准的测试,包括HTTPS的使用、正确的图像纵横比以及避免过时的API
不同的灯塔审计类别意味着什么?
不同的灯塔审计类别意味着什么?
Lighthouse 审计类别是评估网站质量各种方面的基准。每个类别都代表一个核心的用户体验和技术性能领域:
性能:衡量网站的速度和效率。指标包括首次内容绘制、速度指数和时间交互。
无障碍:评估网站是否可以被残疾人使用。它检查对 ARIA 属性的正确使用、屏幕阅读器支持和导航无障碍性。
最佳实践:评估是否使用了现代Web开发实践。这包括检查 HTTPS 的使用情况、正确的图像纵横比和避免过时的 API。
搜索引擎优化(SEO):分析网站在搜索引擎中的索引潜力。它查看移动友好性、内容最佳实践和元数据存在。
渐进式 Web 应用程序(PWA):确定网站是否遵循 PWA 标准。它检查服务worker注册、有效的web应用程序manifest和响应式设计。
每个类别都提供具体的、可执行的见解。例如,性能类别可以突出显示懒加载离屏图像的机会,而无障碍类别可能为屏幕阅读器用户提供改进建议。这些见解指导工程师优化他们的Web应用程序,以提供更好的用户体验和技术稳定性。
如何解释灯塔报告?
如何解读Lighthouse报告?
解析
Lighthouse
报告涉及分析每个审计类别中提供的数据,以确定在您的web应用中改进的领域。在运行
Lighthouse
审计后,您将收到一份报告,其中包含在以下类别中的得分:性能、可访问性、最佳实践、搜索引擎优化和渐进式Web应用程序。
性能
:查看诸如首次内容填充(FCP)、速度指数、最大内容填充时间(LCP)、交互时间(TTI)、总阻塞时间(TBT)和累积布局偏移(CLS)等指标。这些指标为用户感知加载体验和互动提供了见解。
可访问性
:审查可能阻止残疾用户访问内容的缺陷。这包括缺失的alt文本,不正确的ARIA属性和错误的使用HTML语义。
最佳实践
:检查可能影响应用程序可靠性和安全性的警告和错误,例如使用HTTPS,避免过时的API,并确保正确的图像比例。
搜索引擎优化
:检查可能影响网站搜索引擎排名的因素,如移动友好性、内容最佳实践和元数据存在。
渐进式Web应用程序
:根据PWA标准评估应用程序,关注方面包括快速的加载时间、响应式设计和一个工作的离线模式。
对于每个审计,
Lighthouse
提供:
一个表示页面在该类别质量的分数(0-100)。
颜色编码的指标(良好的绿色,需要改进的红色,不良的红色)。
针对改进得分的可操作建议。
使用详细的建议来优先解决修复和增强功能。首先解决代表最紧迫问题的红色项目,然后是橙色,然后是绿色以微调性能。实施更改,重新运行
Lighthouse
,并将报告进行比较以跟踪进度。
根据灯塔审计结果可以采取哪些行动?
根据Lighthouse审计结果,可以采取一些行动来提高网站应用的质量和性能:优化图片:压缩和正确格式化图片,以减少加载时间。最小化CSS、JavaScript和HTML:删除不必要的字符,而不改变功能,以减小文件大小。利用浏览器缓存:设置合适的缓存头,以减少返回用户的重复加载时间。消除渲染阻塞资源:推迟非关键性的CSS和JavaScript,以加快首次绘制速度。使用懒加载:按需加载图片和iframe,以减少初始加载时间。改善服务器响应时间:优化服务器配置,使用内容分发网络(CDN),或升级托管(如有需要)。删除未使用的代码:检测和清理死代码,以减少文件大小和复杂性。启用压缩:使用Gzip或Brotli对基于文本的资源进行压缩。实现HTTP/2:利用多路复用和服务器推送特性,以提高加载速度。优先加载页面上端内容:结构化HTML,首先加载最重要的内容。增强无障碍访问:解决影响残疾用户的问题,如颜色对比度和键盘导航。SEO改进:确保元标签存在且描述性,内容可爬取。将这些行动迭代实施,将其集成到您的CI/CD管道中,以持续改进。定期使用Lighthouse重新审计,以衡量进展并识别新的优化机会。
如何提高低级的Lighthouse分数?
如何提高低灯塔分数?
优化图片:使用工具如ImageOptim或TinyPNG无损失压缩图像。
最小化CSS、JavaScript和HTML:使用UglifyJS、cssnano或HTMLMinifier来减少文件大小。
启用压缩:在服务器上使用Gzip或Brotli对资源进行压缩。
利用浏览器缓存:为资产设置适当的Cache-Control头。
删除渲染阻塞资源:内联关键CSS,推迟非关键JavaScript,或使用async属性。
使用高效的CSS选择器:避免复杂的选择器,可能减慢页面渲染。
减少主线程工作:分析JavaScript并优化阻塞主线程的长任务。
减少JavaScript负载:使用动态导入代码,并使用树摇动删除未使用的代码。
实现懒加载:只在需要时加载图像或模块。
优化Web字体:使用font-display: swap来最小化阻塞,并考虑字体子集。
预连接至所需起源:使用建立早期与重要第三方域名的连接。
使用HTTP/2:为资源提供HTTP/2服务,以提高多路复用和并行性。
优先级内容:使用Priority Hints或loading属性优先级加载关键资源。
审查第三方代码:删除或优化非关键的第三方脚本。
Lighthouse CI是什么以及它是如何工作的?
Lighthouse CI是一种开源的自动化工具,用于提高网页和应用程序的质量。它与持续集成(CI)系统集成,对每次提交运行Lighthouse审计,提供潜在回归的性能、可访问性、SEO和最佳实践方面的即时反馈。如何工作:安装:Lighthouse CI作为npm包安装。npm install -g @lhci/cli配置:创建一个.lighthouserc.js或.lighthouserc.json文件以配置审计。module.exports = { ci: { collect: { //... }
如何使用Lighthouse进行性能预算编制?
如何使用Lighthouse进行性能预算制定?Lighthouse可以在实施和执行Web应用程序的性能预算方面发挥重要作用。性能预算是对影响网站性能的某些指标的限制,例如图像大小、脚本和CSS文件的大小。要使用Lighthouse进行性能预算制定,请按照以下步骤操作:定义您的性能预算。决定您想要强制执行的指标和阈值,例如最大页面加载时间、总图像大小或HTTP请求的数量。创建一个Lighthouse配置文件。在JSON文件中指定您的性能预算约束。例如:{ "extends": "lighthouse:default", "settings": { "budgets": [ { "resourceSizes": [ { "resourceType": "script", "budget": 125 }, { "resourceType": "total", "budget": 300 } ] }, { "resourceCounts": [ { "resourceType": "third-party", "budget": 10 } ] } ] }运行Lighthouse。使用CLI运行Lighthouse与您的高级配置文件:lighthouse https://example.com --budget-path=./path-to-your-budget.json审查输出。Lighthouse将在报告中包括一个部分,表明您的网站是否保持在与定义的预算相同的范围内。如果超过任何预算,Lighthouse将提供关于超支的细节。通过将这个过程集成到您的CI/CD管道中,您可以自动检查每个构建是否符合性能预算,确保在开发过程中的早期发现性能退化。
在渐进式网页应用(PWAs)中,灯塔的作用是什么?
灯塔在进步型网页应用(PWA)中扮演着至关重要的角色,通过提供一系列针对PWA特性和最佳实践的审计,来评估和改善PWA的质量。它根据现代网页应用的预期基准来评估PWA,确保其快速、可靠且引人入胜。对于PWA,灯塔检查以下内容:服务工作者:验证服务工作者是否已注册以及是否支持离线使用。网页应用手册:确保存在一个包含适当图标、主题颜色和全屏独立用户体验的设置的手册文件。HTTPS:确认应用程序通过安全的连接提供服务,这是许多PWA功能的前置条件。重定向:检查导航是否被重定向,这可能会减慢应用程序。闪屏屏幕:评估在加载过程中是否提供了自定义闪屏屏幕,以提高用户体验。主题:评估主题颜色在地址栏和闪屏屏幕上的一致性。视口配置:确保视口为响应式设计进行了正确设置。用户参与度:衡量提示用户将其安装到主页屏幕的能力。通过将灯塔集成到测试自动化过程中,工程师可以自动化评估这些特定于PWA的准则,识别改进领域,并在时间上进行跟踪。这确保了PWA满足性能、可访问性和用户体验的高标准,这些都是保持用户和满意度的关键因素。
灯塔如何处理JavaScript执行?
灯塔如何处理JavaScript执行?
灯塔通过无头Chrome浏览器处理JavaScript执行。当启动灯塔审计时,它会以无头模式启动Chrome,这允许它在程序上与页面互动,就像用户可能会做的那样。
灯塔然后导航到目标URL并等待页面加载。在加载过程中,灯塔记录页面上JavaScript的执行情况。这包括脚本解析和执行时间,以及异步JavaScript任务完成所需的时间。
灯塔使用Chrome DevTools协议收集关于JavaScript执行的信息,包括:
脚本评估:脚本解析和编译所花费的时间。
任务执行:脚本任务执行所花费的时间。
JavaScript启动时间:页面成为交互式所需的时间,这对于理解用户体验至关重要。
如果需要,灯塔还模拟用户交互,以触发可能与用户事件相关的JavaScript执行。这确保审计捕捉到脚本的性能影响,这些脚本只在交互时执行。
关于JavaScript执行的数据显示在无头Chrome浏览器中,可以用于评估JavaScript对页面加载性能和互动的影响,这对理解和改进用户体验至关重要。
在使用Lighthouse时,一些常见的问题及其解决方案包括:
以下是将英文翻译成中文:什么是使用灯塔(Lighthouse)时常见的问题及其解决方案?使用灯塔(Lighthouse)时可能出现的问题及其解决方案包括:得分波动:由于网络条件、缓存状态或CPU限制等原因,得分可能在多次运行之间发生变化。解决方法:多次运行灯塔并平均计算得分以获得一致性。大型资产:未优化的图片或庞大的脚本可能会对性能产生负面影响。解决方法:压缩图片,压缩CSS/JavaScript,并使用懒加载。第三方脚本:外部脚本可能会拖慢您的网站。解决方法:使用“rel="preconnect”属性连接已知的主机,延迟非关键脚本,或删除不必要的第三方脚本。缓存配置:不正确的缓存配置可能导致重复获取数据。解决方法:为静态资产设置适当的“Cache-Control”头部。可访问性问题:灯塔可能会报告一些不明显的可访问性担忧。解决方法:审查每个问题,参考WCAG指南,并进行必要的HTML/ARIA调整。搜索引擎优化不足:灯塔可能会报告缺失的元标签或不正确的语义。解决方法:确保正确使用语义HTML和元标签,如“description”,“viewport”,和结构化数据。渐进式Web应用程序标准:灯塔可能会指出渐进式Web应用程序功能缺失。解决方法:实现服务工人,创建Web应用程序清单,并确保应用程序通过HTTPS提供服务。超时或错误:灯塔在审计过程中可能会超时或遇到错误。解决方法:检查服务器问题,确保浏览器扩展不会干扰,并在离线模式下运行审计。记住要保持您的灯塔版本更新,以便受益于最新的检查和错误修复。