Appium 自動化測試第一天——基礎知識

來源:互聯網
上載者:User

標籤:令行   服務   使用   序列   version   width   基本   移除   rect   

概述

Adb作為PC和Android裝置互動與通訊的工具

Android調試橋接,Android DebugBridge,它是一個CS架構的命令列工具,作用就是PC通過adb來操作手機

Adb的組成

用戶端(client):所有命令都是PC發起,可以對Android應用進行安裝,卸載和調試(可以有多個視窗或程式發送命令)

服務端(server):管理用戶端到Android裝置上adb後台進程的串連(不同用戶端發來的命令都由伺服器負責和Android裝置通訊,他們之間的通訊都是通過5037連接埠串連)

守護進程:Android後台啟動並執行進程,負責接收命令(ADB伺服器和守護進程的通訊是通過相鄰的兩個連接埠實現的,偶數連接埠(比如5554)負責處理命令列的通訊,奇數連接埠(比如5555)是用來保持串連的,我們可以看到,adb伺服器可以和多台裝置串連,每串連一個,會分配兩個相鄰的連接埠出來,第一對是5554/5555,第二對就是5556/5557,相對應的,我們adb串連多台裝置的時候,需要指定連接埠號碼或者裝置名稱,伺服器會找到對應的裝置,進行通訊)

 

Adb環境配置

下載SDK-------將tools和platform-tools兩個目錄配置到系統內容變數PATH中-----這樣就可以直接在命令列中使用adb命令進行驗證了

 

ADB命令ADB基本命令格式

adb [-e | -d | -s<裝置序號>]<子命令>

 

參數

說明

-e

只運行在模擬器 adb -e shell

-d

只運行在真機adb -d shell

-s

運行在指定的裝置中,裝置序號通過adb device擷取到

help

列出adb協助檔案

version

列出adb版本

 

Adb基礎命令

 

檔案傳輸和安裝命令

 

子命令

參數

說明

devices

[-l]詳細資料

列出所有已經串連的裝置,有三種狀態
device/offline/device not fount
分別對應裝置串連正常,裝置斷線和裝置未找到

push

<local> <remote>

複製電腦本地檔案到手機裝置

pull

<remote> <local>

拉取手機裝置檔案到本地

install

[-lrtsd] <file>

安裝apk
-l:標識應用為受限制應用
-r:替換安裝
-t:運行安裝測試包
-s:安裝到SD卡
-d:允許降級安裝

install -mutiple

[-lrtsd] <file ...>

大量安裝
-p:部分應用程式安裝

uninstall

[-k] <package>

尋找包名可以通過命令(adb shell pm list packages | find “***”)

卸載
-k:保持data和cache下的檔案

 

擷取資訊命令

子命令

參數

說明

wait-for-device

等待裝置串連

start-server

開啟adb服務

kill-server

殺掉adb服務(adb連不上的時候可以嘗試)

get-state

擷取adb服務狀態
offline | bootloader | device

get-serialno

擷取SN號

get-devpath

擷取device-path

status-window

連續列印指定裝置的裝置狀態(監聽狀態)—做開發工具時使用較多

 

Log與重啟相關命令

子命令

參數

說明

bugreport

列印當前的dumpsys,sumpstate,logcat的輸出

logcat

參數較多,
需要單獨研究

輸出Android系統日誌

shell

參數較多,
需要單獨研究

進入遠程shell端

remount

重新掛載系統磁碟分割,是的系統磁碟分割重新可寫(多用於push到系統目錄之前)

reboot

[bootloader | recovery]

重啟

reboot -bootloader

重啟到bootloader

root

重新啟動adbd擷取root身份

usb

重新啟動adbd來監聽USB,相當於重新插拔USB

tcpip

<port>

重新啟動adbd來監聽指定的TCP連接埠

 

Adb備份與恢複命令

子命令

參數

說明

backup
(將一頁的資料檔案寫入到指定的檔案,如果沒有指定-f輸出目錄,則儲存在目前的目錄的backup.ab)

