天天看點

[Android] 基于WLAN無線執行自動化方法

背景:

由于公司要測試APP 産品的耗電問題,我們采取的辦法很low,對各個子產品功能進行大量的手動測試,再通過Emmagee或GT得出來的結果來評估産品耗電,流量,CPU,記憶體的消耗等。由于手工效率太低,而且不準确,我們就決定用自動化來實作,但用自動化又面臨了一個USB接電腦供電的問題,進而導緻計算出來的功耗與手動跑的有很大的誤差。

1、将 Android 裝置和 adb 主計算機連接配接到這兩者都可以通路的常用 WLAN 網絡。

注意,并非所有通路點均适用;可能需要使用已正确配置防火牆的通路點以支援 adb 的通路點。

注:如果您嘗試連接配接到 Android Wear 裝置,則通過關閉與其連接配接的手機的藍牙強制将它連接配接到 WLAN。

2、使用 USB 電纜将裝置連接配接到主計算機。

3、設定目标裝置以偵聽端口 5555 上的 TCP/IP 連接配接。

didi@localhost  ~  adb devices
List of devices attached
68de2f65 device
 
didi@localhost  ~  adb tcpip 5555
restarting in TCP mode port: 5555           

4、從目标裝置斷開 USB 電纜連接配接。

5、查找 Android 裝置的 IP 位址。例如,在 Nexus 裝置上,您可以通過通路 Settings > About tablet(或 About phone) > Status > IP address 查找 IP 位址。或者,在 Android Wear 裝置上,您可以通過通路 Settings > Wi-Fi Settings > Advanced > IP address 查找 IP 位址。

6、連接配接至裝置,通過 IP 位址識别此裝置。

didi@localhost  ~  adb connect 172.22.139.35
connected to 172.22.139.35:5555           

7、請确認您的主計算機已連接配接至目标裝置:

didi@localhost  ~  adb devices
List of devices attached
172.22.139.35:5555 device           

8、更改datest - capabilities中手機的udid:

capability="sm_g9300-68de2f65"
capabilities[capability] = {}
capabilities[capability]['platformName'] = 'Android'
capabilities[capability]['platformVersion'] = '7.0'
capabilities[capability]['deviceName'] = '68de2f65'
# capabilities[capability]['udid'] = '68de2f65'
capabilities[capability]['udid'] = '172.22.139.35:5555'
capabilities[capability]['appPackage'] = 'com.sdu.didi.psnger'
capabilities[capability]['appActivity'] = 'com.didi.sdk.app.launch.DidiLoadDexActivity'
capabilities[capability]['noReset'] = 'true'
capabilities[capability]['newCommandTimeout'] = 300
capabilities[capability]['command_executor'] = "http://127.0.0.1:4723/wd/hub"
capabilities[capability]['recreateChromeDriverSessions'] = 'true'
capabilities[capability]['unicodeKeyboard'] = 'true'
capabilities[capability]['automationName'] = "uiautomator2"
# capabilities[capability]['systemPort'] = 8201           

現在,可以開始操作了!

PS:

如果 adb 連接配接丢失:

請確定您的主機仍與您的 Android 裝置連接配接到同一個 WLAN 網絡。

通過再次執行 adb connect 步驟重新連接配接。

如果無法連接配接,則重置 adb 主機:

didi@localhost  master ●  adb kill-server           

然後,從頭開始操作。

經測試,腳本運作的速度和有線并無太大的差異,無線啟動appium感覺比有線稍微慢,大概在10秒左右,在可以接受範圍。

至此,我們已經可以解決這幾個問題了:

1、我們不必非要連接配接資料線做安卓的自動化測試

2、我們可以更精确的來衡量功耗的使用

3、手機電池壽命更長

繼續閱讀