App性能測試之iTest


本文主要介紹下App性能測試工具iTest_V4.7的使用。

功能簡介

1、監控Andorid系統(支持手機,平板,電視,車機等智能終端設備)以及應用app的cpu、內存、流量、電池、幀率、頁面耗時等數據;

2、懸浮框實時顯示被測應用或者整機的狀態指標;

3、數據走勢圖展示統計結果;

4、數據自動保存至文本,可快速導入Excel;

5、支持多進程應用的性能監控,例如靈犀語音助手;支持單進程性能監控;支持自定義進程性能監控

6、支持性能監控告警;

7、支持手工測試和自動化測試,自動化測試時,可發送adb shell命令遙控iTest。

8、獲取android底層的linux進程占用的cpu和內存。

9、支持查看設備基本信息、設備的動態信息

10、支持cpu模擬、內存模擬、弱網模擬等極限環境模擬

11、支持logcat日志本地獲取

12、支持應用安裝包離線分析

13、支持monkey

基本功能使用說明

1、手工測試方式

1) 授權

自android6.0以后,谷歌對權限做了一些管控,應用在需要用戶授權的情況下,功能才能正常的運行;因此為了確保iTest能夠正常的運行,請按照iTest提示對iTest進行授權:

        圖1 存儲、電話權限 

     圖2 懸浮窗權限

        圖3 Assist服務啟動

    圖4 輔助功能權限

      圖5 開啟GPU

2)用戶注冊登錄功能

打開iTest應用后,頁面跳轉至登陸頁面,請填寫用戶名密碼進行登錄。賬號可以直接登錄iTest服務端。

      圖6 登錄頁面

如果沒有登錄賬號,請點擊注冊按鈕來進行用戶注冊,其中用戶名、密碼、郵箱是必選的,qq和微信可二者選一進行填寫,注冊完成后請登錄郵箱激活賬號。

     圖7 注冊頁面

3)選擇被監控的應用

進入首頁,先點擊“添加”按鈕,從跳入的監控應用界面中找到並點擊被測應用,或在搜索框中輸入應用的名稱,或者只輸入應用名稱中的個別文字,即可篩選。

       圖8 首頁

     圖9 監控應用頁面

4)選擇監控指標

在首頁中,指標默認已選擇cpu、內存、網絡三項,點擊分享解鎖后,可解鎖更多指標以及小工具,請根據自己的場景測試需要,選擇需要監控的指標

          圖10 分享前指標

    圖11 分享后指標

Cpu: 如果被測對象為整機,則數據表示為整機的cpu占用百分比;如果被測對象為應用,包含應用的CPU占用百分比與全局CPU占用百分比,對於單進程應用,該數據表示該應用的CPU占用情況;對於多進程應用,根據您設置的進程篩選規則,如果為根據包名篩選進程,該數據表示應用主進程的CPU占用情況,如果為根據uid篩選進程,該數據表示應用所有的進程cpu占用情況,如果為根據配置文件篩選進程,該數據表示配置的進程cpu占用情況,當發生進程切換時,iTest能夠自動切換到新的進程數據。

 

內存:如果被測對象為整機,則數據表示為整機的內存占用情況和內存剩余情況;如果被測對象為應用,包含應用的內存占用與全局內存剩余情況,對於單進程應用,該數據表示該應用的內存占用情況;對於多進程應用,根據您設置的進程篩選規則,如果為根據包名篩選進程,該數據表示應用主進程的內存占用情況,如果為根據uid篩選進程,該數據表示應用所有的進程內存占用情況,如果為根據配置文件篩選進程,該數據表示配置的進程內存占用情況,當發生進程切換時,同cpu一樣,iTest能夠自動切換到新的進程數據。應用內存指標包括兩部分,進程的PSS(Proportional Set Size,即實際使用內存)內存、Private Dirty(私有內存)內存。

 

網絡:包含應用上下行速率與累計流量以及全局上下行速率與累計流量。屬於應用維度數據,根據監控對象決定。點擊右側清零按鈕可以清空累計數據。

 

電池:包含設備瞬時電流、電流均值以及電池的溫度。屬於全局維度數據。點擊右側清零按鈕可以清空電流累計數據。

 

Cpu溫度:該數據表示cpu的溫度,屬於全局維度數據,部分設備是以電池溫度為准。

 

幀率:包含應用實際幀率,延遲幀數、1秒內單幀最長延遲時間與延遲幀數占所有幀數的百分比。屬於應用維度數據,即根據當前窗口所在activity獲取。目前iTest是根據設備gfxinfo信息計算1秒內超時幀時間,從而反推出實際幀率,所以在接近靜止的情況下, 部分幀率可能顯示有誤。推薦在滑動或頁面切換等動態場景下進行幀率測試。

 

