1. 程式人生 > 其它 >App效能測試之SoloPi

App效能測試之SoloPi

主要講述App效能測試工具Solopi的使用。

SoloPi簡介

SoloPi是螞蟻金服開發的一款無線化、非侵入、免Root的Android專項測試工具。直接操控安卓系統的手機或智慧裝置,即可完成自動化的功能、效能、相容性、以及穩定性測試等工作,降低廣大測試開發者的測試成本,提升測試效率。

SoloPi特點

1、免費開源
2、純Java開發
3、可跨平臺
4、輕量級,apk僅4.50 MB
5、使用adb命令 ,安裝簡單
6、本身對CPU、記憶體佔用極小,基本可以忽略不計
7、操作簡單
8、使用Apache-2.0授權協議

SoloPi的主要功能

SoloPi擁有錄製回放、效能測試、一機多控三項主要功能。同時,SoloPi還支援效能加壓,能夠對CPU、記憶體與網路環境進行限制,復現應用在效能較差、網路環境不佳場景下的表現。除了常規效能指標,SoloPi還提供了啟動耗時計算工具,測試同學只需要點選兩次按鈕,就可以得到最貼近使用者體驗的啟動耗時資料。同時,啟動耗時計算工具還可以通過廣播呼叫,可以非常方便地與UI自動化測試打通。

下載SoloPi

1、安卓桌面

連結:https://pan.baidu.com/s/1MVi6gbiFPC7Ds9ySwbz2lQ
提取碼:zq6v

2、SoloPi(版本0.11.1)

連結:https://pan.baidu.com/s/18mTpsMMb20FU5N4GGPslsQ
提取碼:ss2a

SoloPi 最新版本下載地址: https://github.com/alipay/SoloPi/releases

安裝SoloPi

1、安裝並配置ADB環境變數

2、用資料線連線電腦和被測安卓手機或智慧裝置

3、輸入cmd回車,開啟命令列視窗,執行如下命令安裝桌面:

C:\Users\User>adb install -r C:\Users\User\Desktop\小康安裝工具\desktop.apk
Success

說明:如果是安卓手機,請跳過此步驟。

4、執行如下命令安裝SoloPi

C:\Users\User>adb install -r C:\Users\User\Desktop\小康安裝工具\SoloPi.apk
Success

說明:可以在安裝命令後直接將本地apk檔案拖拽進去,回車執行安裝命令。出現Success說明安裝成功。

5、安裝好SoloPi以後,首次開啟需要進行一些授權操作。

(1)申請ADB許可權

在命令列視窗輸入adb tcpip 5555 命令後,點選【重試】即可。

(2)申請浮窗許可權

請點選【前往授權】,授予SoloPi顯示懸浮窗的許可權,然後返回該介面點選【我已授權】。SoloPi在執行過程中需要懸浮窗來展示實時資料或者通過操作懸浮窗來執行操作。

(3)新增到後臺白名單

SoloPi需要長時間在後臺執行以監控應用的效能或者執行操作,為防止Android系統將SoloPi程序回收,需要使用者手動將SoloPi新增到後臺白名單中。可以選擇不再提示,之後SoloPi將不再對新增白名單進行提示。

(4)申請相機、錄製螢幕許可權

對於一機多控,SoloPi需要額外申請相機、錄製螢幕許可權,用於主從機的掃描連線和響應耗時計算。

使用SoloPi進行效能測試

1、介紹

記錄待測應用的各項效能指標,支援實時觀察模式與錄製模式,支援通過圖表展示以往錄製的資料,另外支援效能加壓與響應耗時計算功能。

效能資料檢視與記錄

  1. 勾選效能項,Solopi會展示對應的效能指標

    在進入應用前,Solopi會顯示全域性指標,進入應用後,Solopi會顯示應用最上層程序的相關效能指標。

    CPU、記憶體指標為程序維度,響應耗時、幀率、網路為應用維度,電池為全域性指標。

    具體效能指標描述請參考後文效能指標一段。

  1. 點選懸浮窗中的應用標題,進入目標應用,切換為程序維度資料

  2. 點選開始按鈕(綠色三角),進行效能資料錄製,可進行相關操作

  3. 結束錄製,點選終止按鈕(紅色圓形),Solopi會提示錄製資料存放的位置,資料儲存在/sdcard/solopi/records/XXX目錄下

    錄製資料為csv格式,包含三列,第一列為Unix時間戳,第二列為資料數值,第三列為額外欄位

  4. 點選懸浮窗右上角關閉鍵(紅色"X")可關閉懸浮窗,需要手動回到效能測試頁面,可在錄製資料檢視一項中檢視之前錄製過的資料。

  5. 在錄製項篩選中,可以選擇之前錄製的各項資料進行觀看,記憶體與CPU會記錄在頂層出現過的程序的資料。如果發生了程序切換,會記錄前後10次資料。

  6. 當錄製項過多時,可以點選右上角刪除圖示,對舊資料進行刪除。

