安卓模擬器的使用和adb工具的使用-mac


####

夜神有windows版,也有mac版

我用的mac版,直接官網下載mac版安裝

但是夜神模擬器在我的mac安裝一直是卡在99%,所以使用了網易mumu模擬器

###

 

###

現在不管是用使用代碼的方式,往手機傳輸數據,

還是雲測平台,比如阿里雲測,華為雲測,

還是手機群控,兼容性測試,

還是說appium工具,

都是里面部分使用了adb的命令

##

 

###

什么是adb

ADB,全稱為Android Debug Bridge,它是 Android 開發/測試人員不可替代的強大工具。

只能操作安卓手機

 

###

 

###

adb的工作原理:

首先是adb client 和adb server,都是安裝在pc端的,守護進程是在app端的,

然后pc的adb client 輸入命令,adbserver會接收到這個命令,然后轉發給app端,這就是原理,

###

adb環境安裝:

去安裝安卓sdk,並且配置環境變量,這里不做介紹

###

adb連接設備查看狀態:

可以連接真機,或者模擬器,都行,

 

 mac連接的時候需要重啟一下服務,然后再去連接,就可以了,

 

 mac不需要安裝手機驅動,

 

通過adb devices,這個命令,

未授權,可能連接真機會有這個問題,

adb get-state,也可以查看連接狀態,

###

adb命令格式,和安裝卸載app

 

設備是一個可選項,可以不寫,

 

##

 

注意這個命令的,apk包,是在pc上面的路徑,

具體下載apk,可以去騰訊應用寶下載apk的文件,

 

###

 

如果多台設備的話,也是可以adb -s 設備名 uninstall XXX來指定設備卸載

###

實際這個安裝卸載app,比較雞肋,因為這個可以在模擬器里面安裝卸載app啊,

###

adb啟動app

 

###

 

這個命令很重要很重要!!!

adb shell "dumpsys window | grep mCurrentFocus"

知道這個就可以啟動app的這個頁面了

adb shell am start -n com.tencent.news/com.tencent.news.pubweibo.PubTextWeiboActivity

這個命令是先打開app的某一個頁面,然后執行這個命令,

###

 

這個命令非常的重要!!!

adb logcat ActivityMnanager:I | grep "cmp"------com.tencent.news/.activity.SplashActivity

adb shell am start -n com.tencent.news/.activity.SplashActivity

這個就是從啟動頁,開始啟動app,模擬用戶的真實操作,

這個是先打開日志這個命令,然后去操作app

###

使用adb shell 命令清理緩存

 

安卓的底層是使用的Linux內核的,所以Linux的命令都是通用的,

可以使用adb shell 直接進入這個安卓系統,

 

 

 所有應用包名列表:adb shell pm list packages

查看所有自己安裝的app,adb shell pm list packages -3

常用的adb shell操作----文件操作

進入手機設備:adb shell ---剩下的操作和Linux一樣

列出目錄下的文件和文件夾:ls

進入文件夾:adb shell cd <folder>

新建文件夾:adb shell mkdir path/foldername

 

###

 

所有的包都在cd /data/data/這個目錄下面,

查看ls | grep news

這個是一個目錄,可以進入,

我們操作了這個app之后,發現有些問題,想要回到初始的安裝的狀態,又不想要卸載重裝,怎么辦,就可以把所有的緩存都刪除,就是剛安裝好的初始狀態了,

 執行了這個命令之后,這個文件夾就只剩下lib目錄了,其他的文件夾都刪除了,

pm是package manage

am是activity manage,這兩個一個是包管理器,一個是頁面管理器,

###

####

 

###

手機電腦傳輸文件,

 

 

注意:導入導出要退出adb shell,

1.導入到app中,

adb push pc下文件路徑 device中目錄路徑

2.導出app中的到pc中,

adb pull device中的文件路徑 pc下的文件路徑

app中的/data/data/我們是不能操作的,這是系統目錄,

我們可以操作sdcard,這個目錄,ls /sdcard

可以使用vi,touch,這樣的命令,vim使用不了

可以把app的圖片和日志拉取出來,然后分析,

####

使用adb查看日志

 

###

 

設置成為V,會打印所有的日志,

開發人員一般是D,debug模式,

S是什么日志都不輸出,

###

 

