安卓App測試簡析

安卓系統知識簡介
1.1安卓系統架構:linux

一、應用程序層android

二、應用程序框架層shell

三、系統運行庫庫層數據庫

四、系統內核層數組

1.2安卓權限系統:安全

Android操做系統實際上是一個多用戶的linux操做系統,每一個android應用使用不一樣的用戶,運行在本身的安全沙盤裏。系統爲全部的文件設置權限,這樣一來只有同一個用戶的應用能夠訪問它們。每一個應用都有本身單獨的虛擬機,這樣應用的代碼在運行時是隔離的,即一個應用的代碼不能隨意訪問或者意外修改其餘應用的內部數據。服務器

1.3安卓調試橋簡介:網絡

ADB,即Android Debug Bridge,他是Android提供的一個通用的調試工具,藉助這個工具,咱們能夠很好的調試開發的程序,adb.exe在安裝的Android的sdk開發包platform-tools目錄下。架構

它是一個客戶端/服務器架構的命令行工具,主要由如下3個部分組成:app

一、adb客戶端:一個用於用戶開發程序的電腦上運行的客戶端

二、adb服務端:負責客戶端與用戶設備的守護進程的通訊

三、adb daemon(守護進程):一個之後臺進程的形式運行於模擬器或者物理手機設備上的守護程序

1.4 系統監控ADB命令

1.4.1查看應用啓動耗時

adb-s 設備id* shell am start -W -n 應用名.app/ .MainActivity

1.4.2得到電池電量和電池溫度

adb shell dumpsys battery

1.4.3得到最耗資源的應用

adb -s 設備id shell top -m 6 -n l -s cpu

1.4.4 得到內存使用狀況

adb -s 設備id adb shell dumpsys meminfo 應用程序包名

1.4.5獲取指定程序cpu使用狀況

adb -s 設備id shell dumpsys cpuinfo 應用程序包名

1.4.6獲取指定程序PID

adb shell "ps | grep packageName"

安卓APP測試流程圖:

安卓app測試簡析圖片.png

App測試點

3.1 UI測試

一、按鈕、對話框、列表和窗口等靜態界面測試

二、內容(列表頁、提示框)等動態界面測試

3.2兼容性測試

一、不一樣手機品牌

二、不一樣的操做系統以及操做系統的不一樣版本

三、不一樣手機屏幕分辨率和不一樣屏幕尺寸(通常測試主流分辨率)

四、網絡環境的兼容性 (WiFi、移動網絡、弱網環境、無網絡環境)

五、與本地軟件的兼容性

3.3安裝卸載測試

一、應用程序的正常安裝,圖標顯示正常,安裝後正常運行(不一樣操做系統下安裝)

二、不一樣版本之間的覆蓋安裝

三、覆蓋安裝後,用戶數據的保留

四、應用程序的正常卸載,卸載後用戶數據是否刪除

五、安裝/卸載過程當中異常狀況(斷電,空間不足等)

六、 安裝/卸載過程是否支持取消操做

3.4版本升級測試

一、當客戶端有新版本時,有更新提示。

二、 當版本爲非強制升級版時,用戶能夠取消更新,老版本能正常使用。用戶在下次啓動app時,仍能出現更新提示。

三、當版本爲強制升級版時,當給出強制更新後用戶沒有作更新時,退出客戶端。下次啓動app時,仍出現強制升級提示。

四、當客戶端有新版本時,在本地不刪除客戶端的狀況下,直接更新檢查是否能正常更新。

3.5 交互測試

一、應用的先後臺切換

二、殺進程

三、鎖屏

四、長時間待機

五、中斷

3.6 客戶端數據庫測試

一、客戶端後臺數據的增、刪、改、查等數據更新測試

二、數據爲空的狀況測試

三、檢查客戶端數據存在時,app數據是否能自動從客戶端數據中取出,檢查客戶端數據存在時,app數據是否能自動從客戶端數據中取

四、當業務對數據進行了修改、刪除後,客戶端和服務端是否會有相應的更新。

3.7 接口測試

一、業務邏輯功能測試

二、邊界值測試

三、參數組合測試

四、異常狀況測試

3.8性能測試

一、單位時間耗電量

二、單位時間網絡流量

三、移動端相關資源利用率

四、業務響應時間

五、幀率(主要針對遊戲應用)

工具Emmagee簡介:

4.1簡介

Emmagee是網易杭州研究院qa團隊開發的一款用於監控安卓客戶端性能的小工具,能夠監控指定被測應用在使用過程當中器的啓動時間、CPU、內存、流量和電量變化狀況,用戶可自定義配置監控的頻率以及性能的實時顯示,並最終生成一份性能統計csv文件,支持Android2.2及以上版本。

4.2主要功能

一、檢測當前時間被測應用的CPU使用率以及整體CPU使用量。

二、檢測當前時間被測應用佔用的內存量、百分比,剩餘內存量。

三、檢測應用從啓動開始到當前時間消耗的流量數。

四、測試數據寫入到CSV文件中,存儲在手機/storage/sdcard0目錄下,同時支持以郵件形式發送文件。

五、能夠選擇開啓浮窗功能,浮窗中實時顯示被測應用佔用性能數據信息。

六、在浮窗中能夠快速啓動或者關閉手機的wifi網絡。

4.3實現原理

4.3.一、監控CPU的實現原理

Android系統是基於Linux內核的,因此係統文件的結構和Linux下同樣,系統整體CPU使用信息放在/proc/stat文件下,/proc/cpuinfo文件存放CPU的其它信息,包括CPU名稱,直接讀取便可。Emmagee是將選中應用的PID傳入,讀取/proc/PID/stat文件信息及可獲取該PID對應程序的CPU信息。

4.3.二、監控內存的實現原理

內存和cpu的處理方式相似。先獲取到當被測應用的PID,而後按照PID從 /proc/meminfo文件中獲取當前被測應用佔用的內存信息。

4.3.三、監控流量消耗的實現原理

系統中有存放總體流量和針對當程序的流量統計,/proc/net/dev和/proc/uid_stat/UID下存放tcp_rcv和tcp_send文件,分別存放下行流量和上行流量,操做先後相減就得出結果 。

4.3.四、監控電量的實現原理

電量、電壓和溫度狀況是經過監聽系統的電池管理事件的廣播來獲取的。

4.3.五、監控啓動時間的實現原理

咱們點擊界面的開始測試時,程序會啓動EmmageeService,以後全部的數據統計以及更新都是EmmageeService 進行處理的。 EmmageeService會在onStartCommand()裏面啓動一個線程「handler.postDelayed(task, 1000)」,進行數據的更新同時會嘗試經過ActivityManger從logcat中獲取到軟件的啓動時間。

紅色框框內的東西就是經過調用一個管理Android幀緩衝區的系統服務SurfaceFlinger來獲取用於計算fps的幀數據,具體可參考: Android fps的計算方式。

來源:宜信技術學院 做者:張曉燕

相關文章
相關標籤/搜索