[-f<file>]

指定備份目錄

[-apk | -noapk]

是否備份apk檔案,預設為否

[-obb | -noobb]

是否備份obb資料包,預設為否

[-shared | -noshared]

是否備份SD卡共用內容,預設為否

[-all]

備份所有已安裝應用

[-system | -nosystem]

是否備份系統應用,-all包括系統應用

[<packages...>]

備份指定的應用列表

restore

將備份檔案恢複到手機中

 

這兩個命令可以實現資料的備份以及兩台手機間的資料恢複等情境

如的操作步驟可以將手機完全備份,備份的過程中可以進行加密,這樣恢複的時候也要求輸入密碼

 

 

Adb重新導向連接埠命令

連接埠映射模型

將開發PC上的連接埠(1314)重新導向到裝置的連接埠(5200)上,這樣所有發往PC連接埠1314的資料都會被轉寄到裝置連接埠5200。

這個機制可以實現遠端控制Android裝置應用。

具體命令如下表格,具體應用後續如果使用到再進行補充

子命令

參數

說明

forward --list

列出所有通訊端串連列表

forward

<local><remote>

重新導向連接埠

forward --norebind

<local><remote>

重新導向連接埠,假如local連接埠已經被佔用則失敗

forward --remove

<remote>

移除本地已串連的通訊端

forward --remove-all

移除本地已串連的所有通訊端

reverse --list

列出所有串連裝置的反向串連通訊端

reverse

<remote><local>

反向串連通訊端

reverse --norebind

<remote><local>

反向串連,假如連接埠被佔用則失敗

reverse --remove

<remote>

刪除一個特定的逆轉通訊端串連

reverse --remove-all

刪除所有特定的逆轉通訊端串連

 

 

 

 

Adb無線串連與檔案同步

Adb無線串連可以不使用USB來直接調試Android裝置,這樣就是通過TCP/IP串連來操作裝置,其實和操作模擬器的原理是一致的

子命令

參數

說明

connect

<host>[:<port>]

通過TCP/IP串連到裝置,如果沒有指定連接埠號碼則使用5555作為預設連接埠

disconnect

<host>[:<port>]

斷開與TCP/IP裝置的串連,如果沒有指定連接埠號碼則使用5555作為預設連接埠,如果使用這個命令沒有附加參數,將連接埠所有串連的TCP/IP裝置

sync

[<directory>]

只要檔案發生改變時就會自動從主機拷貝到裝置,需要指定環境變數ANDROID_PRODUCT_OUT為同步目錄

同步檔案的使用情境多為有多個so檔案等需要同步,如果一個個刪除再push的話會耗費很大的工作量,這時候使用同步命令

無線串連和同步的具體操作後續完善補充

 

Adb串連問題Adb list of devices attached

Windows:

首先安裝驅動程式,看裝置管理員驅動是否安裝成功,不能安裝驅動可以藉助隨便一個手機小幫手解決

然後開啟手機開發人員選項中的usb調試,並允許電腦始終對手機usb調試

連不了的時候首先用adb kill-server和adb start-server進行重啟adb,或者用命令查看是哪個進程佔用了5037連接埠,然後進行釋放

參考:http://blog.csdn.net/johnnycode/article/details/7678083

這時候如果這些準備好的話應該是可以正常串連的,我們的手機序號應該已經寫入了Windows下的.android隱藏目錄下的adb_usb.ini檔案,但還是同樣的adb list of devices attached,這時候我們要考慮自動連接寫入的adb裝置號是否和我們終端使用的adb為同一個路徑,在合適的位置寫入正確的裝置號即可,親測有效,記得加0x

參考:http://blog.csdn.net/join_12/article/details/45970717

 

Ubuntu:和Windows下的基本思路是一致的,具體的操作方法參考如下文章:

http://blog.csdn.net/mr_driver/article/details/8449642

 

Adb devices offline

連接埠搶佔,可以參考上述方法解決

 

Appium 自動化測試第一天——基礎知識

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.