HOW TO:在建置並部署應用程式之後設定和執行已排程的測試
您可以使用 Visual Studio Lab Management 檢查應用程式組建的品質。 您可以使用組建定義的特定實驗室範本來建置應用程式、將應用程式部署至虛擬環境中,然後執行該組建的自動化測試。 此程序可讓您將已知狀態用於虛擬環境,以確保測試是在潔淨的環境中執行。 由於您每次都可以使用相同的乾淨環境,因此如果發生測試失敗,也可降低因為設定不正確或環境損毀而造成失敗的可能性。
執行測試的方式是從測試計劃選取測試套件。 例如,您可以建立名為組建煙霧測試的測試套件。 您可以建立用來測試應用程式基本功能的自動化測試與測試案例之間的關聯,然後再將這些測試案例加入到套件中。 例如,測試可能是自動程式碼 UI 測試,可測試應用程式中的基本操作。
每次完成這個組建定義的組建工作流程時,都會儲存測試結果。 您可以使用這些結果來檢視組建的穩定性,並使用該項資訊決定測試小組是否應該立即開始使用這個組建。 此外,您還可以每天進行檢查,找出組建通過這些測試的頻率。
請使用下列程序來建立組建工作流程,以建置、部署及測試應用程式,同時調查任何問題,並檢視或分析您的結果:
檢查必要條件
建立組建定義並啟動組建
從組建結果連接至環境
檢視並分析組建的測試結果
當您使用 Visual Studio 2010 時,Web 以及其他複雜的應用程式可能需要額外的步驟才能進行部署。 例如,如果您使用 Visual Studio 2010 將 Web 應用程式部署到 IIS 伺服器,此 Microsoft 網頁會描述額外的步驟。
注意事項 |
---|
您只能將組建定義的實驗室範本搭配手動、已排程和復原的觸發程序使用。 建議您不要使用復原組建觸發程序,因為測試失敗仍然會允許下一個復原組建啟動,或是會停止整套組建系統。 不支援閘道簽入和連續整合觸發程序。 |
必要條件
在設定組建工作流程來建置、部署及測試應用程式之前,請先使用這份清單確認您已完成下列工作:
必要工作
設定 Lab Management,包括組建控制器和測試控制器:第一次設定 Lab Management。
為您的環境建立虛擬機器,並將代理程式加入到這些虛擬機器中。 接著,將虛擬機器儲存到程式庫共用中:HOW TO:建立並儲存可供 Lab Management 使用的虛擬機器和範本。
從 SCVMM 將虛擬機器或範本匯入到 Team 專案:HOW TO:從 SCVMM 匯入虛擬機器或範本。
建立以所需角色使用這些虛擬機器的環境,並選擇對此環境執行測試及使用工作流程,然後啟動您的環境:HOW TO:從虛擬機器或範本建立環境。
注意事項 您必須針對為每部虛擬機器所選取的角色,安裝及設定該虛擬機器需要的任何軟體。 為虛擬機器選取角色並不會安裝任何軟體。
若要將測試視為與桌面互動之已排程測試 (例如自動程式碼 UI 測試) 的一部分來執行,您必須遵循下列步驟執行:
設定測試代理程式,將它當做互動式處理序 (而非服務) 啟動:HOW TO:將您的測試代理程式設定為執行與桌面互動的測試。
您現在會在通知區域中看見測試代理程式處理序為線上狀態,表示它正在執行。
如果工作流程的組建定義還原成特定的快照,則當您嘗試執行測試時,虛擬機器將無法鎖定。 您必須先使用主機式連接或主控台工作階段連接至機器,再擷取要用於工作流程的快照。 如需詳細資訊,請參閱 HOW TO:連接至虛擬環境。
(建議) 擷取環境的快照,以當做工作流程的初始狀態:HOW TO:儲存環境的目前狀態。 在您擷取這個快照之前,請先執行下列步驟:
確定環境中的虛擬機器具有其作業系統的最新更新。
針對環境中已連接至網域的任何虛擬機器執行 gpupdate /force 命令,確定已更新對使用者原則所做的任何變更。 如果未執行此命令,則部署指令碼可能無法正常運作,或者測試可能無法正常運作。 確定應用程式的程式碼專案和測試專案已簽入至原始檔控制:將檔案放入版本控制下。
確定環境的狀態為 [執行中],且工作流程與測試功能的狀態皆為 [就緒]。
注意事項 如果此快照中的虛擬機器已加入至某個網域,而快照的使用時間超過網域控制站的密碼逾期期限,則虛擬機器可能將無法再加入網域。 如需詳細資訊,請參閱 HOW TO:儲存環境的目前狀態。
建立應用程式的組建定義,供您在使用實驗室範本建立組建工作流程時,用來建置應用程式或選取特定組建:建立基本組建定義。
建立自動化測試與測試案例的關聯,並將測試案例加入至 Team 專案之測試計劃中的測試套件。 如需詳細資訊,請參閱下列說明主題:
建立測試設定以執行自動化測試,在測試中使用您所建立之虛擬環境中的角色:將自動化測試的測試設定建立成測試計劃的一部分。
使用組建定義的實驗室範本建立組建、部署和測試工作流程
若要建立組建、部署和測試工作流程,您必須依照以下步驟進行:
步驟 |
動作 |
---|---|
1 |
建立基本組建定義 |
2 |
建立組建、部署和測試工作流程的其他組建定義 |
3 |
加入工作流程的詳細資料 |
4 |
佇列工作流程的組建定義 |
建立基本組建定義
您必須先在您要部署的應用程式中,建立程式碼的組建定義。 如果您打算每次都要建置應用程式,請在這個定義中停用測試,因為您會使用實驗室範本執行工作流程中的測試。
若要建立應用程式的組建定義
按一下 [建置] 功能表上的 [新增組建定義]。
在 [一般] 索引標籤中的 [組建定義名稱] 方塊中指定名稱,並在 [描述] 方塊中加入適當的描述。
請依照建立基本組建定義主題中描述的步驟進行。
建立工作流程的組建定義
接著,您必須為組建、部署和測試工作流程建立另一個組建定義,如下圖所示。
您必須選取 LabDefaultTemplate 檔案,透過選擇顯示建置流程範本的詳細資料來建立工作流程,如下圖所示:
若要建立工作流程的組建定義
按一下 [建置] 功能表上的 [新增組建定義]。
在 [一般] 索引標籤中的 [組建定義名稱] 方塊中指定名稱,並在 [描述] 方塊中加入適當的描述。
依建立基本組建定義主題所述,在 [觸發程序]、[工作區]、[組建預設值] 和 [保留原則] 索引標籤上選擇設定。
注意事項 您不需要在 [組建預設值] 索引標籤中輸入此組建工作流程的組建置放路徑,因為您在使用實驗室範本時並不會建立組建輸出。 請清除 [我的組建複製輸出],而且不需要指定置放資料夾。
若要選取組建定義的實驗室範本,請在 [流程] 索引標籤的 [建置流程範本] 底下,按一下 [顯示詳細資料]。
下拉式清單隨即出現。
選取範本。 這是用來定義工作流程的建置流程檔。
若要建立組建定義的工作流程,以便將應用程式部署至虛擬環境,請從 [建置流程檔] 的下拉式清單中選取 LabDefaultTemplate.xaml。
加入工作流程的詳細資料
您現在可以加入工作流程的詳細資料,如下圖所示。
[實驗室工作流程參數] 精靈會引導您輸入必須提供的資訊。
您現在可以將此組建放入佇列,以執行工作流程,並檢視組建工作流程的進度。
若要加入工作流程的詳細資料
若要輸入工作流程的資料,請在 [建置流程參數] 底下,按一下 [實驗室處理序設定],然後按一下省略符號 (…)。
這個步驟會開啟 [實驗室工作流程參數] 精靈,供您輸入工作流程的資訊。
在 [環境] 索引標籤上,選取您要部署應用程式的虛擬環境。
注意事項 這個環境必須在使用中。 如果您要使用儲存在程式庫的環境,必須部署環境讓它成為使用中的環境。 同時也建議您建立此環境是為了要專供您的工作流程使用,而不應讓其他使用者使用。 如此將可預防環境目前正在使用中,而組建工作流程卻將環境還原成特定快照的問題,或是在其他使用者正在執行測試的環境上執行部署指令碼的問題。
(建議) 如果您要讓實驗室組建將環境還原成已知的狀態,請選取 [還原成環境的特定快照],然後按一下省略符號 (…) 來選取特定快照。
[選取環境快照] 對話方塊隨即顯示。 選取快照,然後按一下 [確定]。
重要事項 建議您還原成快照,以確定在每次從環境的已知狀態進行建置時,您都會一致地執行測試。 這可降低判斷測試失敗原因時的不確定性。 例如,其他使用者可能已加入可能導致測試失敗的軟體,而變更了目前的環境。
按一下 [下一步]。
如果您要在每次將此工作流程定義放入佇列時,使用這個工作流程定義來建置應用程式,請執行下列步驟:
選取 [使用 Team Foundation 組建],然後選取您先前建立的定義。
選取 [將新組建放入佇列]。
如果您想讓這個工作流程定義使用現有的組建,而不要重建應用程式,請執行下列動作:
選取 [使用 Team Foundation 組建],然後選取您先前建立的定義。
選取 [選取現有組建]。 接著從下拉式清單中選取組建。 您選取之組建定義所建立的現有組建會顯示在清單中。
從 [選取組建組態] 清單中選取組建組態。
注意事項 組建組態是在建立應用程式的組建定義時指定。 如果組建組態不止一個,您可以從這份清單中選取一個。
如果您要定義組建的位置,請選取 [使用來自指定位置的組態],然後指定現有組建的 UNC 路徑。
按一下 [下一步]。
若要部署應用程式,當做工作流程的一部分,請從 [部署] 索引標籤選取 [部署組建]。
若要加入部署應用程式所需的指令碼或命令,請按一下 [加入], 然後選取要加入指令碼或命令的虛擬機器。
您現在可以為環境中的每部虛擬機器加入命令或指令碼。 例如,如果 Windows 用戶端是應用程式的一部分,您可能會有一個指令碼,這個指令碼會將可執行檔複製到自動程式碼 UI 測試用來在虛擬機器上啟動測試的位置。 如果您有 Web 伺服器,則必須執行指令碼或命令,將該部分部署到應用程式。
下列變數可供您搭配指令碼使用:
$(BuildLocation):這是組建的位置。 如果您指定要從共用位置使用組建,這個變數就代表該路徑。 若為其他選項,這個變數則是組建的完整路徑 (根據您選取建置的組態,以及組建定義中的組建置放位置而定)。 如果您將應用程式當做工作流程的一部分來建置,可以使用這個變數來存取該組建所建立的檔案。
$(InternalComputerName_<VM 名稱>):這可用來取得虛擬環境中之虛擬機器的電腦名稱。 您可能知道虛擬機器名稱,但不知道電腦名稱。 如果您有部署指令碼需要使用電腦名稱來設定 Web 伺服器,您可以將此變數做為引數傳遞給指令碼。 例如,如果 Web 伺服器的虛擬機器名稱是 VM1,電腦名稱是 MyWebServer,則您可以輸入 $(InternalComputerName_VM1) 做為指令碼的引數,這樣就會將值 MyWebServer 傳遞給指令碼。
$(ComputerName_<VM 名稱>):這是虛擬機器的完整網域名稱。 這可用來存取即使是在虛擬環境外部的電腦。 您可以將這個變數當做引數傳遞,以設定 Web 伺服器。 例如,如果 Web 伺服器的虛擬機器名稱是 VM1,您可輸入 $(ComputerName_VM1) 做為指令碼的引數,以傳遞虛擬機器的完整網域名稱。
如果您讓環境使用網路隔離,則在這個環境的每個複本中,某個虛擬機器的執行個體都會有相同的 $(InternalComputerName_<VM 名稱>) 值,但 $(ComputerName_<VM 名稱>) 則會不同。 例如,在每個環境複本中,某部虛擬機器的電腦名稱可能都是 MyWebServer,但完整網域名稱會是唯一的:VM_<unique identifier>.domain_name.com。
重要事項 如果要加入從 Windows 提示字元執行的命令 (例如 mkdir 或執行批次檔案),您必須使用 cmd /c 做為命令開頭。 例如,cmd /c $(BuildLocation)\copyexe $(BuildLocation) 中的 copyexe 是 copyexe.bat 批次檔,它會將可執行檔複製到虛擬機器的本機目錄。
如果您的指令碼或命令需要特定的工作目錄,您可以在 [工作目錄] 中輸入目錄。
注意事項 請確認您可以在部署應用程式之後,根據檔案的位置來執行測試。 例如,如果您的自動程式碼 UI 測試會啟動 Windows 用戶端應用程式,請確認可執行檔位於可以讓測試執行的正確目錄。
您也可以確認環境中電腦的名稱對您的應用程式來說是否正確。 例如,您可能必須確認 Web 伺服器角色的虛擬機器已設定為存取資料庫伺服器角色之虛擬機器上的資料庫伺服器執行個體。
(建議) 若要在已部署應用程式之後,但尚未執行任何測試之前擷取環境的快照,您必須執行下列動作:
選取 [部署組建後,擷取環境的快照]。
重要事項 如果您將這個組建定義當做夜間工作流程一部分來執行,環境中的每部虛擬機器很快就會有與其關聯的許多快照。 這會降低虛擬機器的效能。 此外,還有最多只能為每個虛擬環境儲存 50 個快照的限制。 因此,您必須定期刪除舊的快照。
在 [輸入快照名稱] 中輸入此快照的名稱。
注意事項 如果您想調查問題,可以使用這個快照連接到環境,並重新執行測試。 其他小組成員也可以執行這項工作。 使用這個快照在安裝應用程式的乾淨系統上執行測試,通常有助於判斷發生的狀況,甚至還能夠確認應用程式是否已正確安裝。
按一下 [下一步]。
若要在部署應用程式之後執行自動化測試,您必須依照下列步驟進行:
選取 [執行環境中的這些測試]。
在 [選取測試計劃] 底下,選取您要使用的測試計劃。 測試結果會儲存成這個測試計劃的一部分。
在 [選取測試套件] 底下,按一下省略符號 (...),然後在 [選取測試套件] 對話方塊中,選取您要執行的測試套件。
注意事項 預設會選取根測試套件。 如果您不想執行這個測試套件中的測試,則必須清除此欄位。
在 [選取測試組態] 底下,選取您計劃用來執行測試的組態。
注意事項 所選測試套件中每個測試案例的測試結果,都會儲存成該套件中每個測試案例和您選取之測試組態的配對。 如需測試組態的詳細資訊,請參閱使用測試組態定義您的測試表。
在 [選取自動化測試設定] 底下,選取您稍早在本主題整體程序的步驟 9 中,為了符合虛擬環境中的角色而建立的測試設定。 如需測試設定的詳細資訊,請參閱將自動化測試的測試設定建立成測試計劃的一部分。
按一下 [完成]。
按一下 [儲存],儲存您的組建定義。
建立的組建定義會出現在 Team 總管的 [Builds] 資料夾內。
佇列工作流程的組建定義
您現在可以將此組建放入佇列,以執行工作流程,並檢視組建工作流程的進度。
若要佇列工作流程的組建定義
若要啟動組建定義以建置、部署及測試您的應用程式,請以滑鼠右鍵按一下 [Builds] 資料夾中的實驗室組建定義,然後按一下 [佇列新組建]。
[佇列組建] 對話方塊隨即出現。
驗證組建工作流程的資訊,然後按一下 [佇列]。
[Build 總管] 檢視隨即顯示。
若要在組建進行中查看 [組建摘要] 檢視,請按兩下您的組建。
您可以在組建進行中查看狀態。
(選擇性) 如果您要在組建進行中檢視環境,請開啟 Microsoft 測試管理員,找出 [實驗室中心],再按一下 [實驗室],然後在清單中按一下您的環境。 您可以檢視環境的影像以及此影像上方的環境詳細資料中反映的組建進度,如下:
如果您選取此選項,便會還原快照。
如果您選取此選項,便會擷取部署後快照。
功能的狀態 (當功能就緒時會顯示綠色箭號)。
如果測試會與使用者介面互動,您會看到執行中的測試。
如果組建工作流程已順利完成,您會看到一個綠色核取記號。 如果發生錯誤,您可以按一下 [檢視記錄檔] 來查看詳細資料。
從組建結果連接至環境
如果組建工作流程中測試失敗,您可以連接到環境來調查問題。 如果您在組建工作流程中選取這個選項,便可連接到部署後快照,或者您也可以連接到處於目前狀態的環境,如下圖所示。
若要從組建結果連接至環境
從 Team 總管中的 [Builds] 資料夾,以滑鼠右鍵按一下您的組建工作流程定義,並指向 [檢視組建]。
[Build 總管] 檢視隨即顯示。
若要檢視已完成的組建,請按一下 [已完成] 索引標籤。
按兩下您要檢視的組建。
[組建摘要] 檢視隨即顯示。
按一下 [檢視環境快照 <組建名稱和編號>] 旁邊的連結。
[連接到環境] 對話方塊隨即顯示。
如果您想連接到部署應用程式之後擷取的快照,請按一下 [連接至這個環境中的快照]。
注意事項 透過連接到這個快照,在建立此部署後快照之後所做的任何變更都將遭到捨棄。 如果您想保留任何變更,請先連接至處於目前狀態的環境並擷取快照,然後再還原為部署後快照。 如需如何擷取快照的詳細資訊,請參閱 HOW TO:儲存環境的目前狀態。
如果您想在從工作流程執行任何測試之後,連接至處於目前狀態的環境,請按一下 [連接到處於目前狀態的環境]。
按一下 [連接]。
[Microsoft 環境檢視器] 隨即顯示,而且您會連接到環境。 您現在可以調查任何問題。
檢視並分析組建工作流程的測試結果
您可以在組建工作流程摘要中檢視測試結果摘要。 不過,您也可以使用 Microsoft 測試管理員 來檢視及分析測試結果,因為這些結果會儲存為測試計劃的一部分。下圖顯示這個行為。 如需測試計劃之測試結果報告的詳細資訊,請參閱報告測試計劃的測試進度。
若要從 Microsoft 測試管理員檢視及分析測試結果
開啟 Microsoft 測試管理員。
注意事項 若要顯示 [Microsoft 測試管理員] 視窗,請按一下 [開始],然後按一下 [所有程式]。 指向 [Microsoft Visual Studio 2010],然後按一下 [Microsoft 測試管理員]。
若要檢視測試結果,請按一下置中群組切換器上的向下鍵,然後按一下 [測試中心]。
在置中群組功能表列上,按一下 [測試],然後從測試套件階層中選取您在組建工作流程中使用的其中一個測試套件。
您可以查看在組建工作流程中選取之組態的測試結果。
如果您要分析完整的測試回合,請按一下 [分析測試回合]。
[分析測試回合] 活動隨即顯示。 其中會顯示此測試計劃的任何測試回合。
注意事項 回合標題會反映組建定義的名稱。 回合 ID 會顯示在組建的組建摘要頁面中,以協助您識別回合。
按兩下測試回合加以開啟,並檢視其詳細資料。 測試回合詳細資料隨即顯示。
(選擇性) 若要將測試回合的標題更新為更有意義的名稱,請在 [標題] 中輸入新名稱。
(選擇性) 若測試失敗,您可以更新失敗的原因。 按一下 [解決方式],然後從清單中選取失敗的原因。
(選擇性) 若要在測試結果中加入註解,請按一下 [註解] 圖示。 輸入您的註解,然後按一下 [儲存註解]。
(選擇性) 若要檢視個別測試的詳細資料,請按兩下該測試。
測試結果隨即顯示。 其中會顯示測試回合的詳細資料、針對此測試結果所收集之資料的附件,以及該測試的測試結果記錄。 您可以關閉此檢視以回到測試回合。
注意事項 如果您判斷有 Bug 存在,可以在此檢視中建立 Bug。
若要儲存測試回合的任何變更,請按一下工具列中的 [儲存]。