手動設定 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 負載測試執行負載測試,您必須在原始檔控制存放庫中新增所有負載測試輸入檔。

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

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

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

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

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

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

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

    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. 選取 [Pipelines],然後選取管線。

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

        Screenshot that shows how to delete an Azure Pipelines definition.

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

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

  2. 移除服務連線:

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

下一步

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