基于Lighthouse与eggjs的性能指标分析系统

一个站点的性能表现直接影响了用户体验,衡量站点的性能指标工具有很多,Google推出的Lighthouse即是这样的工具, Lighthouse详细指标参数可以参考相关文档。LIghthouse既可以作为浏览器插件使用,也可以使用命令参数进行跑分。

本文的场景需求是:每天自动多次跑分,并将性能指标数据上传,生成报表,供产研测及时关注性能情况,或可用来确认版本迭代结果分析依据之一。

基于场景需求,项目整体使用Linux+Lighthouse+eggjs(nodejs)技术选型,以下相关版本,仅供参考:
nodejs版本:v10.7.0
ChromeDriver版本:76.0.3809.68
Google Chrome版本:76.0.3809.100
Lighthouse版本:5.2.0

Linux下安装Google chrome

1.下载最新包

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

2.安装查看

yum install ./google-chrome-stable_current_x86_64.rpm

// 查看是否安装成功
google-chrome --version

安装Google Chrome对应版本的ChromeDriver

可以在这http://chromedriver.storage.googleapis.com/index.html上面找对应版本的ChromeDriver,也是可以使用淘宝源https://npm.taobao.org/mirrors/chromedriver

// 下载
wget https://npm.taobao.org/mirrors/chromedriver/76.0.3809.68/chromedriver_linux64.zip

// 解压
unzip chromedriver_linux64.zip

// 移动到bin目录
move chromedriver /usr/bin/

// 查看是否安装成功
chromedriver --version

使用eggjs为服务端框架

关于eggjs详细请查阅egg官网,这里主要应用到了eggjs的定时任务模块https://eggjs.org/zh-cn/basics/schedule.html,根据自身需求设置好定时任务的执行间隔即可。

以下为执行Lighthouse的关键操作步骤

const exec = require('child_process').exec


const execStr = 'CHROME_PATH=$(which google-chrome) lighthouse http://baidu.com --disable-device-emulation=true --emulated-form-factor=desktop --output=json --locale=zh-CN --chrome-flags="--headless --no-sandbox"'


exec(execStr , {
 encoding: 'utf8',
  timeout: 0,
  maxBuffer: 5000 * 1024, 
  killSignal: 'SIGTERM'
}, function (error, stdout, stderr) {
  if (error) {
    reject(error)
  } else {
    resolve(stdout)
  }
})

拿到结果json后,选择需要上传的数据,上传至接口即可。

推荐阅读更多精彩内容

  • selenium+python配置chrome浏览器的选项 1. 背景 在使用selenium浏览器渲染技术,爬取...
    朝畫夕拾阅读 7,905评论 0 5
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 2,566评论 1 3
  • 原文地址:Getting Started with Headless Chrome By Eric Bidelm...
    朝曦阅读 10,988评论 0 7
  • 春节,在细雨霏霏中来到上海,一会天空中竟飘起了纷纷扬扬的雪。 景美 哇!好美呀!一个粉妆玉砌的世界。它半夜里,为了...
    12毛嘉怡阅读 136评论 0 0
  • 很荣幸今年在国地税改革之际进入了税务系统,单位报道后省局通知到宝鸡参加初任培训,开始以为就是个简单的培训而已,其他...
    红色的小萝卜阅读 1,977评论 2 1
  • 福建三明 小雨 04,今天是我23周岁的生日,农历8月初二,在此,我要特别的谢谢我的父母,是他们将我带到这个世界...
    古惑仔友情岁月阅读 114评论 0 0