響應耗時:包含應用點擊的響應耗時與刷新耗時數據。屬於應用維度數據,基於當前頁面所在activity。用戶點擊控件(記錄時間a)界面發生變化(記錄時間b)頁面停止變化(記錄時間c),其中b-a為響應耗時,c-a為刷新耗時。

5) 進程篩選設置

進程篩選,在性能監控中,你或許只關注應用的主進程性能,或許你關注應用的所有進程性能,也或許你只關注應用所有進程中的幾個進程的性能,那么如何才能做到這些場景下的性能監控呢?因此我們提供了以下幾種進程篩選方式。

 根據包名篩選
通過包名獲取到被監控應用的主進程,此時監控到的性能數據為應用主進程的性能數據

 根據uid篩選

通過包名獲取到主進程后得到了主進程的uid,通過uid篩選出應用的子進程信息,通過此種方式,可以監控到應用的所有進程性能數據

 根據配置文件篩選

配置文件ThreadFilter.txt內容格式如圖所示,FilterHead代表某App監控的開始部分,其中的內容每行代表一個進程,FilterTail代表該App監控的設置結束部分,當然對於多App和單app多進程監控需求同樣適用。配置好ThreadFilter.txt文件后,需要將該文件放置到手機/sdcard/AndroidPropertyTool4/目錄下即可,詳細見ThreadFilter詳解

6)場景設置

在啟動性能監控前,在圖7中標記處輸入場景標記。

     圖12 場景標記

7)其他設置

點擊首頁左上角的菜單圖標,可進入菜單,見圖8。點擊“設置”即可選擇您要設置的參數。見圖9。

     

      圖13 菜單圖      

     14 設置界面

在圖14中參數簡介:

監控間隔:默認每隔1000毫秒記錄一組數據;

顯示懸浮框:懸浮框位於屏幕左上方,實時顯示記錄的數據,6.0以后系統需要將懸浮窗權限打開,進入iTest后,根據應用提示即可;

橫屏顯示:默認關閉,豎屏顯示,

設置告警規則:觸發告警條件,執行告警策略。

設置監控進程規則:默認根據uid進行篩選

8)啟動監控/停止監控

點擊“啟動監控”按鈕,測試開始,按鈕自動變成“停止監控”;

點擊“停止監控”按鈕,測試停止,按鈕自動變成“開始監控”。

 

9)查看數據走勢圖

在主頁上,點擊左上角的菜單按鈕,或向右滑動屏幕進入菜單或者直接點擊主頁“趨勢圖”按鈕,進入數據管理頁面;

點擊列表中的,查看數據趨勢圖;

點擊數據走勢圖頁面上方的下拉框選項,可以查看相應的數據走勢圖;

   

    圖15 CPU圖            

 

      圖16 內存圖

10)數據管理

數據存在android的外置存儲空間中(一般是指/sdcard目錄)

例如:

/sdcard/AndroidPropertyTool4/handTest/cup_com_baidu_BaiduMap.txt //被測應用的cpu

/sdcard/AndroidPropertyTool/handTest/cpuSystem.txt  //系統cpu

/sdcard/AndroidPropertyTool/ handTest/pss_com_baidu_BaiduMap.txt  //被測應用的private dirty內存

/sdcard/AndroidPropertyTool/ handTest/privateDirty_com_baidu_BaiduMap.txt  /被測應用的pss

/sdcard/AndroidPropertyTool/handTest/pssSystemLeft.txt  //系統剩余pss

/sdcard/AndroidPropertyTool/handTest/upflow_com_baidu_BaiduMap.txt  //上行速率

/sdcard/AndroidPropertyTool/handTest/downflow_com_baidu_BaiduMap.txt  //下行速率

/sdcard/AndroidPropertyTool/handTest/upflowSum_com_baidu_BaiduMap.txt  //上線累計

/sdcard/AndroidPropertyTool/handTest/downflowSum_com_baidu_BaiduMap.txt  //下行累計

/sdcard/AndroidPropertyTool/handTest/batteryAvg.txt  //平均電流

/sdcard/AndroidPropertyTool/handTest/batteryTemperature.txt  //電池溫度

/sdcard/AndroidPropertyTool/handTest/batteryInstant.txt   //瞬時電流

/sdcard/AndroidPropertyTool/handTest/fps.txt

/sdcard/AndroidPropertyTool/handTest/fpsJunkCount.txt

/sdcard/AndroidPropertyTool/handTest/fpsMaxJunk.txt

