從測試計劃執行自動化測試

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

將測試計劃中的測試案例自動化,並直接從 Azure Test Plans 執行測試案例。 自動化測試提供下列優點:

  • 對於可能不太熟悉在組建或發行工作流程中執行測試的測試人員來說,用戶易記的程式。
  • 彈性地視需要執行選取的測試,而不是在符合篩選準則的所有測試執行的組建或發行工作流程中排程的測試。
  • 重新執行一些因測試基礎結構問題而失敗的測試,或您有包含失敗測試修正的新組建。

必要條件

若要深入瞭解,請參閱 手動測試存取權和許可權

設定您的環境

  1. 在 [ 測試計劃] 頁面中,選擇您的測試計劃,開啟快捷方式功能表,然後選取 [ 測試計劃設定]。

    顯示選擇 [測試計劃設定] 的螢幕快照。

  2. 在 [測試計劃設定] 對話框中,選取產生包含測試二進位檔之組建的組建管線。 然後,您可以選取要測試的特定組建編號,或讓系統在執行測試時自動使用最新的組建。

    顯示選取組建和組建編號的螢幕快照。

  3. 您需要從 Test Manager 範本執行自動化測試建立的發行管線,以從 Azure Test Plans 中的測試計劃執行測試。 如果您有使用此範本建立的現有發行管線,請選取該管線,然後選取發行管線中的現有階段以供測試執行。 否則,請選取對話框中的 [新建],以建立包含已新增Visual Studio測試工作的單一階段的新發行管線。

    顯示選取發行管線或建立新管線的螢幕快照。

    如何? 從組建或發行管線將參數傳遞至我的測試程序代碼?

  4. 視需要將有意義的名稱指派給發行管線和階段。

  5. 如果已在代理程式計算機上安裝 Visual Studio,請略過此步驟。 如果沒有,請將 Visual Studio Test Platform Installer工作 新增至管線定義。

  6. Visual Studio 測試工作 新增至發行管線,並將其設定如下:

    • 確認已選取 Visual Studio 測試工作的第 2 版。 版本號碼會顯示在工作設定面板的下拉式清單中。

      顯示檢查工作版本號碼設定的螢幕快照。

    • 確認 [使用 選取測試] 已設定為 [ 測試回合]。 此設定代表什麼意思?

      顯示檢查測試選取方法設定的螢幕快照。

    • 針對 [ 測試平臺版本 ] 設定,選取 [ 工具安裝程式安裝]。

      顯示設定安裝程式選項的螢幕快照。

    • 如果您有在實體瀏覽器用戶端上執行的 UI 測試,請確定代理程式已設定為以啟用自動記錄的互動式進程執行。 您必須設定代理程式以互動方式執行,才能將組建或發行排入佇列。 [ 測試混合包含 UI 測試 ] 複選框不會自動在互動式模式中設定代理程式, 僅做為提醒來適當地設定代理程式以避免失敗。

    • 如果您在無外設瀏覽器執行UI測試,則不需要互動式進程設定。

    • 選取測試平臺的佈建方式,以及 Visual Studio 版本,或測試機器上安裝的測試平臺位置。

    • 如果您的測試需要輸入參數,例如應用程式 URL 或資料庫 連接字串,請從組建成品中選取相關的配置檔。 如果成品中未包含此檔案,您可以使用 組建管線中的 [發佈組建成品 ] 工作,將配置檔發佈至置放位置。 在下列範例中,應用程式 URL 會在執行設定檔中公開,並使用覆寫測試回合參數設定將其設定為預備 URL

      顯示指定 Visual Studio 測試工作屬性的螢幕快照。

      如需 Visual Studio 測試工作之選項設定的相關信息,請參閱 Visual Studio 測試工作

  7. 選擇 [ 代理程式] 作業 專案,並確認部署佇列已設定為包含您要執行測試的計算機。 如果您的測試需要來自代理程式集區的特殊機器,您可以新增在運行時間選取的需求。

    顯示指定 Agent 作業屬性的螢幕快照。

    您可以將 Parallelism 設定為多個執行,並指定代理程式數目,藉此將測試時間降到最低。

    注意

    如果您在實體瀏覽器上執行 CodeUI 或 Selenium 之類的 UI 測試,例如 IE、Firefox 或 Chrome,機器上的代理程式必須以互動式模式執行,而不是以服務的形式執行。 其他詳細資料

  8. 在發行管線的 [管線] 頁面中,確認包含測試二進位檔的組建管線會連結至此發行管線做為成品來源。

    顯示驗證連結組建成品的螢幕快照。

  9. 儲存 發行管線。

  10. 如果您在此範例的步驟 2 的 [測試計劃設定] 對話框中選擇 [新建 ],請返回包含測試計劃設定的瀏覽器頁面。 在 [測試計劃設定] 對話框中,選取您儲存的發行管線和階段。

    顯示選取發行管線和階段的螢幕快照。

執行自動化測試

  1. Test Plans 入口網站中,開啟測試計劃,然後選取包含自動化測試的測試套件。

  2. 選取您要執行的測試,開啟 [ 執行 ] 功能表,然後選取 [ 執行測試]。

    顯示選取 [執行測試] 的螢幕快照。

    這些測試的測試二進位檔必須在組建管線所產生的組建成品中提供。

  3. 選取 [ 確定 ] 以開始測試程式。 系統會檢查是否只選取自動化測試(忽略任何手動測試)、驗證階段以確保 Visual Studio 測試工作存在且具有有效設定、檢查使用者建立所選發行管線發行的許可權、建立測試回合,然後觸發發行至選取階段的建立。

    顯示開始測試執行的螢幕快照。

  4. 選取 [ 檢視測試回合 ] 以檢視測試進度並分析失敗的測試。 測試結果具有偵錯失敗測試的相關信息,例如錯誤訊息、堆疊追蹤、控制台記錄和附件。

  5. 測試執行完成之後,Azure Test Plans[執行] 頁面會顯示測試結果。 [ 執行摘要 ] 頁面會顯示執行的概觀。

    顯示測試回合摘要的螢幕快照。

    有一個用來執行測試的版本連結,可讓您輕鬆地尋找執行測試的版本,如果您需要稍後回來並分析結果。 如果您想要開啟發行以檢視發行記錄,也請使用此連結。

注意

自動化測試結果不支援手動附加檔案。

如果我的測試未執行,我應該留意哪些典型錯誤案例或問題?

  1. [ 測試結果] 頁面會列出測試回合中每個測試的結果。 選取測試以查看失敗測試的偵錯資訊,例如錯誤訊息、堆疊追蹤、主控台記錄和附件。

    顯示檢視測試結果詳細數據的螢幕快照。

  2. 開啟 [ 測試計劃] 頁面,然後選取測試計劃,以查看測試在測試執行完成後更新測試的狀態。 選取測試以查看最近的測試結果。

    顯示檢視測試計劃的螢幕快照。

常見問題集

請參閱下列關於 Azure Test Plans 的常見問題(常見問題)。

問:我需要哪些許可權才能從 Azure Test Plans 執行自動化測試?

答: 您必須是項目參與者,或具有下列許可權:

  • 建立版本
  • 管理版本
  • 編輯發行階段
  • 管理部署

如需詳細資訊,請參閱 設定發行管線 的許可權和 發行許可權

問:我可以覆寫特定測試回合實例的測試計劃層級所設定的組建或階段嗎?

答: 是,您可以使用 [ 搭配選項 執行] 命令來執行這項操作。 開啟左側數據行中測試套件的快捷方式功能表,然後選取 [ 使用選項執行]。

顯示設定 [使用選項執行] 對話框的螢幕快照。

在 [使用選項執行] 對話框中輸入下列值,然後選取 [ 確定]:

  • 測試類型和執行器:選取 [使用發行階段的自動化測試]。
  • 組建:選取具有測試二進位檔的組建。 測試結果與這個組建相關聯。
  • 發行管線:從可取用所選組建成品的發行管線清單中選取管線。
  • 發行階段:選取發行管線中設定的階段名稱。

顯示已設定 [使用選項執行] 對話框的螢幕快照。

問:為何使用發行階段來執行測試?

答: Azure Pipelines 提供令人信服的協調流程工作流程,以取得測試二進位檔作為成品並執行測試。 此工作流程會共用排程測試工作流程中使用的相同概念,這表示使用者在排程工作流程中執行測試會發現很容易調整;例如,藉由複製現有的排程測試發行管線。

另一個主要優點是工作目錄中有一組豐富的工作,可讓一系列活動在執行測試之前和之後執行。 範例包括準備和清除測試數據、建立和清除組態檔等等。

問:在 Visual Studio 測試工作第 2 版中選取 [測試回合] 如何運作?

答: 測試管理子系統會使用測試回合對象來傳遞選取的執行測試清單。 測試工作會查閱測試回合標識碼、擷取測試執行資訊,例如容器和測試方法名稱、執行測試、更新測試回合結果,以及設定與測試回合中測試結果相關聯的測試點。 從稽核的觀點來看,Visual Studio 工作會提供從歷程記錄版本和測試回合標識碼到針對隨選測試執行提交的測試追蹤。

問:代理程式應該以互動式模式或以服務的形式執行?

答: 如果您執行UI測試,例如 自動程式化UISelenium 測試,測試機器上的代理程式必須以啟用自動登入的互動式模式執行,而不是以服務的形式執行,才能讓代理程式啟動網頁瀏覽器。 如果您使用無頭瀏覽器,例如 PhantomJS,代理程式可以當做服務或以互動模式執行。 如需詳細資訊,請參閱建置和發行代理程式、在 Windows 上部署代理程式和代理程式集區。

問:哪裡可以找到有關如何執行 Selenium 測試的詳細檔?

答: 請參閱 開始使用 Selenium 測試

問:如果我為相同的測試選取多個組態,會發生什麼事?

答: 目前,隨選工作流程不會感知設定。

問:如果我需要從不同的組建下載產品二進位檔和測試二進位檔,該怎麼辦? 或者,如果我需要從 Jenkins 之類的來源取得成品嗎?

答: 目前的功能已針對使用 Azure Pipelines 工作流程隨選測試的單一小組組建進行優化。 我們會根據使用者意見反應評估多成品版本的支援,包括非 Azure Pipelines 成品,例如 Jenkins。

問:我已經有排程的測試發行管線。 我可以重複使用相同的管線來執行隨選測試,還是應該建立新的管線?

答: 建議您針對 Azure Test Plans 的隨選自動化測試使用不同的發行管線和階段,因為:

  • 您可能不想每次想要執行一些隨選測試時部署應用程式。 排程的測試階段通常會設定為部署產品,然後執行測試。

  • 每個隨選執行都會觸發新版本。 如果您有許多測試人員每天執行一些隨選測試回合,您的排程測試發行管線可能會隨著這些執行的發行而多載,因此很難找到包含排程測試和部署至生產環境的管線觸發版本。

  • 您可能想要使用測試回合標識碼作為輸入來設定 Visual Studio 測試工作,以便追蹤觸發發行的專案。 如需詳細資訊,請參閱 Visual Studio 測試工作中的如何選取[測試回合](適用於隨選執行)。」

問:我可以在 Microsoft Test Manager 中觸發這些執行並檢視結果嗎?

A: 不可以。 Microsoft Test Manager 不支援針對 Team Foundation 組建執行自動化測試。 它只適用於 Azure Pipelines 的 Web 型介面。 所有新的手動和自動化測試產品開發投資都位於網頁型介面中。 Microsoft Test Manager 不會進行進一步的開發。 請參閱 Microsoft Test Manager 使用方式的指引。

問:我的小組中有多個測試人員。 他們是否可以使用相同的發行管線平行執行不同測試套件或測試計劃的測試?

答: 如果下列狀況,他們可以使用相同的發行管線來平行觸發多個測試回合:

  • 與階段相關聯的代理程式集區有足夠的代理程式來滿足平行要求。 如果沒有足夠的代理程式可用,仍然可以觸發執行,但釋放佇列進行處理,直到代理程式可用為止。

  • 您有足夠的作業可啟用平行作業。 如需詳細資訊,請參閱 Azure Pipelines 中的平行作業或 TFS 中的平行作業。

  • 測試人員不會平行執行相同的測試。 這樣做可能會導致根據執行順序覆寫結果。

若要讓多個不同的測試回合以平行方式執行,請在等候部署多個版本時,設定 Azure Pipelines 階段觸發程式選項,如下所示:

  • 如果您的應用程式支援從不同來源平行執行的測試,請將此選項設定為 [允許同時部署多個版本]。

  • 如果您的應用程式不支援從不同來源平行執行的測試,請將此選項 設定為 [一次只允許一個作用中的部署]。

問:如何? 從組建或發行管線將參數傳遞至我的測試程序代碼?

答: 使用 runsettings 檔案將值當做參數傳遞至您的測試程序代碼。 例如,在包含數個階段的版本中,您可以將適當的應用程式 URL 傳遞給每個階段中的每個測試工作。 Runsettings 檔案和比對參數必須在 Visual Studio 測試工作中指定。

顯示從組建或發行管線傳遞參數以測試程式代碼的螢幕快照。

問:如果我的測試未執行,我應該注意哪些典型錯誤案例或問題?

答: 檢查並解決問題,如下所示:

  • 我選取組建之後,不會顯示我想執行測試的發行管線和階段。

    • 請確定正在產生組建的組建管線會連結為發行管線之 [成品] 索引卷標中的主要成品。

  • 我收到錯誤,指出我沒有足夠的許可權可以觸發發行。

    • 發行管線的 [安全性] 功能表中設定 [建立發行管理使用者的部署許可權]。 請參閱 發行許可權

  • 我收到找不到自動化測試的錯誤。

    • 檢查所選測試的自動化狀態。 請在測試案例的工作項目中執行此動作,或使用 Azure Test Plans 中的 [資料行選項] 連結,將 [自動化狀態] 資料行新增至測試清單。 如需詳細資訊,請參閱 必要條件一節
  • 我的測試未執行,我懷疑發行管線不正確。

    • 使用 [執行摘要] 頁面中的連結來存取用來執行測試的發行實例,並檢視發行記錄。

  • 即使發行至階段之後,我的測試仍會進入錯誤狀態,或保持「進行中」。

    • 檢查您選取的發行階段是否已選取正確的工作和版本。 您必須使用 Visual Studio 測試工作的第 2 版或更新版本。 不支援工作第 1 版和 執行功能測試 工作。