一、背景
1.多:進一步拓展瞭解Perfdog特性,優點多;
2.好:採用Perfdog進行APP進行性能分析,好用;
3.快:快速發現性能瓶頸進行調優,形成測試閉環;
**PerfDog的使用前面已有澄清:騰訊客戶端性能測試利器PerfDog使用
二、如何測試小程序性能
Perfdog支持多進程測試。
1.Android平臺,一般大型APP,比如遊戲有時候是多進程協作運行(微信小遊戲,微視等APP及王者榮耀等遊戲多子進程),可選擇目標子進程進行鍼對性測試。默認是主進程。如下圖王者榮耀:
微信小遊戲、小程序測試等,如下是微信小遊戲-浪漫玫瑰園:
備註:子程序進程名高亮顯示,表示當前子進程處於頂層。
2.iOS平臺,APP多進程分爲APP Extension和系統XPC Server。 比如:某電競直播軟件用到APP Extension擴展進程(擴展進程名LABroadcastUpload)。當然也可能用到系統XPC Server服務進程,如一般web瀏覽器會用到webkit。
三、案例實操
1.測試概要
一、【XXX】小程序性能測試需求的基本信息 |
|
1、測試需求 |
1.不同場景下的網絡類型覆蓋; 2.不同場景下的響應時間記錄; 3.不能場景下的主要性能參數記錄(FPS、內存、CPU佔用); |
2、測試項 |
1.APP端主要性能數據(內存、CPU佔用、FPS)。2.響應時間。3.網絡類型覆蓋。 |
3、測試環境 |
手機端型號及版本:一加5 Android 9.0 安裝包:小程序體驗版V1.0.0.0.qa6 |
4、測試地點 |
家中(在家辦公) |
5、測試網絡 |
移動(4G) |
6、測試方法 |
詳見《性能測試方案》 |
7、通過標準 |
相關bug都已解決即爲通過 |
8、測試時間 |
2020/3/19 |
9、測試人員XX |
X |
10、需求溝通人員 |
XX |
2.網絡標準
場景 |
網絡 |
|
網速 |
預置條件 |
是否執行 |
預期結果 |
場景1 |
WiFi |
正常網絡 |
極好網絡(大於1MKBytes/S) |
工位上測試(可能有網絡干擾) |
否 |
/ |
場景2 |
較好網絡(大於500KBytes/S , 小於1000KBytes/S) |
工位上測試(可能有網絡干擾) |
否 |
/ |
||
場景3 |
正常網絡(大於300KBytes/S , 小於500KBytes/S) |
工位上測試(可能有網絡干擾) |
否 |
二期需求 |
||
場景4 |
弱網絡 |
較弱網絡(大於100KBytes/S , 小於300KBytes/S) |
工位上測試(可能有網絡干擾) |
否 |
二期需求 |
|
場景5 |
弱網絡(大於30KBytes/S , 小於100KBytes/S) |
工位上測試(可能有網絡干擾) |
否 |
/ |
||
場景6 |
極弱網絡(小於30KBytes/S ) |
工位上測試(可能有網絡干擾) |
否 |
/ |
||
場景7 |
運營商4G |
正常網絡 |
信號強 |
運營商網絡 |
是 |
一期需求 |
場景8 |
弱網絡 |
信號弱(信號輕度值<-90dbm) |
否 |
/
|
3.性能測試方案
測試描述 |
分別測試不同場景(見場景描述)和不同網絡環境(WiFi和4G)組合下,其性能參數是否符合標準。若不符合標準,則需給與調優和驗證。 |
||||||||||||||||
測試標準 |
1.小程序參考APP端性能標準:FPS>25,平均CPU佔用低於60%,內存<1000M。 2.響應時間:2S內爲良好、2S~5S爲勉強接受、8S以上爲不能接受。 |
||||||||||||||||
測試工具和計算方式 |
主要依據微信小程序的H5頁面進行測試: 1.方案一:使用騰訊Perfdog,分別對主場景逐個錄製(操作步驟見分場景),並將數據保存到本地和雲盤,統計平均值:FPS、內存、CPU佔用率。 2.方案二:微信小程序性能控制面板,實時打印性能參數,以及保存到Trace工具。 |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
主場景描述 |
分場景描述 |
網絡環境 |
性能參數 |
是否通過 |
BUG ID |
備註 |
|||||||||||
FPS(Max) |
FPS(Min) |
FPS(AVG) |
內存(Max) |
內存(Min) |
內存(AVG) |
CPU佔用率(Max) |
CPU佔用率(Min) |
CPU佔用率(AVG) |
響應時間(Max) |
響應時間(Min) |
響應時間(AVG) |
||||||
主場景1 |
分場景1(內容較多,見[性能測試結果]中的C列) |
WiFi(正常)/運營商4G(正常)/WiFi(弱網) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
..... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
分場景n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
...... |
分場景1 |
WiFi(正常)/運營商4G(正常)/WiFi(弱網) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
..... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
..... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
主場景n |
分場景1 |
WiFi(正常)/運營商4G(正常)/WiFi(弱網) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
..... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
分場景n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
四、性能標準
備註:後期PerfDog會細分各個類型APP和遊戲參考標準。 請參考2019年中國移動遊戲質量白皮書: https://wetest.qq.com/white-paper/white-paper-2019
五、性能報告查看
1.報告查看與APP端類似:騰訊客戶端性能測試利器PerfDog使用
2.性能數據記錄分析
序號 |
優先級 |
主場景 |
分場景 |
網絡環境 |
結果URL |
是否通過 |
BUG ID |
備註 |
||||||||||
響應時間(AVG) |
FPS(Max) |
FPS(Min) |
FPS(AVG) |
內存(Max) |
內存(Min) |
內存(AVG) |
CPU佔用率(Max,%) |
CPU佔用率(Min,%) |
CPU佔用率(AVG,%) |
|||||||||
1 |
中 |
入口 |
1.APP入口進入並授權後,跳轉XX小程序。 |
運營商4G |
/ |
8.81 |
/ |
/ |
/ |
/ |
/ |
/ |
/ |
/ |
/ |
否 |
483XXX |
APP跳小程序時間較長,開發目前排查跳轉是微信SDK導致 |
2 |
中 |
首頁展示規則 |
2.身份選擇後,進入首頁 |
運營商4G |
4.85 |
|||||||||||||
3 |
中 |
首頁靜置1分鐘 |
首頁靜置1分鐘 |
運營商4G |
https://perfdog.qq.com/case_detail/XXXXXX Password: cvPsrZ |
/ |
1.00 |
10.00 |
3.30 |
340.00 |
320.00 |
327.80 |
11.00 |
4.00 |
7.20 |
是 |
/ |
|
3.測試結論
測試總結 |
|
1、測試概述 |
1.微信授權後跳轉小程序慢(約8.81S)、小程序授權後跳轉首頁慢(4.85S):開發排查是微信SDK導致,暫無優化控件; 2.多媒體資源預覽慢(依據不通過資源類型和大小在5S以上不等):開發排查,其引用微信自帶組件解析,但預覽慢,則是網絡和內部內容服務器導致,預計需要內部內容服務器先優化; 3.視頻的壓縮慢和上傳慢(拍攝30S視頻,壓縮4.47S,上傳12.21S):開發排查壓縮使用微信自帶組件,暫無優化空間。上傳採用內部內容服務器組件,預計需要內部內容服務器優化; 4.內存和CPU佔用較多(內存最高968M,CPU佔用最高88%):開發排查主要在列表頁,數據量較大導致,且退出列表自帶GC,暫未出現異常,暫無優化空間; |
2、已知風險/問題 |
暫無競品對比,方法論平臺中暫未體現。 |
3、測試結論 |
測試不通過,存在加載慢和性能佔用較高的情況,具體見[測試概述]。 |
4、是否推薦 |
請產品負責人根據現有數據評估產品質量,再決定是否使用。 |
六、案例分析
案例一:
1)BUG描述:【性能】網盤:首次打開圖片,iOS端預覽圖片比Android慢16S+,建議優化。
解決方案: 圖片瀏覽使用微信圖片瀏覽控件,無優化空間。 開發排查部分iOS設備很快加載,應該是網絡,或者內部內容服務器慢導致的。
案例二:
1)BUG描述:【性能】在編輯任務中網盤列表滑動內存持續上漲:平均內存729M,最大內存1026。在首頁平均內存402M,最大內存447。
2)解決方案: 網盤內存佔用比首頁高的原因是,網盤每個item都帶有一個縮略圖,且每個NDR文件元信息都含有很多內容。所以會比網盤的內存佔用會高。 JS語言自帶垃圾回收機制,所以暫無接入內存管理的必要。
七、小結
1、工具的特性
2、性能測試
3、性能調優