/sdcard/AndroidPropertyTool/handTest/fpsJunkPercent.txt

/sdcard/AndroidPropertyTool/handTest/cpuTemperature.txt

/sdcard/AndroidPropertyTool/handTest/response.txt

/sdcard/AndroidPropertyTool/handTest/refresh.txt

/sdcard/AndroidPropertyTool/ handTest /uplaodSetting.json//上傳功能的標記文件,可忽略

/sdcard/AndroidPropertyTool/handTest/upload.tmp //上傳標記文件,可忽略

其中com_baidu_BaiduMap(百度地圖)為被測試應用的包名。

備注:

系統會將舊數據文件保存在帶時間戳的目錄中,例如:

/sdcard/AndroidPropertyTool4 /handTest_2020-01-01-12-12-12-357 

在“數據管理”界面,可上傳、查看、刪除所有數據:

                  圖17 數據管理界面

2、自動測試方式

本工具支持以adb shell命令的形式啟動和運行。需要注意的是,office系列軟件可能會更改命令中的字符,導致命令不可用!請手工輸入命令,或從附帶的command文本中復制;另外iTest啟動后默認在未登陸的情況下進入登陸頁面,因此確保已經登陸,並且將相關權限打開,具體見2.1.1授權介紹

1)啟動首頁

adb shell am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER –n iflytek.testTech.propertytool/.activity.BootActivity

2)開啟監控

依次執行如下兩條命令,注意替換紅字部分:

adb shell am broadcast -a changedir --es savedir handTest(默認即是handTest目錄,如不做修改,可忽略執行)

 

adb shell am broadcast -a monitorStart --es monitor cpu,pss,net,battery,cpuTemp,fps,response --es pkg com.example.test --ei interval 1000

 

monitor:監控的指標,多指標情況下使用英文逗號分隔(cpu, pss,net,battery,cpuTemp,fps,response)

pkg:包名, 可用英文的逗號分隔多個包名。

interval:間隔(毫秒)

3)結束監控

adb shell am broadcast -a monitorFinish

4)打開或者關閉懸浮窗,在開啟監控前執行

adb shell am broadcast -a enableFloatWindow // 開啟

adb shell am broadcast -a disableFloatWindow // 關閉

5)其他命令見command

其它功能

1、設備基本信息

從菜單中,點擊“設備基本信息”,即可進入設備基本信息頁面。點擊導出按鈕,設備基本信息可導出為txt文本。

   

   圖18 展開的菜單圖           

  19 設備基本信息頁面

2、設備動態信息

從菜單中,點擊“設備動態信息”,即可進入設備動態信息頁面。點擊導出按鈕,設備動態信息可導出為txt文本。

注意,由於數據是動態獲取並顯示的,在部分數據的獲取上比較耗時,請等待若干秒。

   圖20 設備動態信息頁面

3、意見反饋

如果發現工具的bug,或有任何改進意見,請從菜單中點擊“意見反饋”,進入意見反饋頁面來告知我們。也可以根據“關於”頁面中提供的聯系方式聯系我們。謝謝!

   

    圖21 意見反饋頁面         

    圖22 關於頁面

4、工具箱

工具箱中包含了一些小工具,通過在首頁完成分享后即可解鎖更多的小工具

 

     圖23 工具箱

5、發現

6、版本新增了發現功能,在這里你可以學習別人的玩法,也可以將自己的玩法發布供別人學習。

     

     圖24 發現圖  

 

    圖25 添加發現

iTest數據上傳功能

iTest服務端地址http://itest.iflytek.com/,iTest客戶端默認是在連接有效的wifi且已經登錄的情況下在性能監控結束的時候自動上傳至服務端,如果沒有登錄,將會跳轉至登錄頁面,完成登錄后,在數據管理頁面手動上傳測試數據

iTest使用注意事項

1、常見問題

 電池電流,因MTK平台不區分充放電,都為負數;高通平台小於0處於放電狀態,大於0為充電狀態

 如果遇到監控cpu與top命令獲取的不一樣或者監控內存與dumpsys meminfo命令獲取的不一樣,在小范圍內的誤差是正常的不影響性能結果,若誤差較大的情況下,請使用其他監控工具做對比

 由於流量監控功能不完善,導致耗電量統計時,無法統計UDP流量對應的耗電量。

 長時間運行后, iTest可能會被系統殺死。解決方案:將iTest.apk放置在/system/app目錄下,並賦root權限。

 iTest受系統休眠影響,可能會暫停記錄數據,請測試之前正確設置手機參數

 

2、FAQ

請參考《iTest常見問題解答(FAQ)》。


免責聲明!

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



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