WEBKT

Lighthouse CLI 深度解析:定制你的专属性能测试

15 0 0 0

为什么选择 Lighthouse CLI?

安装与基本使用

常用命令行选项详解

1. --view:查看报告

2. --output:指定输出格式和路径

3. --only-categories:指定要测试的类别

4. --emulated-form-factor:模拟设备类型

5. --throttling:模拟网络环境

6. --extra-headers:添加额外的 HTTP 请求头

7. --chrome-flags:设置 Chrome 启动参数

8. --config-path: 使用自定义的配置文件

9. --budget-path:性能预算

实际应用案例

案例一:持续集成中的性能监控

案例二:批量测试网站所有页面

案例三:自定义网络环境测试

总结

Lighthouse,这个名字你可能早就听过,作为 Google 出品的一款强大的网站性能测试工具,它早已成为众多开发者手中的利器。除了在 Chrome 开发者工具中直接使用外,Lighthouse 还提供了强大的命令行界面 (CLI),让我们可以更灵活、更深入地定制性能测试,满足各种各样的需求。

今天咱们就来聊聊 Lighthouse CLI,看看它到底有哪些“黑科技”,又该如何玩转这些命令,让你的网站性能测试更上一层楼。

为什么选择 Lighthouse CLI?

你可能会问,Chrome 开发者工具里不是已经有 Lighthouse 了吗,为什么还要用 CLI?

问得好!CLI 的优势主要体现在以下几个方面:

  • 自动化测试: CLI 可以轻松集成到你的持续集成/持续部署 (CI/CD) 流程中,实现自动化性能测试,无需手动干预。
  • 批量测试: 一次性测试多个页面,甚至整个网站,效率更高。
  • 自定义配置: CLI 提供了丰富的配置选项,可以让你根据实际需求定制测试参数,获得更精准的测试结果。
  • 无头模式 (Headless): 可以在没有图形界面的服务器环境下运行,方便部署。
  • 更深入的控制: 可以更精细地控制测试的各个环节,例如模拟不同的网络环境、设备类型等。

总之,如果你想更深入地了解和控制网站性能测试,Lighthouse CLI 绝对是你的不二之选。

安装与基本使用

在开始之前,我们需要先安装 Lighthouse CLI。最简单的方法是通过 npm (Node.js 包管理器):

npm install -g lighthouse

安装完成后,就可以在命令行中输入 lighthouse 命令来验证是否安装成功。如果看到 Lighthouse 的帮助信息,就说明安装成功了。

最基本的使用方法是直接在命令行中输入 lighthouse 加上你要测试的网址:

lighthouse https://www.example.com

Lighthouse 会自动打开一个 Chrome 实例 (默认情况下),对目标网址进行测试,并在测试完成后生成一份 HTML 报告。

常用命令行选项详解

Lighthouse CLI 提供了大量的命令行选项,可以让你对测试进行各种各样的定制。下面我们就来详细介绍一些常用的选项。

1. --view:查看报告

默认情况下,Lighthouse 会在测试完成后自动打开生成的 HTML 报告。如果你不想自动打开,可以使用 --no-view 选项:

lighthouse https://www.example.com --no-view

之后,你可以使用 --view 选项手动打开报告:

lighthouse --view

2. --output:指定输出格式和路径

Lighthouse 默认会生成 HTML 格式的报告。你可以使用 --output 选项指定输出格式,支持的格式包括 htmljsoncsv

lighthouse https://www.example.com --output json --output-path ./report.json

上面的命令会将测试结果输出为 JSON 格式,并保存到 ./report.json 文件中。 你也可以同时输出多种格式:

lighthouse https://www.example.com --output html --output json --output-path ./report

上面的命令会输出report.html 和 report.json.

3. --only-categories:指定要测试的类别

Lighthouse 默认会测试所有类别,包括性能 (Performance)、可访问性 (Accessibility)、最佳实践 (Best Practices)、SEO 和渐进式 Web 应用 (PWA)。你可以使用 --only-categories 选项指定要测试的类别,多个类别之间用逗号分隔。

lighthouse https://www.example.com --only-categories performance,accessibility

上面的命令将只测试性能和可访问性两个类别。

4. --emulated-form-factor:模拟设备类型

Lighthouse 默认会模拟移动设备进行测试。你可以使用 --emulated-form-factor 选项指定要模拟的设备类型,可选值包括 mobiledesktop

lighthouse https://www.example.com --emulated-form-factor desktop

上面的命令将模拟桌面设备进行测试。

5. --throttling:模拟网络环境

Lighthouse 默认会使用一个预设的节流配置来模拟移动网络环境。你可以使用 --throttling 选项自定义网络节流参数,或者使用预设的配置。

lighthouse https://www.example.com --throttling.cpuSlowdownMultiplier=4

上面命令模拟了CPU减速4倍的情况。

6. --extra-headers:添加额外的 HTTP 请求头

有些网站可能需要特定的 HTTP 请求头才能正常访问。你可以使用 --extra-headers 选项添加额外的请求头。

lighthouse https://www.example.com --extra-headers "{\"Cookie\": \"name=value\"}"

上面的命令将添加一个名为 Cookie 的请求头,值为 name=value

7. --chrome-flags:设置 Chrome 启动参数

你可以使用 --chrome-flags 选项设置 Chrome 启动参数,例如禁用某些 Chrome 功能或启用实验性功能。

lighthouse https://www.example.com --chrome-flags="--headless --disable-gpu"

上面的命令将以无头模式启动 Chrome,并禁用 GPU 加速。

8. --config-path: 使用自定义的配置文件

Lighthouse 允许通过一个 JSON 配置文件来定义更复杂的测试设置。例如:

// config.js
module.exports = {
extends: 'lighthouse:default',
settings: {
onlyCategories: ['performance'],
},
};

然后运行:

lighthouse https://example.com --config-path=./config.js

9. --budget-path:性能预算

性能预算可以帮助你设定性能指标的阈值,如果测试结果超过了预算,Lighthouse 会给出警告。

// budget.json
[
{
"resourceType": "script",
"budget": 200
},
{
"resourceType": "image",
"budget": 300
}
]

然后运行:

lighthouse https://example.com --budget-path=./budget.json

实际应用案例

说了这么多,咱们来举几个实际的例子,看看 Lighthouse CLI 如何在实际开发中发挥作用。

案例一:持续集成中的性能监控

假设你正在开发一个电商网站,你希望在每次代码提交后都能自动进行性能测试,以确保网站性能不会出现倒退。你可以在你的 CI/CD 流程中添加一个 Lighthouse 测试步骤,例如使用 Jenkins 或 GitLab CI。

# .gitlab-ci.yml
stages:
- test
performance_test:
stage: test
image: node:latest
script:
- npm install -g lighthouse
- lighthouse https://your-website.com --output json --output-path ./report.json --only-categories performance
artifacts:
paths:
- ./report.json

上面的配置会在每次代码提交后自动运行 Lighthouse 测试,并将测试结果保存为 JSON 格式的报告。你可以在 CI/CD 平台的界面上查看测试结果,或者将测试结果发送到你的监控系统。

案例二:批量测试网站所有页面

假设你有一个包含多个页面的网站,你想一次性测试所有页面的性能。你可以编写一个脚本来批量运行 Lighthouse 测试。

# test_all_pages.sh
pages=(
"https://your-website.com/"
"https://your-website.com/products"
"https://your-website.com/about"
)
for page in "${pages[@]}"
do
lighthouse "$page" --output json --output-path "./reports/$page.json" --only-categories performance
done

上面的脚本会遍历 pages 数组中的所有网址,分别运行 Lighthouse 测试,并将测试结果保存到 ./reports 目录下。

案例三:自定义网络环境测试

假设你想测试你的网站在不同网络环境下的性能表现,例如 3G、4G 和 Wi-Fi。你可以使用 --throttling-method--throttling 选项来模拟不同的网络环境。

# 3G
lighthouse https://your-website.com --throttling-method=devtools --throttling.rttMs=200 --throttling.throughputKbps=780 --throttling.requestLatencyMs=280 --throttling.downloadThroughputKbps=700 --throttling.uploadThroughputKbps=330 --throttling.cpuSlowdownMultiplier=4
# 4G
lighthouse https://your-website.com --throttling-method=devtools --throttling.rttMs=150 --throttling.throughputKbps=1600 --throttling.requestLatencyMs=200 --throttling.downloadThroughputKbps=1400 --throttling.uploadThroughputKbps=750 --throttling.cpuSlowdownMultiplier=2

通过修改参数,即可模拟不同网络环境。

总结

Lighthouse CLI 是一个功能强大、灵活可定制的网站性能测试工具。通过熟练掌握 CLI 的各种命令行选项,你可以轻松实现自动化测试、批量测试、自定义配置等功能,让你的网站性能测试更上一层楼。希望这篇文章能帮助你更好地了解和使用 Lighthouse CLI,让你的网站性能更出色!

当然,Lighthouse 还有更多的“隐藏技能”等待你去发掘。 比如使用不同的审计 (audits) 和收集器 (gatherers) 等,多查阅官方文档,你会发现更多惊喜!还在等什么,赶紧动手试试吧!

技术老兵 Lighthouse性能测试CLI

评论点评

打赏赞助
sponsor

感谢您的支持让我们更好的前行

分享

QRcode

https://www.webkt.com/article/8545