1. 先熟悉monkey基本命令:
cls 清除
首先測試設備是否連接成功,在命令行中輸入:adb devices
查看adb版本: adb version
查看虛擬機版本:nox_adb version
安裝apk: adb install test.apk
卸載apk:adb uninstall test.apk
盡量保持兩個版本一致
如果使用模擬器,如夜神模擬器,則需要手工連接才可以看到模擬器
C:\Users\Administrator>adb connect 127.0.0.1:62001
connected to 127.0.0.1:62001
C:\Users\Administrator>adb devices
List of devices attached
127.0.0.1:62001 device
2.查看設備里面的文件目錄和文件
1. 運行adb shell
2. ls
3.Monkey入門之如何在android虛擬機中安裝apk包
如果想把公司的產品apk包安裝到android虛擬機中,應該進行如下操作:
1、首先將apk包放到C:\Program Files\Android\android-sdk\platform-tools路徑下(即SDK的platform-tools下);
2、win+R打開運行,執行cmd,在cd C:\Program Files\Android\android-sdk\platform-tools
注:為什么到C:\Program Files\Android\android-sdk\platform-tools下呢,因為我的adb.exe在這個下面,我要使用adb命令;
3、執行adb install test.apk,安裝apk包,此時在虛擬機上就添加好了apk包,就可以進行測試了。
安裝成功如上圖所示。
adb uninstall test.apk 卸載apk
4.復制電腦中的apk到手機端sdcard目錄下:
1):window+R 輸入cmd進入命令窗口
2):輸入adb push D:/android-sdk-windows/test/ceshi.apk mnt/sdcard/test.apk(意思是將D:/android-sdk-windows/test/ceshi.apk目錄下的ceshi.apk復制到mnt/sdcard/目錄下,並重新命名為test.apk )
查看是否復制成功:
1):輸入adb shell
2):ls
3): cd mnt/sdcard/
4)ls
5.從手機端復制文件至電腦端指定的文件夾
1):window+R 輸入cmd進入命令窗口
2):輸入adb pull mnt/sdcard/test.apk D:/android-sdk-windows/test1/QQ.apk(意思是將mnt/sdcard/test.apk目錄下的test.apk復制到D:/android-sdk-windows/test1/QQ.apk目錄下,並重新命名為QQ.apk )
查看是否復制成功:可直接進入目錄查看文件是否存在
6.刪除指定目錄的文件
語法:rm test.apk
我們刪除手機端之前復制過來的test.apk文件
1):輸入adb shell
2): 使用cd 切換到指定目錄
7. 刪除指定目錄的文件夾
rmdir xxx //刪除xxx的文件夾
8.模擬100個隨機用戶模擬操作
adb shell Monkey –p 包名 –v 100
9.獲取手機上的所有包名信息。
(1) adb shell pm list packages
10. 獲取手機上包含xxx信息的包名
adb shell pm list packages |findstr XXX
在不知道包名的前提下獲取包名
(1) 先打開需要查找的APK后,敲入一下命令
① Adb shell dumpsys window w | findstr name=
11. 對獲取到的包名執行隨機點擊事件
adb shell monkey -p com.android.bbkcalculator 3000 >e:\123.txt (先在E盤創建個123.txt文件,本句話的意思是:當對此com.android.bbkcalculator包執行操作3000次時,將日志記錄到指定的E盤123.txt文件中)
monkey設定參數
首先用一個最簡單的例子分析
adb shell monkey -p com.android.bbkcalculator -v -v -v 100
-p參數:表示指定測試的程序
-v參數:表示查看Monkey生成的一些詳細的隨機的事件名 數字100:表示測試事件數為100
12. 查看進程列表。
adb shell ps
adb shell ps | findstr gallery3d (根據名稱查找進程)
13. 根據包名殺死進程的命令。(此命令只是將程序停止工作)
adb shell am force-stop 【包名】
注意:這種方法會強制停止APP進程,不會清除APP進程在系統中產生的數據
14. 殺死后台進程的命令
(1) adb shell pm clear 【包名】
(2) 執行完成以后打開手機確定一下
注意:區別於上面殺死進程的命令,這個會將后台程序殺死。
15. 執行的命令中間加時間間隔。
(1) 執行的命令語句為 --throttle <毫秒數>
(2) 實例:
① Adb shell monkey -p com.android.bbkcalculator --throttle 1000 1000
② 注意:前面一個1000是毫秒數,后面一個1000是執行次數。
③ 加上時間限制以后執行的過程會非常的緩慢,可查看執行結果的毫秒數來驗證
16. 如何復現在monkey測試時,產生的錯誤。(可以在做壓力測試之前定義一個seed值,以便復現在測試過程中出現的BUG)
(1) 這里需要的是seed參數,指定隨機生成數的seed值 : -s <seed>
(2) 《seed》 這里面填寫具體的值
(3) 因為monkey是隨機操作的,是用此命令可完全復現上一次的操作過程,以及結果
(4) 實例:adb shell monkey -p com.android.bbkcalculator -s 50 100
注意:-s 50 指的是定義的seed值,當再次執行次命令可恢復行一次的執行過程和結果
17. Monkey之觸摸事件(也叫點擊事件,不包括滑屏等操作,只執行點擊事件的操作)
(1) 執行命令: --pct-touch <percent> 。
(2) 《percent》 填寫為百分比。
(3) 實例:adb shell monkey -p com.android.bbkcalculator --pct-touch 100 10
① 解讀:點擊事件完成100% ,完成次數為10次
② 此命令無法查看執行的詳細情況,需要參數:-v
③ adb shell monkey -v -p com.android.bbkcalculator --pct-touch 100 10
④ 疑問:為什么日志只有9個而不是10個?
不加-V 的執行結果:
加-V的執行結果:
18. logcat命令
1).adb logcat -c 清楚舊日志信息
2).adb logcat -v time 開始抓取日志
3). adb logcat -v time>test.txt 將日志輸出到指定的文件夾
4). ctrl + c 結束日志抓取