分享方式:


手動設定 CI/CD 工作流程以執行負載測試

您可以藉由建立 CI/CD 管線,在 Azure 負載測試中自動執行負載測試。 在本文中,您將了解如何手動設定 GitHub Actions、Azure Pipelines 或其他 CI 工具,以叫用 Azure 負載測試中的現有測試。 請將負載測試自動化,以持續驗證應用程式在負載下的效能和穩定性。

若要將現有負載測試新增至 CI/CD 管線:

  • 設定服務驗證,以允許 CI 工具連線到您的 Azure 負載測試資源。
  • 將負載測試輸入檔新增至您的存放庫,例如 JMeter 測試指令碼和負載測試 YAML 組態。
  • 更新 CI/CD 管線定義以叫用 Azure 負載測試。

必要條件

  • Azure DevOps 組織與專案。 如果您沒有 Azure DevOps 組織,可以免費建立一個 (部分機器翻譯)。 如果您需要協助以便開始使用 Azure Pipelines,請參閱建立您的第一個管線 (部分機器翻譯)。

設定服務驗證

若要在 CI/CD 工作流程中執行負載測試,您必須向 CI/CD 工作流程授與用來存取負載測試資源的權限。 為 CI/CD 工作流程建立服務主體,並指派負載測試參與者 Azure RBAC 角色。

在 Azure Pipelines 中建立服務連線

