背景:
由于公司要測試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、手機電池壽命更長