移動全平台性能測試分析工具:PerfDog性能狗


PerfDog是騰訊出品的移動端性能測試工具,致力於提升移動應用和游戲的性能和品質,主打游戲APP,當然應用APP也能用。

 

介紹:

移動全平台iOS/Android性能測試、分析工具平台。快速定位分析性能問題,提升APP應用及游戲性能和品質。手機無需ROOT/越獄,手機硬件、游戲及應用APP也無需做任何修改,極簡化即插即用。

PerfDog支持移動平台所有應用程序(游戲、APP應用、瀏覽器、小程序、小游戲、H5、后台系統進程等)、Android模擬器、雲真機等性能測試。支持APP多進程測試(如Android多子進程及iOS擴展進程APP Extension)。

Windows & Mac OS X平台PerfDog桌面應用程序版本都支持對iOS和Android設備進行測試。PC上PerfDog可多開,單PC可同時測試多台手機。

 

安裝及運行:

步驟1:登錄PerfDog官網https://perfdog.qq.com/,根據您的PC平台選擇想要下載的桌面應用程序.

  • Windows平台:解壓下載包,雙擊打開PerfDog.exe桌面應用程序。

  • Mac平台:直接運行dmg桌面應用程序。

 

步驟2:USB連接手機,自動檢測添加手機到應用列表中。

  • iOS:則即插即用,用戶無需做任何操作。若PerfDog檢測不到連接手機或無法測試,請先安裝確保最新itunes是否能連上手機(最新itunes可在QQ管家上直接下載安裝)。

  • Android:有兩種模式,非安裝模式和安裝模式。(注:請開啟手機USB調試模式及允許USB應用安裝。)。

非安裝模式:

手機即插即用,無需任何設置及安裝,使用非常簡單,但手機屏幕上沒有實時性能數據顯示。安裝模式:需要在手機上自動安裝PerfDog.apk,手機屏幕上有實時性能數據顯示(允許USB應用安裝和PerfDog懸浮窗管理權限),啟動PC版PerfDog.exe,則會在手機上自動PUSH安裝PerfDog.apk,具體安裝類似各個手機廠商安裝第三方APP提示安裝即可。(注:由於很多手機安裝需要賬號密碼,導致無法自動安裝,如果自動安裝失敗,則會把安裝文件PerfDog.apk釋放到當前文件夾里,手動安裝PerfDog.apk即可)。此模式下,在測試過程中,可能由於系統資源緊缺會kill PerfDog顯示app(手機界面性能數據顯示),但不影響正常測試功能。

 

步驟3:測試模式

 

 

 

  • USB模式測試:USB連線后,在設備列表選擇USB圖標設備進行USB模式測試

  • WIFI模式測試(測試功率):只能在WIFI模式測試功率等信息。USB連線后,在設備列表選擇WIFI圖標設備進行WIFI模式測試。WIFI檢測連接成功后,拔掉USB連接線。(注:需要PC和被測手機連接同一WIFI,WIFI檢測連接成功后,拔掉被測手機USB線(USB模式測試功率無任何意義,會充電))(備注:一般公司WIFI可能做了安全策略限制,導致iOS平台在公司WIFI下無法使用)

 

步驟4:選擇測試的游戲&應用

PC如圖:

 

 

 

 

Android平台,安裝模式下,手機屏幕左上角有實時性能數據顯示(Android手機請打開PerfDog懸浮窗管理權限,否則手機上不會顯示性能參數)

 

 

  

軟件性能數據采集:

iOS平台(蘋果官方Xcode工具參數對齊。注:iOS系統對進程性能參數做嚴格限制,超過限制則會被系統kill)

  • ScreenShot(只支持USB模式)

  • FPS(1秒內游戲畫面或者應用界面真實平均刷新次數,俗稱幀率/FPS)