這個日志不是全部的,這個日志很大的時候,會把之前的日志覆蓋,這個要注意,

 ###

 

###

 

###

 

 "*:W"這個是任意tag下的warning以上的日志

'*:S'  這個已經要有,意思就是設置為靜默模式,其他的都不展示,只展示我們想要的內容,

###

通過adb命令模擬手機按鈕操作

 在模擬器的設置里面,打開開發者模式,打開指針位置設置,

####

###

這個命令結合指針,很重要!!!

adb shell input tap 257 406

###

 

 adb shell input text 312312

###

 

  adb shell input swipe 479 769 479 1392

  adb shell input swipe 479 1392 479 769 2000 ----這個是慢慢的滑動, 

### 

 

實際上是手機所有的操作都是有一個key值得,可以看這個連接查看,

###

使用adb查看性能指標

 

###

 

###

 

 -d 1,就是每隔一秒,就打印一下性能情況

這個命令是實時的,這個更加的准確,上面的cpuinfo這個是某一個時間段內的平均值,

###

 

##

 

 ###

adb命令實現monkey壓力測試

 

###

 

壓力測試就是連續長時間的操作這個應用,能保證每一個按鍵,頁面都是操作到的,沒有性能問題,

比如內存泄漏,比如app無相應

為什么叫做monkey,因為是隨機性點擊操作,猴子上躥下跳的,客戶的操作也是隨機性的

我們只需要收集這個monkey的日志,然后分析,看看有沒有問題,

###

 

##

 

monkey是adb的一個應用,

###

 

 ###

 

adb shell monkey 100,就是100個事件,事件發送的非常的快,

 

下面是花費了多少時間,12s的時間就運行完了 ,

 如果想要看到運行的結果,那就是設置多一些,比如設置1000個事件,就可以看到運行的過程了,

 會隨機的吊起其他的應用,隨機性是非常的強的,

##

 

 剛剛我們看到,打印的日志是非常的少的,

我么可以使用這個命令,打印更多的日志,

可以看到發送了哪些事件,比如移動,點擊,滑動輸入,等等,

####

 

我們可以輸入很大的事件數,比如10萬個,

我們怎么停掉他呢?

 進入到設備里面,adb shell

殺掉進程,

 

所以monkey要停止,只有這三個情況可以停止,pc端是停止不了這個monkey的

###

 

一般我們就是只需要一個包壓力測試,

 ##

 

 

 

 300是毫秒

適當的延長時間,可以更好的模擬用戶操作,

###

 

 

問題:

這種都是隨機的操作,出現問題了,我們怎么復現呢?

 

 

可以看到每次開啟這個monkey任務的時候,有一個種子,找到這個種子號,我們可以重現這次隨機的操作,

####

 

##

啟動啟動monkey的時候我們可以看到比例

 

### 

比如有的app點擊事件比較多,比如抖音是滑動事件比較多,都可以設置的,

 

事件的權重合計,不能大於100%,

這個是根據產品的需求來設置的,

###

 

忽略異常,就不會運行是停止的了,

一般操作的時候,可以直接把這些都忽略掉,忽略崩潰,忽略超時,忽略安全異常,

###

 

###

第一種方式,直接輸出到pc電腦上了,執行了這個命令,頁面就不打印日志了,

這個會把每一個時間都打印出來,但是這些我們是不需要的,這個非常占據空間,有可能運行了幾天之后,磁盤都被占滿了都有可能,

第二種方式,我們可以對日志過濾,‘*E’這就是我只想關注error日志,

注意,我們可以執行運行的命令之后,再新開一個窗口執行第二個方式的命令,這種命令就會過濾日志,把我們的error輸出到文件,

###

 

####

8小時能執行多少個事件呢?怎么算,按照,每一個事件發送需要1毫秒算

8*60*60*1000/300=96000,不要被圖片上的誤導了,

###

 

  

###

 

可以在日志中搜索,

###
這個monkey,也有問題,有些時候,在一個頁面轉轉,跑不出來,而有些頁面就點擊不到,

####

==================結束=================

 

###

 

 

###

在移動端測試時,經常會用到adb,如果是同時多開多台設備,想要操作某個設備時就要指定設備才可以

命令:adb -s 127.0.0.1:62027 +命令就可以了 adb -s 設備 命令

 

###

 

 

 

 

 

###


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM