[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、手機電池壽命更長

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章