教學課程:建立測試 iOS 應用程式的管道 AWS Device Farm - AWS CodePipeline

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:建立測試 iOS 應用程式的管道 AWS Device Farm

您可以使用 AWS CodePipeline 輕鬆配置持續集成流程,每次源存儲桶更改時,您的應用程序都會在其中進行測試。本教學課程示範如何建立及設定管道,以從 S3 儲存貯體測試您建置的 iOS 應用程式。管道會偵測透過 Amazon E CloudWatch vents 儲存的變更到達,然後使用 Device Farm 測試建置的應用程式。

重要

您在此程序中新增至管線的許多動作都涉及建立管線之前需要建立的 AWS 資源。 AWS 來源動作的資源必須始終建立在您建立管道的相同 AWS 區域中。例如,如果您在美國東部 (俄亥俄) 區域建立管道,則您的 CodeCommit 存放庫必須位於美國東部 (俄亥俄) 區域。

您可以在建立管道時新增跨區域動作。 AWS 跨區域作業的資源必須位於您計劃執行作業的相同「 AWS 區域」中。如需詳細資訊,請參閱 在中新增跨區域動作 CodePipeline

您可以透過使用您現有的 iOS 應用程式,或可使用範例 iOS 應用程式來試用。

注意

開始之前

  1. 登入 AWS Device Farm 主控台,然後選擇 [建立新專案]。

  2. 選擇您的專案。在瀏覽器中,複製新專案的 URL。URL 包含專案 ID。

  3. 複製並保留此專案 ID。您可以在中建立管線時使用它 CodePipeline。

    這裡有專案的 URL 範例。若要擷取專案 ID,請複製 projects/ 後面的值。在此範例中,專案 ID 為 eec4905f-98f8-40aa-9afc-4c1cfexample

    https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs

設定 CodePipeline 以使用您的 Device Farm 測試 (Amazon S3 範例)

  1. 建立或使用已啟用版本控制的 S3 儲存貯體。遵循步驟 1:為您的應用程式建立 S3 儲存貯體中的說明,建立 S3 儲存貯體。

  2. 在儲存貯體的 Amazon S3 主控台中,選擇「上傳」,然後按照指示上傳 .zip 檔案。

    您的範例應用程式必須封裝在 .zip 檔案中。

  3. 若要建立您的管道及新增來源階段,請執行下列作業:

    1. 請登入 AWS Management Console 並開啟 CodePipeline 主控台,網址為 https://console.aws.amazon.com/codepipeline/

    2. 選擇 Create pipeline (建立管道)。在 Step 1: Choose pipeline settings (步驟 1:選擇管道設定) 頁面的 Pipeline name (管道名稱) 中輸入管道的名稱。

    3. 管線類型中,針對本教學課程的目的選擇 V1。您也可以選擇 V2;但是請注意,管道類型在特性和價格上有所不同。如需詳細資訊,請參閱 管線類型

    4. Service role (服務角色) 中,讓 New service role (新服務角色) 維持在選取狀態,然後讓 Role name (角色名稱) 維持不變。若您已擁有現有服務角色,您也可以選擇使用它。

      注意

      如果您使用在 2018 年 7 月之前建立的 CodePipeline 服務角色,則必須新增 Device Farm 的權限。若要這麼做,請開啟 IAM 主控台、尋找角色,然後將下列權限新增至角色的政策。如需詳細資訊,請參閱 將許可新增至 CodePipeline 服務角色

      { "Effect": "Allow", "Action": [ "devicefarm:ListProjects", "devicefarm:ListDevicePools", "devicefarm:GetRun", "devicefarm:GetUpload", "devicefarm:CreateUpload", "devicefarm:ScheduleRun" ], "Resource": "*" }
    5. Advanced settings (進階設定) 下的設定保留為預設值,然後選擇 Next (下一步)

    6. Step 2: Add source stage (步驟 2:新增來源階段) 頁面的 Source provider (來源提供者) 中,選擇 Amazon S3 (Amazon S3)

    7. Amazon S3 位置中,輸入儲存貯體,例如my-storage-bucket,和物件金鑰,s3-ios-test-1.zip例如 .zip 檔案。

    8. 選擇下一步

  4. ​Build (建置) 中,建立您管道建置階段的預留位置。這可讓您在精靈中建立管道。在您使用精靈建立您的二階段管道之後,您便不再需要此預留位置建置階段。在完成管道後,便會刪除此第二階段,並會在步驟 5 中建立新的測試階段。

    1. ​Build provider (建置提供者) 中,選擇 ​Add Jenkins (新增 Jenkins)。此建置選取為預留位置。不會使用。

    2. ​Provider name (提供者名稱) 中,輸入名稱。該名稱為預留位置。不會使用。

    3. ​Server URL (伺服器 URL) 中,輸入文字。該文字為預留位置。不會使用。

    4. ​Project name (專案名稱) 中,輸入名稱。該名稱為預留位置。不會使用。

    5. 選擇下一步

    6. Step 4: Add deploy stage (步驟 4:新增部署階段) 頁面上,選擇 Skip deploy stage (跳過部署階段),然後再次選擇 Skip (跳過) 來接受警告訊息​。

    7. Step 5: Review (步驟 5:檢閱) 上,選擇 Create pipeline (建立管道)。您應該會看到圖表,顯示該來源及建置階段。

      檢視您的管道。
  5. 將 Device Farm 測試動作新增至管線,如下所示:

    1. 在右上角,選擇 Edit (編輯)

    2. 選擇 Edit stage (編輯階段)。選擇刪除。這會刪除預留位置階段,因為針對建立管道,您已不再需要它。

    3. 在圖表的底部,選擇 + Add stage (+ 新增階段)

    4. 在階段名稱中,輸入階段的名稱,例如測試,然後選擇 Add stage (新增階段)

    5. 選擇 + Add action group (+ 新增動作群組)

    6. 動作名稱中,輸入名稱,例如 DeviceFarmTest。

    7. 動作提供者中,選擇 AWS Device Farm 允許 Region (區域) 預設為管道區域。

    8. 在 ​Input artifacts (輸入成品) 中,選擇與測試階段之前的階段輸出成品相符的輸入成品,例如 SourceArtifact

      在 AWS CodePipeline 主控台中,您可以將游標暫留在管線圖中的資訊圖示上,找到每個階段的輸出成品名稱。如果您的管道直接從「來源」階段測試您的應用程式,請選擇SourceArtifact。如果管線包含「建置」階段,請選擇BuildArtifact

    9. 在中 ProjectId,選擇您的 Device Farm 專案 ID。使用本教學課程開頭的步驟,擷取您的專案 ID。

    10. 在中 DevicePoolArn,輸入裝置集區的 ARN。若要取得專案的可用裝置集區 ARN (包括常用裝置的 ARN),請使用 AWS CLI 輸入下列命令:

      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
    11. 在中 AppType,輸入 iOS

      以下是有效值的清單 AppType

      • iOS

      • Android

      • Web

    12. ​App (應用程式) 中,輸入已編譯的應用程式套件路徑。路徑為相對於測試階段輸入成品根的相對路徑。通常,此路徑與 ios-test.ipa 相似。

    13. 在中TestType輸入測試類型,然後在「測試」中輸入測試定義檔案的路徑。路徑為相對於您測試輸入成品根的相對路徑。

      如果您使用其中一個內建的 Device Farm 測試,請輸入 Device Farm 專案中設定的測試類型,例如 BUILTIN_FUZZ。在中 FuzzEventCount,輸入以毫秒為單位的時間,例如 6000。在中 FuzzEventThrottle,輸入以毫秒為單位的時間,例如 50。

      如果您未使用其中一個內建的 [Device Farm] 測試,請輸入測試類型,然後在 [測試] 中輸入測試定義檔案的路徑。路徑為相對於您測試輸入成品根的相對路徑。

      以下是有效值的清單 TestType

      • 爪哇胡尼特

      • Appium_ 爪哇測試

      • APPIUM 節點

      • 蘋果紅寶石

      • 蟒蛇

      • 阿皮亚姆网站 JA_JUnit

      • 蘋果網站測試

      • 应用网节点

      • 蘋果紅寶石

      • 阿皮亞網蟒

      • 內建模糊

      • INSTRUMENTATION

      • XCTEST

      • XCTEST_UI

      注意

      不支援自訂環境節點。

    14. 在剩餘欄位中,提供適用於您測試及應用程式類型的組態。

    15. (選擇性) 在 Advanced (進階) 中,提供您測試執行的組態資訊。

    16. 選擇儲存

    17. 在您編輯的階段上,選擇 Done (完成)。在 AWS CodePipeline 窗格中,選擇 [儲存],然後在警告訊息上選擇 [儲存]。

    18. 若要提交您的變更並啟動管道執行,請選擇 ​Release change (發行變更),然後選擇 ​Release (發行)