HOW TO:將應用程式部署至虛擬環境
您可以使用 Visual Studio Lab Management,將應用程式自動部署至虛擬環境。 您可以使用組建定義的特定實驗室範本來建置應用程式,然後再將應用程式部署到虛擬環境中。 這個程序可讓您使用虛擬環境的已知狀態,在乾淨的環境中設定最新的應用程式組建。 接著,使用者可以在這個環境中存取應用程式,或者您可以使用 Microsoft 測試管理員執行手動測試或自動化測試。
![]() |
---|
如果您要在建置及部署應用程式之後執行自動化測試,請依照下列主題中的步驟執行:HOW TO:在建置並部署應用程式之後設定和執行已排程的測試。 |
請使用下列程序建立組建工作流程,以建置及部署您的應用程式:
檢查必要條件
建立組建定義並啟動組建
從組建結果連接至環境
注意事項
您只能將組建定義的實驗室範本搭配手動、已排程和復原的觸發程序使用。 建議您不要使用復原組建觸發程序,因為測試失敗仍然會允許下一個復原組建啟動,或是會停止整套組建系統。 不支援閘道簽入和連續整合觸發程序。
必要條件
在設定組建工作流程來建置及部署應用程式之前,請先使用這份清單確認您已完成下列工作:
必要工作
設定 Lab Management,包括組建控制器和測試控制器:第一次設定 Lab Management。
為您的環境建立虛擬機器,並將代理程式加入到這些虛擬機器中,然後再將虛擬機器儲存到程式庫共用中:HOW TO:建立並儲存可供 Lab Management 使用的虛擬機器和範本。
從 SCVMM 將虛擬機器或範本匯入到 Team 專案:HOW TO:從 SCVMM 匯入虛擬機器或範本。
建立以所需角色使用這些虛擬機器的環境,並選擇對此環境執行測試及使用工作流程,然後啟動您的環境:HOW TO:從虛擬機器或範本建立環境。
注意事項
您必須針對為每部虛擬機器所選取的角色,安裝及設定該虛擬機器需要的任何軟體。 為虛擬機器選取角色並不會安裝任何必要的軟體。
(建議) 擷取環境的快照,以當做工作流程的初始狀態:HOW TO:儲存環境的目前狀態。 在您擷取這個快照之前,請先執行下列步驟:
確定環境中的虛擬機器具有其作業系統的最新更新。
針對環境中已連接至網域的任何虛擬機器執行 gpupdate /force 命令,確定已更新對使用者原則所做的任何變更。 如果未執行此命令,則部署指令碼可能無法正常運作,或者測試可能無法正常運作。
確認環境的狀態為 [執行中],且工作流程功能的狀態為 [就緒]。
注意事項
如果此快照中的虛擬機器已加入至某個網域,而快照的使用時間超過網域控制站的密碼逾期期限,則虛擬機器可能將無法再加入網域。 如需詳細資訊,請參閱 HOW TO:儲存環境的目前狀態。
確定應用程式的程式碼專案和測試專案已簽入至原始檔版本控制:將檔案放入版本控制下。
建立應用程式的組建定義,供您用來建置應用程式。 接著,您可以在使用實驗室範本建立組建工作流程時,選取這個組建定義,或是選取這個組建定義所建立的特定組建:建立基本組建定義。
使用組建定義的實驗室範本建立組建、部署和測試工作流程
若要建立組建、部署和測試工作流程,您必須依照以下步驟進行:
步驟 |
動作 |
---|---|
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 個快照的限制。 因此,您必須定期刪除舊的快照。
在 [輸入快照名稱] 中輸入此快照的名稱。
注意事項
不論您是否想要調查問題,都可以使用這個快照連接到環境,並重新執行測試。 其他小組成員也可以執行這項工作。 使用這個快照在安裝應用程式的乾淨系統上執行測試,通常有助於判斷發生的狀況,甚至還能夠確認應用程式是否已正確安裝。
按 [下一步]。
按一下 [完成]。
按一下 [儲存],儲存您的組建定義。
建立的組建定義會出現在 Team 總管的 [Builds] 資料夾內。
佇列工作流程的組建定義
您現在可以將此組建放入佇列,以執行工作流程,並檢視組建工作流程的進度。
若要佇列工作流程的組建定義
若要啟動組建定義以建置、部署及測試您的應用程式,請以滑鼠右鍵按一下 [Builds] 資料夾中的實驗室組建定義,然後按一下 [佇列新組建]。
[佇列組建] 對話方塊隨即出現。
驗證組建工作流程的資訊,然後按一下 [佇列]。
[Build 總管] 檢視隨即顯示。
若要在組建進行中查看 [組建摘要] 檢視,請按兩下您的組建。
您可以在組建進行中查看狀態。
(選擇性) 如果您要在組建進行中檢視環境,請開啟 Microsoft 測試管理員,找出 [實驗室中心],再按一下 [實驗室],然後在清單中按一下您的環境。 您可以檢視環境的影像以及此影像上方的環境詳細資料中反映的組建進度,如下:
如果您選取此選項,便會還原快照。
如果您選取此選項,便會擷取部署後快照。
功能的狀態 (當功能就緒時會顯示綠色箭號)。
如果測試會與使用者介面互動,您會看到執行中的測試。
如果組建工作流程已順利完成,您會看到一個綠色核取記號。 如果發生錯誤,您可以按一下 [檢視記錄檔] 來查看詳細資料。
從組建結果連接至環境
在組建工作流程完成之後,您可以連接到環境來試用應用程式。 如果您在組建工作流程中選取這個選項,便可連接到部署後快照,或者您也可以連接到處於目前狀態的環境,如下圖所示。
若要從組建結果連接至環境
從 Team 總管中的 [Builds] 資料夾,以滑鼠右鍵按一下您的組建工作流程定義,並指向 [檢視組建]。
[Build 總管] 檢視隨即顯示。
若要檢視已完成的組建,請按一下 [已完成] 索引標籤。
按兩下您要檢視的組建。
[組建摘要] 檢視隨即顯示。
按一下 [檢視環境快照 <組建名稱和編號>] 旁邊的連結。
[連接到環境] 對話方塊隨即顯示。
如果您想連接到部署應用程式之後擷取的快照,請按一下 [連接至這個環境中的快照]。
注意事項
透過連接到這個快照,在建立此部署後快照之後所做的任何變更都將遭到捨棄。 如果您想保留任何變更,請先連接至處於目前狀態的環境並擷取快照,然後再還原為部署後快照。 如需如何擷取快照的詳細資訊,請參閱 HOW TO:儲存環境的目前狀態。
如果您想連接至處於目前狀態的環境,請按一下 [連接到處於目前狀態的環境]。
按一下 [連接]。
[Microsoft 環境檢視器] 隨即顯示,而且您會連接到環境。 現在您可以使用自己部署的應用程式。