基于Lighthouse與eggjs的性能指標分析系統(tǒng)

一個站點的性能表現直接影響了用戶體驗,衡量站點的性能指標工具有很多蝗岖,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赞赖,根據自身需求設置好定時任務的執(zhí)行間隔即可。

以下為執(zhí)行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后冤灾,選擇需要上傳的數據前域,上傳至接口即可。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末韵吨,一起剝皮案震驚了整個濱河市匿垄,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖椿疗,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漏峰,死亡現場離奇詭異,居然都是意外死亡届榄,警方通過查閱死者的電腦和手機浅乔,發(fā)現死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铝条,“玉大人靖苇,你說我怎么就攤上這事」ド梗” “怎么了顾复?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鲁捏。 經常有香客問我芯砸,道長,這世上最難降的妖魔是什么给梅? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任假丧,我火速辦了婚禮,結果婚禮上动羽,老公的妹妹穿的比我還像新娘包帚。我一直安慰自己,他們只是感情好运吓,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布渴邦。 她就那樣靜靜地躺著,像睡著了一般拘哨。 火紅的嫁衣襯著肌膚如雪谋梭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天倦青,我揣著相機與錄音瓮床,去河邊找鬼。 笑死产镐,一個胖子當著我的面吹牛隘庄,可吹牛的內容都是我干的。 我是一名探鬼主播癣亚,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼丑掺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了述雾?” 一聲冷哼從身側響起吼鱼,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蓬豁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后菇肃,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡取募,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年琐谤,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玩敏。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡斗忌,死狀恐怖,靈堂內的尸體忽然破棺而出旺聚,到底是詐尸還是另有隱情织阳,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布砰粹,位于F島的核電站唧躲,受9級特大地震影響,放射性物質發(fā)生泄漏碱璃。R本人自食惡果不足惜弄痹,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嵌器。 院中可真熱鬧肛真,春花似錦、人聲如沸爽航。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽讥珍。三九已至历极,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間串述,已是汗流浹背执解。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纲酗,地道東北人衰腌。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像觅赊,于是被迫代替她去往敵國和親右蕊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內容

  • selenium+python配置chrome瀏覽器的選項 1. 背景 在使用selenium瀏覽器渲染技術吮螺,爬取...
    朝畫夕拾閱讀 9,007評論 0 5
  • # Python 資源大全中文版 我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列...
    小邁克閱讀 2,995評論 1 3
  • 原文地址:Getting Started with Headless Chrome By Eric Bidelm...
    朝曦閱讀 12,423評論 0 7
  • 春節(jié)饶囚,在細雨霏霏中來到上海帕翻,一會天空中竟飄起了紛紛揚揚的雪。 景美 哇萝风!好美呀嘀掸!一個粉妝玉砌的世界。它半夜里规惰,為了...
    12毛嘉怡閱讀 167評論 0 0
  • 很榮幸今年在國地稅改革之際進入了稅務系統(tǒng)睬塌,單位報道后省局通知到寶雞參加初任培訓,開始以為就是個簡單的培訓而已歇万,其他...
    紅色的小蘿卜閱讀 3,207評論 2 1