1) Avg(FPS):平均幀率(一段時間內平均FPS)2) Var(FPS):幀率方差(一段時間內FPS方差)3) Drop(FPS):降幀次數(平均每小時相鄰兩個FPS點下降大於8幀的次數)

  • Jank(1s內卡頓次數。iOS9.1以下系統暫時不支持。類似Android的Jank卡頓和iOS的FramePacing平滑度統計原理。幀率FPS高並不能反映流暢或不卡頓。比如:FPS為50幀,前200ms渲染一幀,后800ms渲染49幀,雖然幀率50,但依然覺得非常卡頓。同時幀率FPS低,並不代表卡頓,比如無卡頓時均勻FPS為15幀。所以平均幀率FPS與卡頓無任何直接關系) 

  1)BigJank:1s內嚴重卡頓次數

  2)Jank(/10min):平均每10分鍾卡頓次數。

  3)BigJank(/10min):平均每10分鍾嚴重卡頓次數

 

  PerfDog Jank計算方法:

  1.同時滿足以下兩條件,則認為是一次卡頓Jank.

  a) 當前幀耗時>前三幀平均耗時2倍。

  b) 當前幀耗時>兩幀電影幀耗時(1000ms/24*2=84ms)。

  2.同時滿足兩條件,則認為是一次嚴重卡頓BigJank.

  a) 當前幀耗時>前三幀平均耗時2倍。

  b) 當前幀耗時>三幀電影幀耗時(1000ms/24*3=125ms)。

 

  • FTime(上下幀畫面顯示時間間隔,即認為幀耗時,iOS9.1以下系統暫時不支持)

  1) Avg(FTime):平均幀耗時

  2) Delta(FTime):增量耗時(平均每小時兩幀之間時間差>100ms的次數)

 

  • CPU Usage(TotalCPU表示整機CPU使用率,AppCPU表示進程CPU使用率,統計結果和Xcode一致,PerfDog使用率=Xcode使用率/核心數。備注:iOS平台CPU Usage是未規范化CPU使用率。

 

  • Memory (是統計FootPrint,注:OOM與FootPrint有關,與系統、機型無關。只與RAM有關,如1G內存機器。FootPrint超過650MB,引發OOM)。注:PerfDog暫時在iOS9、10系統無法獲取,其他版本ok。后續版本增加。如做性能測試,建議升級iOS系統版本

 

  • Xcode Memory (XCode Debug gauges統計方式即XCode Memory)。注:iOS9、10系統暫時無法獲取,其他版本ok。后續版本增加。如做性能測試,建議升級iOS系統版本。

     

  • Real Memory(Xcode Instrument統計方式即Real Memory,實際占用物理內存。注:物理內存系統策略有關,衡量內存指標時不會關注,但是它有助於分析定位整體性能問題。比如:footprint沒有降低,說明應用沒有釋放內存,但是real memory卻降低了,說明系統對內存做了壓縮。由於壓縮會占用CPU資源,同時相應會導致FPS降低)

     

  • Virtual Memory(虛擬內存)

     

  • Wakeups(線程喚醒次數。注:超過150進程很大可能會被系統kill。a sleep/wake cycle on each thread per second,Exceeding limit of 150 wakeups per second over 300 seconds,特別是iOS13.2悶殺后台進程事件,建議重點關注)

     

  • CSwitch(上下文切換測試。注:單核超過14000進程會被系統Kill。Context Switch Limit 14000(Core/Second)

     

  • GPU Utilization

  1) Render:渲染器利用率(像素着色處理階段,若占比高,說明是PS階段出現瓶頸,shader過於復雜或紋理大小、采樣復雜等)

  2) Tiler: Tiler利用率(頂點着色處理階段,若占比高,說明是VS階段出現瓶頸,頂點數太多等原因)

  3) Device:設備利用率(整體GPU利用率)

 

  • Network(Recv/Send,測試目標進程流量,統計結果和Xcode一致)

     

  • BTemp(電池溫度)

     

  • Battery Power(整機實時Current電流、Voltage電壓、Power功耗)

  注1:20s獲取一次,目前最精准的統計方式,結果和Battery life結果一致,支持所有iOS機型

  注2:Sum(Battery)是耗電量。

 

  • Energy Usage(即為Xcode Energy Impact。監控應用使用的能耗情況(包括CPU、GPU、NetWork、Location、Display (iPhone X only)、Overhead)。(注:和Xcode Energy Impact結果一致。有線模式下測試,支持iOS9及以上系統。Total Energy<=270為Low,270<Total Energy<=1000為High,Total Energy>1000為Very High)。

 

  • Log日志采集(WIFI模式下,不支持Log收集)

 

Android平台

  • ScreenShot(只支持USB模式) 

  • FPS(1秒內游戲畫面或者應用界面真實平均刷新次數,俗稱幀率/FPS)

  1) Avg(FPS):平均幀率(一段時間內平均FPS)

  2) Var(FPS):幀率方差(一段時間內FPS方差)

  3) Drop(FPS):降幀次數(平均每小時相鄰兩個FPS點下降大於8幀的次數)

  備注:高階FPS功能-Android窗口與FPS

 

  • Jank(1S內卡頓次數。解釋說明如iOS平台說明)

  1) BigJank:1s內嚴重卡頓次數

  2) Jank(/10分鍾):平均每10分鍾卡頓次數。

  3) BigJank(/10分鍾):平均每10分鍾嚴重卡頓次數

 

  • FTime(上下幀畫面顯示時間間隔,即認為幀耗時)

  1) Avg(FTime):平均幀耗時

  2) Delta(FTime):增量耗時(平均每小時兩幀之間時間差>100ms的次數)

 

  • CPU Usage(傳統CPU利用率,也叫未規范化CPU利用率,TotalCPU表示整機未規范化CPU使用率,AppCPU表示進程未規范化CPU使用率。備注:統計結果和Android Studio Profiler一致。

     

  • CPU Usage (Normalized)(規范化CPU利用率,TotalCPU表示整機規范化CPU使用率,AppCPU表示進程規范化CPU使用率。備注:建議參考規范化CPU利用率,性能參考更精准。

     

  • CPU Clock(各個CPU核心的未規范化頻率和未規范化使用率)

     

  • CPU Clock (Normalized) (各個CPU核心的規范化頻率和規范化使用率)

     

  • Memory (PSS Memory,統計結果和Android Java API標准結果一致,與Meminfo也一致。注:部分三星機器系統修改了Meminfo底層統計方式,導致Meminfo與Java AP統計結果不一致,新出三星機器已修復)

     

  • Swap Memory (Swap Memory,部分設備支持Swap功能,在啟用Swap功能后,系統會對PSS內存進行壓縮,Swap增加,PSS會相應減少,由於壓縮會占用CPU資源,同時相應會導致FPS降低)

     

  • Virtual Memory(VSS)

     

  • Memory Detail(NativePSS、GFX、GL、Unknown)

     

  • GPU Usage(目前僅支持部分高通芯片手機)。注:Top Android GPU測試機型,請參考:https://bbs.perfdog.qq.com/detail-195.html

     

  • GPU Frequency(目前僅支持部分高通芯片手機)。

     

  • Network(Recv/Send,測試目標進程流量)

     

  • CTemp(CPU溫度)

    Battery Power(Current電流、Voltage電壓、Power功耗)(注:與儀器測試誤差<3%左右)。注:Sum(Battery)是耗電量。

     

  • Log日志采集(WIFI模式下,不支持Log收集)

 

Web性能數據管理:

  • 賬戶信息管理

  • 性能數據管理、圖表展示、編輯、大版本對比

  • 性能數據統計、分析及多維度對比等

  • 性能測試任務管理

 

軟件功能介紹:

1.性能參數控制Page:

點擊”+ ”按鈕,選擇需要收集性能參數,控制性能參數顯示page

 

  

2.記錄保存:

 

  

測試結束時,可自主選擇兩種方式保存處理(Upload/Save)性能數據:

1) 將性能數據同步上傳PerfDog雲端web看板

 

 

 

 

2)本地導出Excel文件

 

 

