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

App效能測試之iTest

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

本文主要介紹下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懸浮窗許可權

圖3Assist服務啟動

圖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)檢視資料走勢圖

在主頁上,點選左上角的選單按鈕,或向右滑動螢幕進入選單或者直接點選主頁“趨勢圖”按鈕,進入資料管理頁面;

點選列表中的,檢視資料趨勢圖;

點選資料走勢圖頁面上方的下拉框選項,可以檢視相應的資料走勢圖;

    圖15CPU圖

圖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//被測應用的privatedirty記憶體

/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 –niflytek.testTech.propertytool/.activity.BootActivity

2)開啟監控

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

adb shell am broadcast -a changedir--essavedirhandTest(預設即是handTest目錄,如不做修改,可忽略執行)

adb shell am broadcast -a monitorStart --es monitorcpu,pss,net,battery,cpuTemp,fps,response--espkgcom.example.test--eiinterval1000

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命令獲取的不一樣或者監控記憶體與dumpsysmeminfo命令獲取的不一樣,在小範圍內的誤差是正常的不影響效能結果,若誤差較大的情況下,請使用其他監控工具做對比

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

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

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

2、FAQ

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

本文轉載至:http://itest.iflytek.com/static/help/help.html