本節(jié)大綱
- ADB簡介及安裝
- ADB命令及input命令詳解
- Python+ADB實現App自動化測試實戰(zhàn)
為什么稱之為妙用?
因為一般的話ADB我們是跑一下Monkey或者查看一下日志爱谁,就比如說我們測試APP的時候可能有一些錯誤嗎彻犁,不能及時查看横缔,或者要測試一些性能上兼容的問題,我們就會用到ADB查看log日志,用得會比較多。
ADB其實也能通過它來進行一個自動化測試靖秩,是它被疏忽的一個功能。
那么什么是ADB呢竖瘾?
01.ADB簡介及安裝
什么是ADB沟突?
- ADB全稱為Android Debug Bridge,起到調試橋的作用捕传,是一個客戶端-服務器端程序惠拭。其中客戶端是用來操作的電腦,服務端是Android設備。
- ADB也是Android SDK中的一個工具庸论,可以直接操作管理Android模擬器或者真實的Android設備职辅。
為什么要用ADB棒呛?
ADB可以直接操作管理手機模擬器或者真實的手機設備(如三星手機)。它的主要功能有:
1.運行設備的shell(命令行)
2.管理模擬器或設備的端口映射
3.計算機和設備之間上傳/下載文件
4.可以對設備的應用進行卸載安裝等其實簡而言說域携,adb就是連接Android手機與PC端的橋梁簇秒,可以讓用戶在電腦上對手機進行全面的操作!
JDK安裝&環(huán)境變量配置
1.安裝:默認安裝
2.環(huán)境變量配置
- 新建JAVA_HOME:安裝路徑
- 新建CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
- 在path中增
; %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
3.驗證是否安裝好
javac java java -version
Android SDK安裝與變量配置
1.下載: http://www.androiddevtools.cn/
2.安裝:解壓即可
3.環(huán)境變量配置
- 新建ANDROID_HOME:解壓路徑
- 在path中增加:
.;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
4.驗證是否安裝好
android -h
模擬器安裝
1.模擬器選擇:夜神、逍遙涵亏、雷電宰睡、MuMu蒲凶、藍疊等等
2.下載:夜神模擬器: https://www.yeshen.com/
3.安裝:默認安裝即可气筋,記住安裝路徑。后續(xù)ADB配置要用到旋圆。
ADB配置
ADB是Android SDK自帶的命令行工具宠默,我們前面裝好了Android SDK,所以在這只需要驗證ADB能否使用就ok
進入cmd,輸入adb --version
,可以顯示adb的版本號就表示adb環(huán)境是ok的
ADB連接模擬器
前提:
1.打開模擬器
2.打開模擬器的usb調試;
進入設置--開發(fā)者選項--打開usb調試灵巧。
-
如果沒有開發(fā)者選項搀矫,在設置--關于平板電腦,連續(xù)點擊版本號多次刻肄,直到提示您已處于開發(fā)者模式瓤球。然后就可以在設置下看到開發(fā)者選項了。
ADB連接模擬器
ADB連接模擬器-成功
打開cmd敏弃,輸入adb devices,查看設備是否連接;顯示設備號和device則表示連接成功卦羡。
連接信息解釋
1.手機設備:顯示設備的序列號,即b2355f8a
2.模擬器:顯示ip地址和端口麦到,即127.0.0.1:62001
3. device:已識別的設備绿饵,連接成功
4. unauthorized:沒有授權,需要手機上授權后才能連接--手機上會彈出來一個授權框
5. unkown:未識別的設備--電腦上沒有手機的驅動瓶颠,安裝一個手機助
手(豌豆莢拟赊,91助手),自動安裝驅動
6.offline:離線設備--重新插拔usb
ADB連接模擬器-失敗
打開cmd粹淋,輸入adb devices,查看設備是否連接吸祟,如下圖所示,則表示adb版本有問題桃移。
原因:夜神模擬器帶了一個ADB欢搜,Android SDK也有一個ADB,當兩者版本不一致時就會出現如下問題
解決:統(tǒng)一ADB版本即可谴轮。
02.ADB命令及input命令詳解
ADB常用指令
ADB -input事件
input可以用來模擬各種輸入設備的輸入操作炒瘟。
ADB -input參數
部分參數說明
- source對應各種輸入源。一般開發(fā)中都是用默認值即可第步。也就是說一般使用中我們的參數中并沒有source疮装。
- commands對應輸入命令缘琅,命令中text和keyevent是通用的; tap和swipe適用于觸摸屏;而press和roll用于有觸摸球的設備,由于使用的很少廓推,因此不做說明刷袍。
ADB -input tap模擬屏幕輕觸
模擬屏幕輕觸(tap):主要用于模擬手指在屏幕的輕觸點擊。
參數:
兩個參數樊展,點擊的坐標
模擬在屏幕上點擊的位置
ADB -input swipe模擬屏幕滑動
模擬屏幕滑動(swipe):主要用于模擬手指在屏幕的滑動呻纹。
參數:
四個參數,分別是起始位置的坐標和結束位置的坐標
模擬在屏幕上的直線滑動
ADB -input swipe模擬長按操作
模擬長按操作(swipe):主要用于模擬手指在屏幕上長按专缠。
參數:
五個參數雷酪,分別是起始位置的坐標和結束位置的坐標,長按時長(單位毫秒)
模擬在屏幕上的長按操作
ADB -input keyevent模擬按鍵
模擬按鍵(keyevent) :主要用于模擬鍵盤的輸入涝婉,因此是在用鍵盤的地方才用得到哥力。
常用按鍵
OS模塊
os.system(cmd):用來執(zhí)行cmd指令,在cmd輸出的內容會直接在控制臺輸出墩弯,返回結果為0表示執(zhí)行成功吩跋。
注意:os.system是簡單粗暴的執(zhí)行cmd指令,如果想獲取在cmd輸出的內容渔工,是沒辦法獲到的
App實戰(zhàn)需求
案例需求:
(相對應的視頻教程公號主頁點擊領取資料)
用ADB+Python實現如下流程锌钮,點擊桌面的開發(fā)真頭條應用,進入應用后點擊我的引矩,點擊登錄/注冊進入登錄界面梁丘,在手機登錄界面分別輸入手機號碼、驗證碼脓魏,點擊登錄兰吟。
1、點贊茂翔。防止以后找不到混蔼,想看的時候,在自己主頁就能找到了珊燎,很方便;
2惭嚣、關注我。讓我們成為長期關系悔政,下一篇文章會分享更多的硬核干貨;
3晚吞、本文章學習資源,均可以免費分享谋国。
就好比你看到優(yōu)質的回答點個贊槽地,表面上是為了讓作者開心,實際上可以讓大數據和人工智能給你推薦更多優(yōu)質的干貨內容~
文章首發(fā)于 微信公眾號:程序員一凡 ,轉載請注明出處捌蚊!這樣的好內容集畅,里面還有近百篇。 謝謝你的支持缅糟!