3.記錄回放(方便回看分析):

打開要回放文件

 

 

回放結果如圖:

 

 

4.批注及標定(鼠標左鍵雙擊,則批注。左鍵雙擊已生成的批注,則取消。鼠標左鍵單擊,則標定):

 

 

5.設定性能參數統計分析閾值、編輯統計參數分析及框選記錄保存(對齊TDR標准):

可以通過鼠標框選/拖動查詢時間周期內,統計數據等。同時可對框選數據進行保存。右邊可以設定對應的性能參數統計分析閾值等。

 

 

6.場景Label標簽:

通過標簽按鈕給性能數據打標簽,鼠標左鍵雙擊顏色區域可修改對應區域標簽名

 

 

7.屏幕記錄:

注意:截屏記錄開啟,影響性能

 

8.多進程測試:

  • iOS平台,APP多進程分為APP Extension和系統XPC Server。

    比如:某電競直播軟件用到APP Extension擴展進程(擴展進程名LABroadcastUpload)。當然也可能用到系統XPC Server服務進程,如一般web瀏覽器會用到webkit。

  • Android平台,一般大型APP,比如游戲有時候是多進程協作運行(微信小游戲,微視等APP及王者榮耀等游戲多子進程),可選擇目標子進程進行針對性測試。默認是主進程。如圖王者榮耀

 

 

微信小游戲、小程序測試等,如下是微信小游戲-浪漫玫瑰園

 

 

備注:子程序進程名高亮顯示,表示當前子進程處於頂層。

 

9.FPS高階功能(Android平台):

滿足高級用戶更精准測試窗口幀率(游戲、小游戲、小程序、直播、視頻類、web等所有應用都適用)。

 

10.Log日志功能:

采集系統日志信息。

 

 

11.停止功能:

無需拔手機,StopProfilling即可停止采集信息。

 

12.自定義數據文件服務器地址,構建自己web雲:

可修改數據文件服務器上傳地址。Post上傳http協議格式文件至自己服務器地址。

 

 

Web雲平台功能介紹:

1.個人性能數據MyData。

 

 

具體性能數據展示。

 

 

2.測試任務管理

創建任務邀請測試成員加入,或加入其他人創建的測試任務中。

 

 

3.性能數據共享歸納

 

 

4.測試任務性能數據Task Data

 

 

5.數據報告隱私分享

 

 

6.Case報告多維度對比(詳情、機型、版本、比例、區間、趨勢、拖拉縮放等)。

 

 

比例、區間、趨勢、拖拉縮放等對比(鼠標左右拖動性能曲線)

 

 

--------------------------------------------------------------------------------

關注微信公眾號(測試工程師小站)即可在手機上查閱,並可接收更多測試分享,發送【測試資料】更可獲取百G測試教程~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM