VOL 225
29
2021-03
今天距2022年277天
這是ITester軟體測試小棧第225次推文
在現代生活中,大家都離不開手機,各大APP也占領較大的市場佔有率,是以面試過程中,面試官也會經常問到
APP測試
,以下主要分享如何進行APP專項測試。
專項測試主要包含:穩定性測試、記憶體測試、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 #檢視裝置記憶體使用情況。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAjM2EzLcd3LcJzLcJzdllmVldWYtl2Pn5GcuMXOqh3cwl2Z0V2LcdzMyYzM0gzLcVmdhNXLwRHdo9CXt92YucWbpRWdvx2Yx5yazF2Lc9CX6MHc0RHaiojIsJye.png)
② 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。
2) 初次的應用流量。
3)操作業務後,再次檢測流量,兩次結果相內插補點為對應業務的流量值。
六、弱網測試
目前移動端産品的使用使用者所處的網絡并非完全流暢的網絡環境,因移動端産品使用場景多變,如進地鐵、上公交、進電梯等,使得弱網測試顯得尤為重要。畢竟考慮到各種場景的用戶端展示及容錯,能極大提升産品印象和使用者體驗。
弱網測試主要進行特殊網絡狀态下的功能測試并同時關注使用者體驗,主要包括:弱網功能測試、無網狀态測試、網絡切換測試、使用者體驗。
我們可以用fiddler,charles 可以模拟弱網。fiddler模拟弱網之前公衆号有寫過,這裡直接放上文章連結:Fiddler及浏覽器開發者工具進行弱網測試。
最後補充常見的不同網絡環境下的速度,如下表所示: