常用的adb、monkey指令

常用的adb指令

一、 adb資源指令
二、adb操作指令
三、 adb monkey指令

一、adb資源指令

1、獲取包名和activity
adb shell dumpsys window | findstr mCurrentFocus
或者
adb logcat|findstr START
或者
adb shell dumpsys activity | find “mFocusedActivity”
2、查看幫助手冊
adb --help
3、查看設備
adb devices
4、列出系統所有包名
adb shell pm list packages
-s 列出系統apk路徑及包名
-3 列出用戶apk及包名
eg:adb shell pm list packages -s 查看系統的包
eg:adb shell pm list packages -e “要搜索的內容” 查看啓動包中搜索的包

二、adb操作指令

1、無線鏈接:
連接機器,輸入abd tcpip 5555;(端口可變)
連接後輸入adb connect ip:5555(ip,手機電腦連接同一個wifi,手機wifi處點擊更多可以查看ip地址)

補充:夜神模擬器:adb connect 127.0.0.1:62001
補充:取消無線連接:adb disconnect ip:5555

2、電腦傳輸信息至手機
adb push <本機路徑> <手機路徑>
在這裏插入圖片描述
3、手機傳輸至電腦
adb pull <手機路徑> <電腦路徑>
4、安裝apk
adb install *.apk(apk可直接拉取到操作界面上)
在這裏插入圖片描述
5、終止adb服務
adb kill-server
啓動adb服務
adb start-server
6、adb shell 操作Android端指令
Home鍵:adb shell input keyevent 3
返回鍵:adb shell input keyevent 4
調大音量:adb shell input keyevent 24
降低音量:adb shell input keyevent 25

電源鍵:adb shell input keyevent 26
打開系統設置:adb shell input keyevent 176
切換應用:adb shell input keyevent 187
打開計算器:adb shell input keyevent 210
降低屏幕亮度:adb shell input keyevent 220
提高屏幕亮度:adb shell input keyevent 221

系統休眠:adb shell input keyevent 223
點亮屏幕:adb shell input keyevent 224
打開語音助手:adb shell input keyevent 231

三、adb monkey指令

官方文檔:https://www.android-doc.com/tools/help/monkey.html
官方解釋:The Monkey is a program that runs on your emulator or device and generates pseudo-random streams of user events such as clicks, touches, or gestures, as well as a number of system-level events. You can use the Monkey to stress-test applications that you are developing, in a random yet repeatable manner.
1、殺掉monkey進程
adb shell
top | grep monkey
這時你就能看到 monkey測試的id了.這時候只要kill掉這個id 就能停止.
kill id.
exit退出
2、指定app測試
指定一個包執行10次:adb shell monkey -p 包名 10
指定多個包執行10次:adb shell monkey -p 包名 –p 包名 10
3、日誌顯示
用於反饋日誌的詳細程度級別
(1)adb shell monkey -p 包名 -v 10 // 默認級別,僅提供啓動、測試完成和最終結果等少量信息
(2) adb shell monkey -p 包名 -v -v 10 // 提供較爲詳細的日誌,包括每個發送到Activity的事件信息
(3)adb shell monkey -p 包名 -v -v -v 10 // 提供最詳細的日誌,包括了測試中選中/未選中的Activity信息
4、部分參數詳情
(1)忽略超時錯誤: --ignore-timeouts
(2)忽略crash: --ignore-crashes
(3)忽略權限許可錯誤: --ignore-security-exceptions
(當應用遇到權限錯誤的時候,Monkey會停止運行,然後輸出
Error: SecurityException while injecting event.如果有這個參數,Monkey會繼續運行)

(4)用於指定是否監視並報告應用程序發生崩潰的本地代碼: --monitor-native-crashes
(5)觸摸事件: --pct-touch
eg:adb shell monkey -p 包名 -v -v -v --pct-touch 100 20 //執行20次100%都爲觸摸事件
(6)用於指定用戶事件的操作間隔時延,單位是毫秒: --throttle
如果不指定這個參數,monkey會盡可能快的生成和發送消息
命令:adb shell monkey -p 包名 --throttle 3000 100

(7)-s ,用於指定僞隨機數生成器的seed值
命令:adb shell monkey -p 包名 –s seed值 執行次數
如果seed值相同,則兩次Monkey測試所產生的事件序列也相同的,示例:
eg:adb shell monkey -p com.xxx.xxx –s 1234567890123 100
eg:adb shell monkey -p com.xxx.xxx –s 1234567890123 100
(seed值可在輸出的日誌中查看)
在這裏插入圖片描述
5、錄取日誌具體存放操作
adb logcat>D:\log.txt
adb shell monkey -p 包名 -v -v -v 100>E:testlog.txt
舉例子:
adb shell monkey -p com.xxx.xxx --pct-touch 100 -v -v -v 200 2>/sdcard/monkey.txt(只輸出錯誤信息)
0 :標準輸入
1 :標準輸出
2 :標準錯誤輸出
&:後臺運行
[>: 重定向,會覆蓋原來文件裏的內容 ]
[ >>: 重定向,追加到原來文件末尾]
6、日誌分析
(1)找到monkey裏哪個地方出錯
查看Monkey執行的是哪一個Activity,在switch後面找,兩個swtich之間如果出現了崩潰或其他異常,可以在該Activity中查找問題的所在。
(2)查看Monkey標準輸出的日誌裏面出錯前的一些事件動作,在日誌中手動搜索sleeping for xx 尋找需要查看的動作。
sleeping for x milliseconds 這是執行Monkey測試時,throttle設定的間隔時間,每出現一次,就代表一個事件,sending x 就是代表一個操作,如下圖的操作,就是個點擊事件。
在這裏插入圖片描述
(3)若以上步驟還不能找出,則可以使用之前一樣的seed再執行一遍monkey命令,以便復現
(4)關鍵字分析
程序無響應:“ANR”
崩潰問題:“CRASH”
其他問題:”Exception”
詳細例子:
adb shell monkey -p com.xxx.xxx(app包名) --throttle 100 --ignore-crashes(忽略崩潰可設置) --ignore-timeouts (忽略超時可設置) --ignore-security-exceptions(索引越界) --ignore-native-crashes(忽略本地崩潰) --monitor-native-crashes(監控本地崩潰) -v -v -v 100>D:\log.txt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章