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、介紹
記錄待測應用的各項性能指標,支持實時觀察模式與錄制模式,支持通過圖表展示以往錄制的數據,另外支持性能加壓與響應耗時計算功能。
性能數據查看與記錄
-
勾選性能項,Solopi會展示對應的性能指標
在進入應用前,Solopi會顯示全局指標,進入應用后,Solopi會顯示應用最上層進程的相關性能指標。
CPU、內存指標為進程維度,響應耗時、幀率、網絡為應用維度,電池為全局指標。
具體性能指標描述請參考后文性能指標一段。
-
點擊懸浮窗中的應用標題,進入目標應用,切換為進程維度數據
-
點擊開始按鈕(綠色三角),進行性能數據錄制,可進行相關操作
-
結束錄制,點擊終止按鈕(紅色圓形),Solopi會提示錄制數據存放的位置,數據保存在
/sdcard/solopi/records/XXX
目錄下錄制數據為csv格式,包含三列,第一列為Unix時間戳,第二列為數據數值,第三列為額外字段
-
點擊懸浮窗右上角關閉鍵(紅色"X")可關閉懸浮窗,需要手動回到性能測試頁面,可在錄制數據查看一項中查看之前錄制過的數據。
-
在錄制項篩選中,可以選擇之前錄制的各項數據進行觀看,內存與CPU會記錄在頂層出現過的進程的數據。如果發生了進程切換,會記錄前后10次數據。
-
當錄制項過多時,可以點擊右上角刪除圖標,對舊數據進行刪除。
環境加壓
Solopi提供了環境加壓的功能,可以提供CPU與內存加壓
由於android系統的調度,CPU與內存加壓均存在一定限制,當應用處於后台狀態時,CPU加壓占比會遭到一定程度的限制,而內存加壓過大可能導致Solopi被系統進行回收,敬請諒解。
-
內存加壓
-
CPU加壓
響應耗時計算工具
Solopi響應耗時計算工具,通過錄屏分幀的方式自動識別起始點和結束點,精確計算耗時。
視頻演示
特性
- 模擬用戶視覺,計算結果更貼近用戶體驗
- 自動記錄點擊起始點,自動識別屏幕變化結束點
- 通過OpenCV進行圖像識別
- 支持原生應用、H5、游戲
- 支持啟動耗時、頁面跳轉耗時、列表滑動耗時、動畫耗時
使用方法
-
進入Solopi性能測試頁面,點擊啟動耗時計算。
-
建議默認參數無需修改,點擊啟動按鈕,會彈出錄制浮窗。
-
切換至待測應用,並進入操作路徑的起始頁面。
如果不需要關注細微的動畫,請將二值對比差異設置為2%
-
點擊開始錄制(按鈕會變為結束錄制),然后在被測應用界面執行操作
-
當頁面停止變化后,點擊結束錄制。幾秒后會顯示測試結果。
注意事項
- 結束頁存在輪播圖?
- 請在進入結果頁后,在輪播圖變化前點擊結束錄制
- 測試結果異常:過大,過小,或為負數?
- 本次結果失效,請重新測算。結果以多次測算后穩定的結果為准。
- 結束錄制后,一直阻塞在計算中?
- 請關閉浮窗,退出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