天天看點

網頁前端頁面加載性能測試各工具可行性方案分析 - 新技術動态

網頁前端頁面加載性能測試各工具可行性方案分析

網頁前端頁面加載性能測試各工具可行性方案分析

征對各個浏覽器和工具做了測試,之是以選擇的是百度首頁測試,因為其比較單一,沒有多層嵌套和持續加載,盡量減少其他影響,測試中發現目前有些方案是不可行的,後面征對各個測試結果給出了可行方案和不可行的建議。

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未能解決,需想辦法解決此問題!