如何同時測試兩台以上的 Android 裝置

前情提要:每次連接兩台以上的 Android 裝置,都不能使用 adb command 來執行安裝或解除安裝 Apk,他會跳出下列錯誤:

error: more than one device and emulator

因為連接到多台裝置,導致電腦不知道該對哪一台裝置進行動作。因此我們都習慣性只連接一台裝置來執行測試。

但最近在做一個需要長時間執行的自動化測試,執行測試有時候時間需要超過 6 小時以上,在執行長時間的測試時,就不能使用其他 Android 裝置做其他測試。尤其是在上班時執行需長時間的測試時,就會沒辦法進行其他的開發工作,因此感到很困擾。

根據上述的情況,有想到以下幾種方式可以暫時解決這個問題:

1. 分配時間測試(work around)

將這種比較花時間的測試,擺到假日或下班時間再開始測試,妥善運用時間,開發自動化測試碼這種執行的測試時間通常較短,可以在上班時間邊開發邊測試,讓此 Android 裝置不眠不休地幫忙測試。但此種方式並不是個好解法,能夠同時用兩隻不同的手機執行,會比利用時間的方式要來的有效率多。

2. 使用 VM 當節點(work around)

當一台電腦只能接一台 Android 裝置執行測試的前提下,我們可以使用 virtual machine 來達到多台電腦測試多台 Android 裝置。但使用此方式還要多安裝 VM,開了 VM 可能會使電腦的執行速度變慢,影響到開發效率,因此只能算暫時解決此問題,不能算是個好方法。

 

使用 work around 並不是長遠之計,所以就搜尋了官網,並沒有提供傳入裝置參數的選項可以使用,但發現有網頁提到「設置 Android Serial」這點,發現原來可以指定 Android Serial 來選擇要使用哪一台裝置,當初會跳出錯誤就是因為沒有設置 Android Serial。

所以我就照著別人筆記的方式來使用看看,我的目標為兩個可以同時拿到 Log 資訊:

1. 使用 adb devices 得到 Android 裝置的序號

(以下假設裝置 A 序號為「ABC」;裝置 B 序號為「DEF」)。

2. 設置 Android Serial 等於「ABC」。

在 Windows 上使用的 shell script 語法為:

set ANDROID_SERIAL=’ABC’

在 Mac 上使用的 shell script 語法為:

export ANDROID_SERIAL=’ABC’

3. 執行 adb logcat 就都會只將裝置 A 的 Log 顯示在其 console 視窗內。

4. 開啟另外一個 console 視窗,同步驟二設置 Android Serial 等於「DEF」。

5. 執行 adb logcat 就都會只將裝置 B 的 Log 顯示在其 console 視窗內。

要對更多其他裝置使用時,則在其他 console 內先設置該裝置的 Android Serial,即可只對某一台裝置進行操作。

 

現在才發現原來只要事前多做一步這麼簡單的步驟,就可以同時執行多台裝置進行測試,讓測試更加有效率。雖然覺得相見恨晚,但還好現在知道了,以後就不用為了不能同時使用不同 Android 裝置測試困擾了!

 

參考文章:

Android uiauatomator 官網

使用 uiautomator 做 UI 測試(別人筆記)

廣告

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s