性能測試框架Telemetry簡介

發表于:2018-04-03來源:gclxry作者:gclxry點擊數: 標簽:
elemetry是Chrome瀏覽器項目的一個性能測試框架。它允許你在頁面(或者是任何Android App)上自動化的執行任何操作,然后給你報告相關的性能指標。Telemetry支持Windows、Mac、Linux、Chrome OS、A

Telemetry是Chrome瀏覽器項目的一個性能測試框架。它允許你在頁面(或者是任何Android App)上自動化的執行任何操作,然后給你報告相關的性能指標。Telemetry支持Windows、Mac、Linux、Chrome OS、Android等平臺上的Chromium內核瀏覽器、ContentShell還有Android App的性能測試。它與瀏覽器的自動化測試通過DevTools Remote Debugging Protocol,與Android App的自動化測試通過adb shell。

之前我的同事@甚知 做過這方面的技術分享,最近我做瀏覽器內核升級,做性能對比,再次用起了Telemetry這個工具,研究了一兩個星期,寫篇博客總結一下。

Web Page Replay

性能測試的一個關鍵點是保證測試的可重復性。Telemetry使用了一種Web Page Replay技術來緩存所有的請求網絡數據,在后續的測試中再重放之前的網絡環境,保證了測試結果不會因為網絡環境的改變而產生偏差。

正常情況下,瀏覽器是直接從Internet中獲得網絡數據。Web Page Recorder先把程序請求網絡數據的情況保存在本地文件中。比如請求了什么資源,用了多久的時間。隨后我們進行性能的測試的時候,就不在需要再請求網絡了,而是直接根據之前記錄下來的數據,來還原之前的網絡狀況。

Telemetry介紹

以上是Telemetry一些重要的對象:

  • benchmark:測試基準,把measurement和StorySet組合在一起,對其他被測程序進行性能測試。
  • measurement(StoryTest),測試方法,它運行Story(Page),執行具體測量性能邏輯,并收集metric性能指標數據。
  • Story(Page),一個具體的測試場景,比如在某個網頁上面執行某些操作。
  • StorySet(page_sets),Story的集合,并有一些共享的數據。
  • metric ,性能指標,負責收集到的原始性能數據,并計算成恰當的性能結果
  • Timeline Based Measurement 一個內置的measurement,基于時間線的測量方式。

使用Telemetry使用Telemetry

運行benchmark進行性能測試之前,我需要錄制StorySet的wpr數據。如果沒有已經錄制的好的wpr數據,我們可以在運行run_benchmark腳本時加上–use-live-sites命令行參數,它會使用線上的網絡數據進行測試。

錄制StorySet網絡數據

錄制StorySet的wpr數據很簡單。StorySet里面有個archive_data_file的成員變量,它指定了保存StorySet網絡數據的文件路徑。運行以下命令:

python record_wpr aef_page_set --browser=system

它會自動打開系統安裝好的Chrome瀏覽器,并開始錄制aef_page_set這個StorySet所需的網絡數據,保存在archive_data_file所指定的路徑。

運行benchmark

運行以下腳本,開始運行aef.smoothness這個benchmark測試程序的流程性。我們在命令行里指定了程序的路徑和輸出結果的格式和輸出目錄:

python run_benchmark aef.smoothness --browser=exact --browser-executable="D:\to_xp\content_shell.exe" --output-format=html --output-dir="D:\telemetry\result\aef.smoothness"

run_benchmark這個腳本的命令行參數比較多,以下介紹一些常用的:

  • –browser。指定瀏覽器的類型。通常我們需要測試我們自己的瀏覽器,設置為–browser=excat,那么它就會根據–browser-executable參數的路徑值來啟動相應的程序。
  • –browser-executable。被測試程序的路徑,與–browser參數配合起來使用。
  • –output-format。輸出結果的格式。有chartjson、csv、 gtest、histograms、 html、json-test-results等格式。個人覺得html格式挺好的,有數據可視化的折線圖。
  • –use-live-sites。忽略本地的wpr數據,使用線上的網絡數據。

原文轉自:http://gclxry.com/telemetry-performance-testing-framework/

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97