網頁前端頁面加載性能測試各工具可行性方案分析
征對各個瀏覽器和工具做了測試,之所以選擇的是百度首頁測試,因為其比較單一,沒有多層嵌套和持續加載,盡量減少其他影響,測試中發現目前有些方案是不可行的,后面征對各個測試結果給出了可行方案和不可行的建議。
1 .webbrowser(內核IE10)和IE10瀏覽器的比較:
Webbrowser的測試方法為,先執行清除瀏覽器緩存,從開始導航開始計時,DocumentCompleted時間將2次觸發,取最后一次的時間,按照DocumentCompleted解釋,這個時間相當於全部元素loa完畢,測試結果如下:
接下來打開IE工具測試,先執行清除瀏覽器緩存測試結果如下
結論:經過多次測試,可以看到,Webbrowser和IE工具測試的結果相當接近!
Webbrowser 的DocumentCompleted時間即為IE工具的全部元素加載時間
2 HTTP抓包工具Fiddler結果測試:
結束時間
抓包IE10結果如下:
開始14:15:59:6241
結束14:16:00:1082 兩者間隔為481毫秒。
抓包Webbrowser結果如下:
開始14:18:37:4179
結束14:18:37:8689
兩者間隔451毫秒
結論:1.IE10和Webbrowser網絡加載時間基本相同,
2 問題:Fiddler抓包的數據大於瀏覽器的計算時間?這個是不是Fiddler數據有問題?
2.火狐的firebug工具測試:
先清除瀏覽器緩存:
然后再打開百度
結論:怎么測試都在2000毫秒以上,搞不懂為什么比IE慢那么多?直眼睛都看得出來比IE慢!
3. berserkjs測試
可以看到這個間隔時間為246秒,首屏時間為:1894毫秒
這個時間跟ie內核的差不多
Fiddler測試抓包:
14:34:09:7921
14:34:10:2181
426
可以發現Fiddler抓包時間大於berserkjs的測試時間!
.
然后我又使用IE10做了個測試,關閉Fiddler用webbrowser測試時間為186毫秒
打開Fiddler用webbrowser測試時間居然高達460毫秒!
4測試結論:
1. 瀏覽器對測試數據影響很大,3種種內核,最快的為webkit 246,也有可能這個東西沒有外圍的程序直接使用內核的關系,他是最快的,IE10次之為400,火狐最慢達到2000多,但是為什么火狐的速度那么慢,這個未能有答案。
2. 查找各種資料,發現類似Fiddler這種工具使用的原理是,啟動了Fiddler,程序將會把自己作為一個微軟互聯網服務的系統代理。作為系統代理,所有的來自微軟互聯網服務(WinInet)的http請求再到達目標Web服務器的之前都會經過Fiddle,同樣的,所有的Http響應都會在返回客戶端之前流經Fiddler,那么這就能解釋為什么開啟Fiddler后速度變慢了!
這個就是經常說的網絡劫持,類似的工具還有httpwach,httpanalyzer等,由此可見這種原理的測試數據會導致數據偏離實際,不建議使用!
3. 不能使用Fiddler這種原理,由於webbrowser有限的功能和擴展,基本上不能取到har里面的數據,這個方案將不可行!
4. 建議:使用berserkjs方案,目前IP未能解決,需想辦法解決此問題!