針對移動端 Android 的測試, adb 命令是很重要的一個點,必須將經常使用的 adb 命令熟記於心, 將會爲 Android 測試帶來很大的方便,其中不少命令將會用於自動化測試的腳本當中。linux
Android Debug Bridgeandroid
adb 其實就是 Android Debug Bridge, Android 調試橋的縮寫,adb 是一個 C/S 架構的命令行工具,用於經過電腦端與模擬器或者真實設備交互。在某些特殊的狀況下進入不了系統,adb就派上用場啦!主要由 3 部分組成:shell
· 運行在 PC 端的 Client : 能夠經過它對 Android 應用進行安裝、卸載及調試windows
· 運行在 PC 端的 Service : 其管理客戶端到 Android 設備上 adb 後臺進程的鏈接緩存
adb 服務啓動後,Windows 能夠在任務管理器中找到 adb.exe 這個進程架構
· 運行在 Android 設備上的 adb 後臺進程app
執行 adb shell ps | grep adbd ,能夠找到該後臺進程,windows 請使用 findstr 替代 grep工具
經過adb操做android設備測試
鏈接上數據線,而後把手機開發者模式打開,打開usb調試。spa
在開發或者測試的過程當中,咱們能夠經過 adb 來管理多臺設備,其通常的格式爲:
adb [-e | -d | -s <設備序列號>] <子命令> |
在配好環境變量的前提下,在命令窗口當中輸入 adb help 或者直接輸入 adb ,將會列出全部的選項說明及子命令。
1.adb devices , 獲取設備列表及設備狀態
2.adb get-state , 獲取設備的狀態
設備的狀態有 3 鍾,device , offline , unknown
device:設備正常鏈接
offline:鏈接出現異常,設備無響應
unknown:沒有鏈接設備
3.安裝卸載應用程序
adb install 用於安裝
安裝成功,返回成功提示 "Success";
安裝失敗,會返回如下:
INSTALL_FAILED_ALREADY_EXISTS
此時須要用 -r 參數來從新安裝。
INSTALL_FAILED_SIGNATURE_ERROR
應用的簽名不一致,多是發佈版和調試版簽名不一樣所致。也有多是沒卸載舊應用致使。
INSTALL_FAILED_INSUFFICIENT_STORAGE
存儲空間不足,須要檢查設備存儲狀況。
adb uninstall 用於卸載
adb uninstall 後面帶的是應用的包名,而不是應用名。
查看系統全部應用的包名:
adb shell pm list packages –f
4.上傳、下載文件
adb push 命令將PC機上的文件推到 DLT-RK3288 機器上;
adb pull 命令將DLT-RK3288機器上的文件拉到PC機上;
例如:
adb push d:/new.txt /sdcard/
將D盤下new.txt文件 推到內部存儲器
adb pull /sdcard/new.txt d:\
將DLT-RK3288 內部存儲器根目錄下的new.txt 拉到D盤
5. adb shell pm list package
Package Manager , 能夠用獲取到一些安裝在 Android 設備上得應用信息
-s:列出系統應用
-f:列出應用包名及對應的apk名及存放位置
過濾應用
5.adb shell
經過adb shell 命令,就能夠進入設備或者模擬器的shell環境了,在這個Linux shell中,咱們就能夠執行各類Linux命令了。
若是隻想執行一條shell命令,就能夠採用:adb shell [shell_command],在實際使用中,常常與grep或findstr一塊兒使用,起到過濾做用,查看本身須要的關鍵信息。
6.常見命令:
如 ls, cd, rm, mkdir, touch, pwd, cp, mv, ifconfig, netstat, ping, ps, top等,進入adb shell便可執行,與linux類似
7. adb logcat
一.在cmd窗口查看手機的Log日誌
有時候咱們在手機程序上的日誌要在其餘地方調試,而後要看裏面的Log日誌。在cmd窗口中輸入以下命令:
//格式1:打印默認日誌數據 adb logcat //格式2:須要打印日誌詳細時間的簡單數據 adb logcat -v time //格式3:須要打印級別爲Error的信息 adb logcat *:E //格式4:須要打印時間和級別是Error的信息 adb logcat -v time *:E //格式5:將日誌保存到電腦固定的位置,好比D:\log.txt adb logcat -v time >D:\log.txt |
這時手機日誌更新什麼日誌,cmd窗口也會同步更新數據。
可是這樣沒有過濾條件,若是Log日誌不少,很難找到咱們想要的信息,
固然也能夠複製cmd中的數據到一個文本中慢慢處理的,就是效率不高。
下面介紹adb logcat中的詳細參數命令以及如何才能高效的打印日誌,或者把日誌保存到咱們指定的位置。
二.adb logcat 詳解
adb logcat若是用過,可是具體命令又不記得,能夠輸入adb logcat -help,查看一下一些簡單的數據格式:
日誌過濾:adb logcat <tag>[:priority]
tag表示標籤,priority輸出的級別,日誌默認級別是V,若是錯誤日誌咱們選擇E就能夠。
Android 的日誌分爲以下幾個優先級(priority):
V —— Verbose(最低,輸出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高,啥也不輸出)
按某級別過濾日誌則會將該級別及以上的日誌輸出。好比,命令:adb logcat *:W
其實*能夠是某個tag,若是沒有指明,就表示全部。
tag能夠由多個 [:priority] 組成。好比,命令:
adb logcat ActivityManager:I MyApp:D *:S
表示輸出 tag ActivityManager 的 Info 以上級別日誌,輸出 tag MyApp 的 Debug 以上級別日誌,及其它 tag 的 Silent 級別日誌(即屏蔽其它 tag 日誌)。
adb logcat選項解析
--"-s"選項 : 設置輸出日誌*:s的標籤, 只顯示該標籤的日誌;
--"-f"選項 : 將日誌輸出到文件, 默認輸出到標準輸出流中, -f 參數執行不成功;
--"-r"選項 : 按照每千字節輸出日誌, 須要 -f 參數, 不過這個命令沒有執行成功;
--"-n"選項 : 設置日誌輸出的最大數目, 須要 -r 參數, 這個執行 感受 跟 adb logcat 效果同樣;
--"-v"選項 : 設置日誌的輸出格式, 注意只能設置一項;
--"-c"選項 : 清空全部的日誌緩存信息;
--"-d"選項 : 將緩存的日誌輸出到屏幕上, 而且不會阻塞;
--"-t"選項 : 輸出最近的幾行日誌, 輸出完退出, 不阻塞;
--"-g"選項 : 查看日誌緩衝區信息;
--"-B"選項 : 以二進制形式輸出日誌;
把日誌信息保存到電腦中
adb logcat最後添加」 > 保存文件的地址,好比須要將的信息保存到電腦中使用下面的命令: adb logcat -v time > D:\log.txt
8.monkey測試
1、Monkey測試簡介
Monkey測試是Android平臺自動化測試的一種手段,經過Monkey程序模擬用戶觸摸屏幕、滑動Trackball、按鍵等操做來對設備上的程序進行壓
2、Monkey命令的簡單幫助
要獲取Monkey命令自帶的簡單幫助,在CMD中執行命令:
adb shell monkey –help
4、Monkey命令參數介紹
說明:第一個-s指定設備,若是隻鏈接了一臺設備,可不用該參數。
-p <apk包名>只容許系統啓動指定的app,若是不指定,將容許系統啓動設備中的全部app,也可指定多個包。
--throttle <毫秒數> 指定用戶操做(事件)間的時延。
--ignore-crashes 指定當應用程序崩潰時,Monkey依然發送事件,直到事件計數完成。
--ignore-timeouts 當應用程序發生ANR錯誤時,Monkey依然會發送事件,直到事件計數完成。
第2個-s,用於指定僞隨機數生成器的seed值,若是seed相同,則兩次Monkey測試所產生的事件序列也相同的。
-v 用於指定反饋信息級別,總共分爲level 0、level 一、level 2三個級別,級別越高,輸出的日誌越詳細。
日誌級別 Level0 示例 adb shellmonkey -p com.amaker.mp –v 100
說明 缺省值,僅提供啓動提示、測試完成和最終結果等少許信息
日誌級別 Level 1 示例 adb shellmonkey -p com.amaker.mp –v -v 100
說明 提供較爲詳細的日誌,包括每一個發送到Activity的事件信息
日誌級別 Level 2 示例 adb shellmonkey -p com.amaker.mp –v -v –v 100
說明 最詳細的日誌,包括了測試中選中/未選中的Activity信息
最後的數字(這裏是500):表示Monkey程序模擬500次隨機用戶操做事件。
>輸出測試結果到D:\monkeylog.txt