自動化篇 | 聊聊 ADB

自動化篇 | 聊聊 ADB

對於 Android 端的自動化測試,ADB 的重要性不言而喻,不少開源的自動化框架操做大都是利用 ADB 命令來完成。android

下面對 ADB 在平時自動化操做過程當中一些問題作一個彙總。shell

1、ADB 簡介windows

ADB 全稱:Android Debug Bridge,是一種命令行工具,方便 PC 端和手機端進行通訊。緩存

只須要去官網下載 Android SDK,而後根據 ADB 文件的路徑 配置環境變量 便可。框架

2、鏈接設備tcp

進入設置裏的開發者選項,開啓開發者選項和 USB 調試。
自動化篇 | 聊聊 ADBide

數據線直連設備:可使用 adb devices 檢查設備是否鏈接成功。
自動化篇 | 聊聊 ADB工具

無線鏈接設備:測試

無線鏈接設備須要分 3 步完成。分別是:讓 PC 和設備在同一局域網、映射端口、經過 IP 完成鏈接。ui

# 映射端口
adb tcpip 端口號

# 經過 IP 地址鏈接
adb connect 設備IP

3、獲取應用包名、入口 Activity

自動化打開目標應用 App 須要應用包名和入口 Activity 參數,獲取這兩個參數有多種方式。

其中最經常使用的方式是利用 adb shell dumpsys 命令。

# 獲取應用的包名和入口 Activity
adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp' --color=always

另一種方式是在安卓應用市場下載目標應用的 Apk,而後利用 Android Studio IDE 分析 APK,拿到 Manifest.xml 文件,獲得應用的包名和入口 Activity。

4、經常使用操做

Airtest、Appium 等自動化框架都是在 ADB 的基礎上進行了封裝,使咱們對打開應用、點擊、滑動等操做變得很簡單。

可是,下面操做直接 adb 會更方便。

# 滑動,直接使用起始座標更方便
adb shell input swipe 開始x座標 開始y座標 結束x座標 結束y座標 滑動時長

# 上傳圖片到設備
adb push 文件本地路徑  設備路徑

# 手機下載到PC端
adb pull 文件在設備上的路徑  PC端本地路徑

# 生成當前界面的UI元素樹
adb shell uiautomator dump /data/local/tmp/uidump.xml

# 清除應用App緩存數據
adb shell pm clear

須要注意的是,利用 adb shell am 命令打開應用的方式適用於部分不兼容自動化框架的 App。

# 方式一:(適用於大部分應用,可是打不開手淘App)
os.popen('adb shell am start -n %s/%s' % (package_name, activity_name))

# 方式二:
os.popen('adb shell am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -n %s/%s' % ( package_name, activity_name))

# 方式三:
os.popen('adb shell am start  %s/%s' % (package_name, activity_name))

5、元素獲取

元素獲取的方法也有 3 種。

方法一:是直接使用 adb 命令拿到當前界面的 UI 樹,進而查找元素的 ID 或者文本屬性。

自動化篇 | 聊聊 ADB
方式一隻適合分析簡單的界面,分析複雜的界面元素定位就沒有那麼直觀了。

方式二:使用 Android SDK 自帶的 Monitor 工具。

配置 SDK 環境以後,只須要命令行輸入 Monitor 便可以打開 DDMS。
自動化篇 | 聊聊 ADB

打開 DDMS 後,點擊左側的 Dump View 按鈕,點擊中間的手機元素,右側就能分析元素的層次結構和元素屬性。

方式三:和方式二類型,用 SDK 自帶的工具 uiautomatorviewer 雙擊後打開。

自動化篇 | 聊聊 ADB
六、經常使用問題

adb 常見的問題包含:設備找不到或者設備鏈接不上。

請先確認手機開發者模式和 USB 模式開啓,PC 端的 ADB 環境配置成功。

最後,試試斷開全部鏈接或者重啓設備。

# 斷開全部鏈接
adb disconnect 

# 重啓手機
adb reboot

# 查看設備
adb devices
推薦閱讀

閒魚上哪些商品搶手?Python 分析後告訴你

聊聊 Airtest 自動化工具

薅羊毛 | Python 自動化帶你輕鬆賺錢(完結版)

THANDKS-End -

相關文章
相關標籤/搜索