在 Azure Pipelines 中,您會在 Azure DevOps 專案中建立「服務連線」,以存取 Azure 訂用帳戶中的資源。 當您建立服務連線時,Azure DevOps 會建立 Microsoft Entra 服務主體物件。

  1. 登入您的 Azure DevOps 組織 (https://dev.azure.com/<your-organization>) 並選取您的專案。

    <your-organization> 文字預留位置取代為您的專案識別碼。

  2. 選取 [專案設定]>[服務連線]>[+ 新增服務連線]

  3. 在 [新增服務連線] 窗格中,選取 [Azure Resource Manager],然後選取 [下一步]

  4. 選取 [服務主體 (自動)] 驗證方法,然後選取 [下一步]

  5. 輸入服務連線詳細資料,然後選取 [儲存] 以建立服務連線。

    欄位
    範圍層級 訂用帳戶
    訂用帳戶 選取裝載了負載測試資源的 Azure 訂用帳戶。
    資源群組 選取包含了負載測試資源的資源群組。
    服務連線名稱 為服務連線輸入唯一的名稱。
    授與所有管線的存取權限 已核取。
  6. 從服務連線清單中,選取您稍早建立的連線,然後選取 [管理服務主體]

    Screenshot that shows selections for managing a service principal.

    Azure 入口網站會在另外的瀏覽器索引標籤中開啟,並顯示服務主體詳細資料。

  7. 在 Azure 入口網站中,複製 [顯示名稱] 值。

    您會在下一個步驟中使用此值,以向服務主體授與用於執行負載測試的權限。

管理 Azure 負載測試的存取

Azure 負載測試會使用 Azure RBAC 來授與在負載測試資源上執行特定活動的權限。 若要從 CI/CD 管線執行負載測試,請向服務主體授與負載測試參與者角色。

  1. Azure 入口網站中,移至您的 Azure 負載測試資源。

  2. 選取 [存取控制 (IAM)]>[新增]>[新增角色指派]

  3. 在 [角色] 索引標籤中,選取作業函式角色清單中的 [負載測試參與者]

    Screenshot that shows the list of roles in the Add role assignment page in the Azure portal, highlighting the Load Test Contributor role.

  4. 在 [成員] 索引標籤中,選取 [選取成員],然後使用您先前複製的顯示名稱來搜尋服務主體。

  5. 選取服務主體,然後選取 [選取]

  6. 在 [檢閱 + 指派] 索引標籤上,選取 [檢閱 + 指派] 以新增角色指派。

您現在可以在 Azure Pipelines 工作流程定義中使用服務連線來存取 Azure 負載測試資源了。

在存放庫中新增負載測試檔案

若要在 CI/CD 工作流程中使用 Azure 負載測試來執行負載測試,您必須在原始檔控制存放庫中新增所有負載測試輸入檔。

如果您沒有現有的負載測試,請將下列檔案新增至原始程式碼存放庫:

  • 對組態 YAML 檔案進行負載測試。 了解如何建立負載測試組態 YAML 檔案 (部分機器翻譯)。
  • 測試計劃檔案。 若為 JMeter 型測試,請新增 JMeter 測試指令碼 (JMX 檔案)。 若為 URL 型測試,請新增要求 JSON 檔案 (部分機器翻譯)。
  • 任何 JMeter 使用者屬性檔案 (部分機器翻譯)。
  • 測試計劃所使用的任何輸入資料檔案。 例如,CSV 資料檔案。

如果您有現有的負載測試,則可以直接從 Azure 入口網站下載組態設定和所有輸入檔。 執行下列步驟,在 Azure 入口網站中下載現有負載測試的輸入檔:

  1. Azure 入口網站中,移至您的 Azure 負載測試資源。

  2. 在左窗格上,選取 [測試] 以檢視負載測試清單,然後選取您的測試。

    Screenshot that shows the list of tests for an Azure Load Testing resource.

  3. 選取所使用測試回合旁的省略號 (...),然後選取 [下載輸入檔]

    瀏覽器會下載包含負載測試輸入檔的 ZIP 壓縮資料夾。

    Screenshot that shows how to download the results file for a load test run.

  4. 使用任何 ZIP 工具即可將輸入檔解壓縮。

    這個資料夾包含下列檔案:

    • config.yaml:負載測試 YAML 組態檔。 您會在 CI/CD 工作流程定義中參考此檔案。
    • .jmx:JMeter 測試指令碼
    • 任何其他輸入檔,例如要執行負載測試所需的 CSV 檔案或使用者屬性檔案。
  5. 將所有解壓縮的輸入檔認可至原始檔控制存放庫。

    使用在其中設定 CI/CD 管線的原始程式碼存放庫。

更新 CI/CD 工作流程定義

Azure 負載測試同時支援使用 GitHub Actions 和 Azure Pipelines 來執行負載測試。

安裝適用於 Azure DevOps 的 Azure 負載測試延伸模組

為了建立和執行負載測試,Azure Pipelines 工作流程定義會使用來自 Azure DevOps Marketplace 的 Azure 負載測試工作 (部分機器翻譯) 延伸模組。

  1. 開啟 Azure DevOps Marketplace 中的 Azure 負載測試工作延伸模組 (英文),然後選取 [免費取得]

  2. 選取 Azure DevOps 組織,然後選取 [安裝] 以安裝延伸模組。

    如果您沒有所選 Azure DevOps 組織的管理員權限,請選取 [要求] 以要求管理員安裝延伸模組。

更新 Azure Pipelines 工作流程

更新 Azure Pipelines 工作流程,以便為 Azure 負載測試資源執行負載測試。

  1. 登入您的 Azure DevOps 組織 (https://dev.azure.com/<your-organization>) 並選取您的專案。

  2. 在左側導覽中選取 [管線],選取您的管線,然後選取 [編輯] 以編輯工作流程定義。

    或者,選取 [建立管線] 以在 Azure Pipelines 中建立新的管線。

  3. 使用 AzureLoadTest 工作來執行負載測試。

    指定您稍早在 loadTestConfigFile 屬性中匯出的負載測試組態檔。

    <load-testing-resource><load-testing-resource-group> 文字預留位置取代為 Azure 負載測試資源和資源群組的名稱。

        - task: AzureLoadTest@1
          inputs:
            azureSubscription: $(serviceConnection)
            loadTestConfigFile: 'config.yaml'
            loadTestResource: <load-testing-resource>
            resourceGroup: <load-testing-resource-group>
    

    (選擇性) 您可以使用 envsecrets 屬性,將參數或秘密傳遞至負載測試。

  4. 使用 publish 工作將測試結果發佈為 Azure Pipelines 工作流程執行中的成品。

        - publish: $(System.DefaultWorkingDirectory)/loadTest
          artifact: loadTestResults
    

檢視負載測試結果

當您從 CI/CD 管線執行負載測試時,您可以直接在 CI/CD 輸出記錄中檢視摘要結果。 如果您將測試結果發佈為管線成品,則也可以下載 CSV 檔案以進行進一步的報告。

Screenshot that shows the workflow logging information.

清除資源

如果不打算使用所建立的任何資源,請予以刪除以免產生任何進一步的費用。

  1. 移除 Azure Pipelines 變更:

    1. 登入您的 Azure DevOps 組織 (https://dev.azure.com/<your-organization>) 並選取您的專案。

      <your-organization> 文字預留位置取代為您的專案識別碼。

    2. 如果您建立了新的管線:

      1. 選取 [管線],然後選取您的管線。

      2. 選取省略符號,然後選取 [刪除]

        Screenshot that shows how to delete an Azure Pipelines definition.

      3. 輸入管線名稱,然後選取 [刪除] 以刪除管線。

    3. 如果您修改了現有工作流程定義,請復原用於執行負載測試的修改,並儲存工作流程。

  2. 移除服務連線:

    1. 選取 [專案設定]>[服務連線],然後選取您的服務連線。
    2. 選取 [編輯]>[刪除] 以移除服務連線。

下一步

請前往下一篇文章,以了解如何藉由定義測試失敗準則和比較測試回合來識別效能迴歸。