環境加壓

Solopi提供了環境加壓的功能,可以提供CPU與記憶體加壓

由於android系統的排程,CPU與記憶體加壓均存在一定限制,當應用處於後臺狀態時,CPU加壓佔比會遭到一定程度的限制,而記憶體加壓過大可能導致Solopi被系統進行回收,敬請諒解。

  1. 記憶體加壓

  2. CPU加壓

響應耗時計算工具

Solopi響應耗時計算工具,通過錄屏分幀的方式自動識別起始點和結束點,精確計算耗時。

視訊演示

響應耗時計算

特性

  • 模擬使用者視覺,計算結果更貼近使用者體驗
  • 自動記錄點選起始點,自動識別螢幕變化結束點
  • 通過OpenCV進行影象識別
  • 支援原生應用、H5、遊戲
  • 支援啟動耗時、頁面跳轉耗時、列表滑動耗時、動畫耗時

使用方法

  1. 進入Solopi效能測試頁面,點選啟動耗時計算。

  2. 建議預設引數無需修改,點選啟動按鈕,會彈出錄製浮窗。

  3. 切換至待測應用,並進入操作路徑的起始頁面。

    如果不需要關注細微的動畫,請將二值對比差異設定為2%

  4. 點選開始錄製(按鈕會變為結束錄製),然後在被測應用介面執行操作

  5. 當頁面停止變化後,點選結束錄製。幾秒後會顯示測試結果。

注意事項

  • 結束頁存在輪播圖?
    • 請在進入結果頁後,在輪播圖變化前點選結束錄製
  • 測試結果異常:過大,過小,或為負數?
    • 本次結果失效,請重新測算。結果以多次測算後穩定的結果為準。
  • 結束錄製後,一直阻塞在計算中?
    • 請關閉浮窗,退出Solopi,重新開啟耗時計算工具進行測算。

Solopi提供的各項效能指標介紹

CPU

​ 包含應用頂層Activity所在程序的CPU佔用百分比與全域性CPU佔用百分比,對於單程序應用,該資料表示該應用的CPU佔用情況;對於多程序程序應用,該資料表示頂層UI程序的CPU佔用情況,當發生程序切換時,Solopi能夠自動切換到新的程序資料。

記憶體

​ 包含應用頂層Activity所在程序的PSS(Proportional Set Size,即實際使用記憶體)記憶體、Private Dirty(私有記憶體)記憶體與全域性佔用記憶體,對於單程序應用,該資料表示該應用的記憶體佔用情況;對於多程序程序應用,同CPU一樣,Solopi也支援自動切換頂層程序。

幀率

​ 包含應用實際幀率,延遲幀數、1秒內單幀最長延遲時間與延遲幀數佔所有幀數的百分比。屬於應用維度資料。目前Solopi是根據裝置gfxinfo資訊計算1秒內超時幀時間,從而反推出實際幀率,所以在接近靜止的情況下, 部分幀率可能顯示有誤。推薦在滑動或頁面切換等動態場景下進行幀率測試。

網路

​ 包含應用上下行速率與累計流量以及全域性上下行速率與累計流量。屬於應用維度資料。點選右側清零按鈕可以清空累計資料。

響應耗時

​ 包含應用點選的響應耗時與重新整理耗時資料。屬於應用維度資料。從使用者點選開始,到系統第一次發出介面更新時間為響應耗時,到系統停止介面重新整理的時間為重新整理耗時。

當目標頁面存在動畫時,可能影響響應耗時計算的準確性。

電池

​ 包含裝置瞬時電流與電流均值。屬於全域性維度資料。點選右側清零按鈕可以清空電流累計資料。

部分裝置存在瞬時電流更新緩慢的情況,這種情況下均值意義較小。

參考博文:

https://github.com/alipay/SoloPi/wiki/Performance

https://mp.weixin.qq.com/s?__biz=MzUyMDk2MzUzMQ==&mid=2247484525&idx=1&sn=bbffc3fe4e04dd1d6bf95fad931138e2&chksm=f9e310c9ce9499df7a3907f9cf4e502d7048548d27de9737b2197a0ec19b774feee6a1cdb151&token=1461221376&lang=zh_CN#rd

https://mp.weixin.qq.com/s?__biz=MzUyMDk2MzUzMQ==&mid=2247484490&idx=1&sn=01fd42b863299d47cc79e8ed054b0c61&chksm=f9e310eece9499f89d582aa2a1f00dc2cad11c5ffc0acd7fb69e9bc79c1f0e6af217ef636a96&mpshare=1&scene=1&srcid=&pass_ticket=ATq1haXijWPlAUX+24MQZWKiWMmfI4kFXnO3KG9KHVvJQkOcZZZrYSIFDXlplIB1#rd