專項測試主要包含:穩定性測試、內存測試、CPU測試、耗電量測試、流量測試、弱網測試等。
一、穩定性測試
穩定性指APP在手機上長時間運行,功能是否穩定,一般穩定性測試時間是 N*12小時。在工作中一般采用Monkey進行隨機測試,檢測APP的健壯性。
測試方法如下:
① 跑monkey命令。
adb shell monkey -p packageName -v -v -v --throttle 500 -s 4 --ignore-crashes --ignore-timeouts --ignore-security-exceptions times |logcat -v time > e:\log\monkeyLog.txt
命令說明:
-p :指點包名,如果要指定多個包名,需多個-p參數;
-v :指定日志的詳細程度,取值1-3,三個 -v 詳細程度最高;
--throttle :指定用戶操作時的時延,單位毫秒;
-s :指定偽隨機數生成器的seed值,取值1-10,當seed相同,產生的事件序列也相同;
--ignore-crashes :指應用程序崩潰,monkey依然發送事件,直到事件數完成;
--ignore-timeouts:指應用程序發生ANR,monkey依然發送事件,直到事件數完成;
--ignore-security-exceptions:指應用程序發生許可錯誤,monkey依然發送事件,直到事件數完成;
times: 執行次數;
|logcat -v time:給monkey命令的日志加上時間;
e:\log\monkeyLog.txt:指定日志保存位置。
②日志分析
1)打開日志文件,比如Notepad++。
2)搜索日志:
程序無響應,ANR問題:在日志中搜索"ANR";
崩潰問題:在日志中搜索"CRASH";
其他問題:在日志中搜索"Exception"。
二、內存測試
① adb shell cat /proc/meminfo #查看設備內存使用情況。
② adb shell dumpsys meminfo package_name 查看某個應用內存使用信息。
我們需要分析的是:Native/Dalvik 的 Heap和Total 的 Pss。其中,Native/Dalvik 的 Heap一直增長說明存在內存泄漏了。Total是應用占據的所有內存大小,過大會導致應用被強制殺死。此外Heap Free占用過大,波動大,說明對象被頻繁的GC,需要定位一下是哪些對象在被頻繁的GC。
③ 一般先記錄內存占用情況,然后運行APP,再記錄內存占用,對比2次發生的變化。
三、CPU測試
Android 性能指標 CPU 主要關注兩點:
CPU 總體使用率;
應用程序 CPU 占用率。
指標獲取方式:
①使用外部第三方工具來輔助測試,比如騰訊 GT,網易 Emagee 等。
②adb命令,推薦使用。
具體看某一應用占用情況。
adb shell "top -n 1|grep package_name"
以騰訊新聞為例。
四、耗電量測試
所謂的電量測試,就是測試移動設備電量消耗快慢的一種測試方法。Android的很多特性都比較耗電(如屏幕、GPS、sensor傳感器、喚醒機制、CPU、連網等的使用),我們必須要慎重檢查APP的電量使用,以免導致用戶手機耗電發熱,帶來不良體驗。
測試方式:
①使用第三方輔助工具,比如GT。
②使用adb命令:
重置電池手機數據:adb shell dumpsys batterystats --reset;
操作應用。
將采集數據保存到文件:adb shell dumpsys batterystats > batterystats.txt。
五、流量測試
應用的耗流也是用戶的一個重要關注點,一是節省用戶的使用成本,二是流量優化能帶來響應速度的優化,三是能清楚的知道每個場景需消耗的流量,確認是否有能優化的空間。
測試方法:
①使用測試工具 Emmagee或者GT。
②adb命令:
1)獲取app pid。
- 初次的應用流量。
3)操作業務后,再次檢測流量,兩次結果相差值為對應業務的流量值。
六、弱網測試
目前移動端產品的使用用戶所處的網絡並非完全流暢的網絡環境,因移動端產品使用場景多變,如進地鐵、上公交、進電梯等,使得弱網測試顯得尤為重要。畢竟考慮到各種場景的客戶端展示及容錯,能極大提升產品印象和用戶體驗。
弱網測試主要進行特殊網絡狀態下的功能測試並同時關注用戶體驗,主要包括:弱網功能測試、無網狀態測試、網絡切換測試、用戶體驗。
我們可以用fiddler,charles 可以模擬弱網。fiddler模擬弱網之前公眾號有寫過,這里直接放上文章鏈接:Fiddler及瀏覽器開發者工具進行弱網測試。
最后補充常見的不同網絡環境下的速度,如下表所示: