在實際行動裝置上測試

一般問題

問:什麼是 AWS Device Farm?

AWS Device Farm 可讓開發人員透過在 AWS 雲端使用真實的 Android 和 iOS 裝置進行測試與互動,藉此提升應用程式品質、縮短上市時間及提高客戶滿意度。開發人員可以上傳他們的應用程式和測試指令碼,並在 100 多個真實裝置上平行執行自動化測試,短時間內快速取得結果、螢幕擷取畫面、影片和效能資料。他們也可以透過 Web 瀏覽器使用撥動、手勢和互動來操作裝置,進行偵測和重現客戶的問題。

問:哪些人應該使用 AWS Device Farm 以及原因為何?

AWS Device Farm 是專為開發人員、品質保證團隊及客戶支援代表而設計的,這些人員建置、測試和支援行動應用程式以提升應用程式的品質。由於裝置型號繁多、韌體和作業系統版本的差異、各種廠商和製造商自訂項目以及遠端服務和其他應用程式的相依性,應用程式品質越來越重要且變得日益複雜。AWS Device Farm 可在多個裝置上執行測試以加速開發程序,讓開發人員、品質保證和支援專業人員能夠執行自動化測試和手動任務,例如,重現客戶問題、對新功能的探索測試以及手動進行測試計劃。而且,AWS Device Farm 無需內部裝置實驗室、實驗室管理員和自動化基礎架構開發,能夠大幅節省成本。

問:AWS Device Farm 支援哪些類型的應用程式?

AWS Device Farm 支援原生和混合 Android、iOS、Web 應用程式及跨平台應用程式,包括使用 PhoneGap、Titanium、Xamarin、Unity 和其他架構建立的應用程式。

問:AWS Device Farm 是否使用模擬器?

AWS Device Farm 測試在真實的裝置上執行。這些裝置混合了 OEM 和具有廠商品牌的裝置。

設定測試與遠端存取工作階段

問:如何開始使用 AWS Device Farm?

請參閱我們的入門指南

問:AWS Device Farm 主控台支援哪些瀏覽器?

AWS Device Farm 可在 Internet Explorer 9 (或更新版本) 以及 Chrome、Firefox 和 Safari 的最新版本上運作。

問:測試 Web 應用程式時支援哪些瀏覽器?

您可以在 Android 的 Chrome 和 iOS 的 Safari 上測試 Web 應用程式。

問:應用程式和測試的檔案大小上限為何?

AWS Device Farm 支援的檔案大小最高為 4 GB。

問:是否需要檢測應用程式或提供原始程式碼?

無需檢測或提供原始程式碼即可使用內建測試。可依現況提交 Android 應用程式。建立 iOS 應用程式時應以「iOS 裝置」為目標,而非模擬器。

問:是否會將我的應用程式、測試和其他檔案存放在伺服器上? 會存放多久?

應用程式和測試套件在 30 天之後會自動移除。日誌、影片記錄和其他成品會存放 400 天。您也可選擇透過 AWS Device Farm 主控台或 API 隨時刪除檔案和結果。

問:完成測試之後會如何清理裝置?

測試執行完成之後,我們會在每個裝置執行一系列的清理任務,包含解除安裝您的應用程式。如果我們無法確認應用程式解除安裝程序或任何其他清理步驟是否成功,則會移除該裝置,而且之後將無法再使用。

雖然我們持續新增其他清理步驟和改善清理程序,在某些情況下還是會在工作階段之間殘留部分資料,尤其是當您使用裝置系統處理應用程式外的工作時。基於這個原因,以及 AWS Device Farm 會在您使用每個裝置時擷取活動的影片和日誌,因此建議您不要在自動化測試和遠端存取工作階段期間提供或輸入敏感資訊,像是帳戶資訊 (例如,Google 帳戶、Apple ID)、個人資訊,以及其他安全性敏感的詳細資訊。

問:是否會修改我的應用程式?

在 iOS 上,我們會將內嵌佈建設定檔取代為萬用字元設定檔,然後放棄應用程式。如果提供,我們會在安裝前於應用程式套件中新增輔助資料,這樣資料就會出現在您的應用程式沙盒中。放棄 iOS 應用程式會導致某些權利遭到移除。這包含 App Group、 Associated Domains、Game Center、HealthKit、HomeKit、Wireless Accessory Configuration、In-App Purchase、Inter-App Audio、Apple Pay、Push Notifications 和 VPN Configuration & Control。

在 Android 上,我們會放棄應用程式。這可能會破壞依存於應用程式簽章的功能,例如 Google Maps Android API。也可能會觸發產品提供的反盜版和反竄改偵測功能,例如 DexGuard。針對內建測試,我們會修改資訊清單以包含擷取和儲存螢幕擷取畫面所需的許可。

選取裝置

問:AWS Device Farm 提供哪些裝置? 如何選取機群中的裝置?

AWS Device Farm 提供多種 (且不斷擴增) Android、iOS 和 Fire OS 裝置選擇。當製造商推出熱門的新裝置後,我們也會立即將其加入。我們也會在新的作業系統版本發行時加入新的裝置。請參閱可用的裝置清單。

問:AWS Device Farm 是否提供來自歐洲、中國和印度等市場的國際版裝置?

我們目前擁有來自印度的國際裝置。我們使用市場資料和客戶的意見回饋不斷更新機群。如果您想查看不在我們機群中的裝置,請聯絡我們

問:如何選擇裝置? 是否可在同一個裝置上重新測試?

您可在稱為裝置集區的集合中選擇裝置進行「自動化測試」。某些專門的裝置集區會自動提供,但您也可建立自己的集區。在執行期間,測試會在與您應用程式和測試相容的指定集區中的所有裝置上執行。如果是「遠端存取」,您可根據製造商、型號、廠商和作業系統版本選取所需的裝置。接著您可以選擇上傳應用程式和其他資料,還可以設定其他裝置設定。接下來 Device Farm 會找出符合您請求的可用裝置,並在瀏覽器中顯示這些裝置。然後您可以與裝置互動,擷取螢幕畫面和影片。

問:AWS Device Farm 測試裝置上是否預先安裝任何應用程式?

是,測試裝置上有裝置製造商或廠商預先安裝的一些應用程式。

問:裝置是否能與網際網路上提供的其他服務或系統通訊?

是。所有裝置都有可存取網際網路的 WiFi 連線。如果您的系統位於內部 (也就是在公司防火牆後方),您可以允許 IP 範圍 54.244.50.32-54.244.50.63。所有裝置流量將會來自這些 IP。

問:是否可以測試不同的電訊廠商連線和條件?

雖然您無法測試實際的電訊廠商連線,但可使用網路成形功能來模擬連線類型和條件。當排程執行時,您可選擇一個專門的網路設定檔,如 "3G" 或 "Lossy LTE",或者是建立自己的網路設定檔,以控制輸送量、抖動情形及耗損等參數。來自裝置的所有 WiFi 流量會在測試期間,根據所選的設定檔加以成形和操作。您也可以從測試指令碼變更網路參數,以模擬動態環境。

問:是否可透過裝置撥打電話或傳送 SMS?

否,裝置未配有電訊廠商連線,因此無法撥打電話或傳送 SMS。

問:是否能使用裝置的相機功能?

是,您可以使用裝置的相機功能,前方相機和後方相機皆可使用。由於裝置掛載的方式,影像和影片可能會看起來較暗且模糊。

測試您的應用程式

問:我還沒有任何自動化的測試指令碼。內建測試的作用為何?

內建相容性測試套件讓您能在應用程式上安裝、解除安裝、啟動和執行 Fuzz。

問:Fuzz 的作用為何?

Fuzz 會在啟動之後立即在 UI 上執行 Fuzz 測試。它會快速隨機串流使用者輸入 (觸控、撥動、鍵盤輸入) 到您的應用程式中。您可以設定事件數量、事件間的延遲和用來隨機排列事件的種子。在測試回合中使用相同的種子會產生相同順序的事件。

問:我使用自動化架構進行測試。貴公司可支援哪些架構?

AWS Device Farm 支援對 Android 和 iOS 平台的本機、混合和 Web 應用程式進行測試。預設支援以下架構:Appium Java JUnit、Appium Java TestNG、Appium Python、Appium Ruby、Appium NodeJS、Instrumentation(包括 JUnit、Espresso 和大多數以 Instrumentation 為基礎的測試)和 XCTest (包括 XCUI 和 KIF)。如需詳細資訊和支援架構的完整清單,請瀏覽我們的文件

問:支援哪些 Web 應用程式測試架構?

您可以執行以 Appium Java JUnit、Appium Java TestNG 或 Appium Python 編寫的測試。

問:是否可以針對修改過的架構或我自己設計的架構新增支援?

我們會不斷評估要支援的架構。請連絡我們

問:AWS Device Farm 如何決定測試期間抓取螢幕擷取畫面的時機?

如果您使用其中一種支援的自動化架構,則您有完整的控制權,可以決定抓取螢幕擷取畫面的時機。這些螢幕擷取畫面會自動加入您的報告。

問:Android:您的裝置是否有 Google Play 服務? 安裝的是哪個版本?

有,支援 Google Play 服務的裝置上都安裝了 Google Play 服務。一有最新的版本,服務就會進行更新。

問:Android:裝置上是否有預設的 Google 帳戶?

否,裝置上沒有作用中的 Google 帳戶。

問:AWS Device Farm 是否支援記錄和播放自動化,或者我需要編寫自己的指令碼?

AWS Device Farm 支援 Espresso 和 Robotium 這類架構,這種架構具備記錄和播放編寫指令碼工具。

問:iOS:是否需要將您的 UDID 新增至我的佈建設定檔?

否,AWS Device Farm 將會自動取代佈建設定檔,並放棄您的應用程式,以便直接部署在我們的裝置上。

問:iOS:我的應用程式不包含偵錯符號。我是否能夠提供 dSYM 檔案到 AWS Device Farm?

否,但您可以下載日誌,並在本機符號化堆疊追蹤。

問:Android:我的應用程式有混淆代碼。是否仍然可以在 AWS Device Farm 上測試我的應用程式?

是,如果使用 ProGuard 就可以。如果您使用 DexGuard 搭配反盜版措施,我們將無法重新簽署應用程式並執行測試。

問:我的應用程式提供廣告服務。這些廣告是否會在您的裝置上顯示? 我的廣告供應商會將它標示為濫用並禁用我的帳戶嗎?

雖然裝置可以存取網際網路,但我們不保證一定會顯示廣告。建議您從 AWS Device Farm 上測試的組建中移除廣告。

問:測試期間是否可以存取託管裝置的機器或存取其殼層? 是否可以從該處連接網際網路?

是。如果您使用 Calabash、Appium 或 UI Automation 這類主從式架構,就可以從主機存取網際網路及執行有限的殼層命令。

問:我想要提供媒體或其他資料供應用程式使用。要怎麼做?

您可以提供大小最多 4 GB 的 .zip 存檔。在 Android 這個存檔會解壓縮到外部記憶體的根目錄;在 iOS 則會存放至您的應用程式沙盒中。對於 Android 擴展檔案 (OBB),我們會自動將檔案放到適合 OS 版本的位置。如需詳細資訊,請參閱開發人員指南

問:我的應用程式需要相依項目來測試所有功能。是否可以安裝其他應用程式?

是,您可以選擇多個應用程式,並以自己選擇的順序進行安裝。這些相依應用程式會在測試開始前完成安裝。

問:是否可以測試應用程式的升級流程? 如何安裝舊版應用程式?

是,為了測試您的升級流程,可以在安裝並測試新的應用程式版本前,先上傳並安裝舊版應用程式。

問:我的應用程式使用位置服務。是否可以指定裝置的實體位置?

是,您可以提供經緯度座標,用於覆寫裝置的 GPS。

問:是否可執行當地語系化測試? 如何變更裝置的語言?

是,您可以提供地區設定 (例如 "zh_TW") 以覆寫裝置的預設地區設定。

問:要等待多久時間才會開始測試?

測試會立即排入執行佇列,通常幾分鐘內就會開始。如果有一或多個裝置無法使用,對這些裝置執行的測試會持續保留在佇列中,直到裝置可用為止。在您的測試回合中,對其他裝置的測試會持續執行。

問:允許的測試時間上限為何?

允許的時間上限為 150 分鐘。 

問:AWS Device Farm 是否提供透過 API 執行測試和取得結果的方式?

是。我們提供適用於 Jenkins 持續整合環境的外掛程式,還有與 Android Studio 相容的 Gradle 外掛程式。AWS Device Farm 也提供適用於所有主控台功能的程式設計支援,包含透過 API 設定測試和下載測試結果。如需詳細資訊,請參閱 AWS Device Farm API 參考。除了 API,您可以從 AWS 開發套件存取 AWS Device Farm。

查看結果

問:AWS Device Farm 測試報告提供哪些內容?

AWS Device Farm 測試報告包含通過/失敗資訊、損毀報告、測試日誌、裝置日誌、螢幕擷取畫面、影片及效能資料。報告同時包含詳細的每一裝置資料和簡要的結果,像是特定錯誤的出現次數。遠端存取結果包含日誌和工作階段影片。

問:AWS Device Farm 報告中包含哪些裝置日誌?

AWS Device Farm 報告包含完整的 logcat (Android) 和裝置日誌 (iOS),以及來自裝置主機和指定測試架構的日誌。

問:我的測試會產生和儲存額外的日誌檔。是否會在 AWS Device Farm 報告中看到這些檔案?

如果您將資料寫入 logcat (Android) 或裝置日誌 (iOS),這些日誌項目會被加入報告。雖然您可能會使用裝置或裝置主機的網際網路連線透過測試指令碼傳輸檔案,但 AWS Device Farm 不會收集任何非標準日誌或其他成品。

定價

問:AWS Device Farm 的費用是多少?

定價依裝置分鐘計費,依據您在每個選取的裝置上使用的測試持續時間計算。AWS Device Farm 提供 1000 裝置分鐘的免費試用時間。* 之後的每一裝置分鐘以 0.17 USD 計費。隨著測試需求的增加,您可以選用無限制測試計劃,每個月支付每個裝置 250 USD 的固定費用,以進行不限次數的測試。

問:如何免費試用裝置?

前 1000 個裝置分鐘數免費。這是一次性的試用,無法續約。一旦您的試用分配用盡,之後每個裝置分鐘數以 0.17 USD 的標準費率計費。

問:什麼是裝置分鐘?

裝置分鐘是計費單位。裝置分鐘是計算用於安裝、執行和解除安裝應用程式,以及在選定用於執行測試的每個裝置上進行測試的時間 (以分鐘計)。無論裝置、測試或應用程式類型為何,單價都相同。裝置分鐘只針對沒有任何裝置或系統錯誤而完成的測試計費。同樣地,對於遠端存取工作階段,裝置分鐘是從準備符合規格裝置到完全移除您放置在裝置上的任何應用程式和資料的時間計算。

您可以根據本身的商業需求動態增加和縮減用量,沒有任何上限或預先消費承諾。

問:如何免費試用裝置?

前 1000 個裝置分鐘數免費。* 這是一次性的試用,無法續約。一旦您的試用分配用盡,之後每個裝置分鐘數以 0.17 USD 的標準費率計費。

問:什麼是無限制計劃,還有裝置插槽如何運作?

無限制計劃的起始價格為每月 250 USD,可進行無限制的測試和遠端存取。無限制定價是按照為每個使用類型 (即自動化測試或遠端存取) 和裝置系列 (即 Android 或 iOS) 購買的裝置插槽數量而定,每月每個插槽以 250 USD 計費。裝置插槽對應到並行執行的測試。

例如,如果您購買 10 個自動化測試 Android 裝置插槽並安排在 100 個 Android 裝置進行測試,則 Device Farm 一次最多在 10 個裝置上執行您的測試,直到所選裝置上完成所有測試為止。購買越多插槽能夠讓您更快得到結果。無論每個月您執行多少個測試或遠端存取工作階段,都是依每個月每個裝置插槽 250 USD 的固定費用向您收費。您可以隨時取消一或多個裝置插槽訂閱,取消將在下個續約日 (該月第一次購買作用中裝置插槽的當天) 生效。您可以從 AWS Device Farm 主控台、AWS 命令列界面 (AWS CLI) 或 AWS Device Farm API 購買插槽。若要進一步了解相關資訊,請參閱我們的文件

問:如果我的測試需求改變了,是否需要新增或移除裝置插槽?

您可以隨時新增裝置插槽,它們將立即可供使用。您還可以隨時取消一或多個裝置插槽訂閱,取消將在下個續約日 (該月第一次購買作用中裝置插槽的當天) 生效。

問:如果我使用無限制計劃,是否仍然可以使用計量付費的計費?

是。建立測試回合時,您可以選擇使用無限制裝置插槽,也可以使用計量付費裝置分鐘數。因為計量付費的計費不限制並行,這讓您擁有執行測試的彈性,比使用裝置插槽的速度更快。

問:什麼是私有裝置?

私有裝置是手機或平板電腦的實體執行個體,且專屬於您的帳戶。私有裝置可以有自訂、靜態組態,還能執行自訂作業系統映像。我們會代您部署每個裝置,並在訂閱結束時移除。

問:私有裝置訂閱如何運作,以及如何計價?

您帳戶下的每個私有裝置都視為一個私有裝置訂閱。每月訂閱價格會依裝置成本分級,每月 200 USD 起。最短訂閱期間結束後,您可以隨時選擇取消訂閱。請聯絡我們了解更多資訊。

問:是否可以同時使用私有裝置和公有裝置?

是。為了測試執行或遠端存取工作階段而選擇裝置時,您會同時看到私有裝置以及公有裝置。您也可以建立由私有和公有裝置組成的裝置集區。如需私有裝置的詳細資訊,請聯絡我們

在桌面瀏覽器上測試

問:什麼是 Selenium?

Selenium 是一個開放原始碼框架,可自動執行 Web 瀏覽器互動。您可以在這裡進一步了解 Selenium。

問︰什麼是 AWS Device Farm 上的桌面瀏覽器測試?

透過 Device Farm,您可以在 AWS 雲端託管的不同桌面瀏覽器和瀏覽器版本上執行 Selenium 測試。Device Farm 按照用戶端執行模型進行 Selenium 測試,即您的測試在您自己的本機電腦上執行,但透過 Selenium API 與在 AWS Device Farm 上託管的瀏覽器互動。

問:如何開始使用 AWS Device Farm 上的桌面瀏覽器測試?

若要開始使用,請在這裡參閱我們的入門指南。

問:瀏覽器託管在什麼作業系統上?

所有瀏覽器都託管在 Microsoft Windows Server 上執行的 EC2 Windows 執行個體上。

問:AWS Device Farm 支援哪些桌面瀏覽器?

您可以在這裡查看支援的桌面瀏覽器和瀏覽器版本清單。

問:AWS Device Farm 支援哪些所需功能?

您可以在這裡查看 Device Farm 支援的 Selenium 所需功能清單。

問:哪些成品可用於對測試失敗進行疑難排解?

Device Farm 會產生整個測試的主控台日誌、Web 驅動程式日誌、操作日誌和影片錄製,以協助您對測試失敗進行疑難排解。

問:我是否可以使用 AWS Device Farm 在實際行動裝置上測試我的 Web 應用程式?

是。Device Farm 支援使用 Appium 在實際行動裝置上測試 Web 應用程式。若要進一步了解,請瀏覽我們的 Appium Web 測試開發人員指南。請注意,若是對實際行動裝置進行測試,Device Farm 將按照伺服器端執行模型,因此您需要將測試上傳至服務。

問︰AWS Device Farm 上的桌面瀏覽器測試有哪些限制?

您可以在這裡找到該功能的所有限制。

問︰AWS Device Farm 上的桌面瀏覽器測試的費用是多少?

定價依執行個體分鐘計費,依據您在每個選取的瀏覽器執行個體上使用的測試持續時間計算。每執行個體分鐘將收取 0.005 USD。

問:什麼是執行個體分鐘?

執行個體分鐘是 AWS Device Farm 上的桌面瀏覽器測試的計費單位。執行個體分鐘是計算選定用於執行測試的每個瀏覽器執行個體上進行測試的時間 (分鐘)。無論您選擇哪種瀏覽器或瀏覽器版本,單價恆定為 0.005 USD。對於啟動、初始化或卸除託管瀏覽器的 EC2 執行個體的時間,我們不會向您收費。

進一步了解產品定價

進一步了解 AWS Device Farm 定價選項。

進一步了解 
註冊免費帳戶

立即存取 AWS 免費方案。 

註冊 
開始在主控台進行建置

開始在 AWS 主控台中使用 AWS Device Farm 著手建置。

開始使用