CIO
|
PCDIY!
|
旗標圖書
|
旗景數位影像
|
讀者服務
首 頁
即時新聞
業界動態
最新活動
企業採購
精選文章
線上教學
品牌活動
程式碼下載
雲端運算智庫
最近新增的
精選文章
AP內建AI引擎 Mist Cloud平台分析能力強 Juniper Mist AI領先全球 改善WiFi穩定、效能首選
解決IT供應鏈攻擊
內部威脅的七個警訊
遠百以專案辦公室推動數位體驗
多廠牌與多重電信業者網路架構的挑戰與機會
德明科大啟用電貿暨AI實習基地 ViewSonic ViewBoard 智慧互動電子白板 扮要角
淺談計算誤差
秀傳醫療體系統 以Lenovo HyperConverged HX 超融合架構扎穩智慧醫療發展基礎
模組化設計 偵測率達99.99% 全面防杜惡意郵件入侵 首選Cellopoint Email UTM
滿足網路管理與檔案安全傳輸需求,Ipswitch的MOVEit及WhatsUp Gold一次完整提供
來自學界的資料分析利器 - Weka 與 R
北醫建置肺癌資料庫,透過深度標註訓練AI,協助醫師早期發現癌症
北榮AI門診上路!人工智慧判讀腦瘤,有效縮短醫師確診時間
台灣智慧機器人玩具聯盟攜手英閱音躍研創 推廣T. Robot程式教育,協助國中小學扎根培養運算思維
一場與時間賽跑的戰役 ,人工智慧加速心血管疾病診斷
最多人點閱的
精選文章
免費IT建置--Linux系統操作與管理
初探Hadoop開放原始碼平台環境
免費IT建置--網頁伺服器的完美組合LAMP(下)
免費IT建置--檔案共享與檔案伺服器
Linux下的防火牆(基礎篇)
Linux下的防火牆(進階篇)
N.Y.BAGELS CAFE善用SAP Business One
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 影片播放器範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 線上查詢匯率
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 擲骰子遊戲
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 音樂播放器範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 來電黑名單
免費IT建置--網頁伺服器的完美組合LAMP(上)
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 繪圖板範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ Matrix應用範例
精選文章 - 開發技術
分享到Plurk
分享到FaceBook
TFS 2012 實驗室管理(3)
文‧圖/胡百敬
2013/3/4 下午 03:19:56
在前兩期專欄中,我們說明了如何透過Visual Studio 2012/Team Foundation Server 2012建立測試用的「標準環境」,在本期專欄中,繼續介紹搭配SCVMM(Microsoft System Center Virtual Machine Manager)建立虛擬測試環境,TFS稱之為SCVMM環境。這可以提供虛擬環境快照、儲存實驗室環境、從虛擬機範本建立環境…等,「標準環境」無法支援的功能。兩者間的功能差異可以參考線上說明的列表:
http://msdn.microsoft.com/zh-tw/library/dd997438.aspx
當下,因為Visual Studio/TFS、Windows、SCVMM等,都在2012年底更新版本,而在實作環境中,需要遷就既有平台與版權,你可能組合不同產品的某個版本。基本上,除了SCVMM 2012 SP1要安裝在Windows 2012,且這個版本的SCVMM才能管理Windows 2012 Hyper-V 3.0的虛擬機外,其他多可以混和新舊版本安裝。
在此文章中,我們採用最新的版本組合:Visual Studio 2012/TFS 2012、Windows Server 2012/Hyper-V 3.0、SCVMM 2012 SP1來說明。
架構概述
TFS提供的「實驗室管理」服務執行在伺服器端,是 TFS 提供的眾多服務之一,用以整合與管理測試環境的資源,如:主機,虛擬機、儲存團隊專案集合(Team Project Collection)和團隊專案、測試計畫與案例…等。整個環境架構如圖1所示:
圖1 測試管理員透過 TFS 可以搭配 SCVMM 動態管理與配置測試環境。
TFS利用微軟的另一項產品:SCVMM管理虛擬實驗室基礎設施。SCVMM可支援多種虛擬化平台的虛擬機器(Virtual Machine)。但若要搭配 TFS 的實驗室管理,則僅能用自家的 Hyper-V,並不支援其他如 VMWare 的虛擬機器。相關規格可以參考如下網址:
http://msdn.microsoft.com/zh-tw/library/dd380687.aspx
圖1中的「Hyper-V主機(Host)」代表實體機器,其上可執行一個以上的 Hyper-V 虛擬機器。虛擬機器是執行在實體電腦內,它模擬完整的硬體架構,形成獨立的作業系統環境,執行各種應用程式。
測試或開發人員操控Test Manager或Visual Studio以存取Team Foundation Server(TFS),TFS經由「Lab Management」與SCVMM溝通,透過SCVMM設定與管理眾多虛擬機。執行測試時,藉由SCVMM叫起裝有「測試代理程式(Test Agent)」的虛擬機器,讓「測試代理程式」與「測試控制器」及TFS溝通,以執行測試並收集資料。
當然,若你要測試的功能或內容Hyper-V不支援,例如Hyper-V無法透過USB存取裝置,就無法在虛擬環境中測試USB裝置。
虛擬機器提供快照功能(Virtual Machine Snapshot),記錄在特定時間點下,虛擬機器的完整狀態。一個虛擬機器可以建立多個快照,並回復到任何虛擬機器先前建立的快照,從特定的點開始啟動執行。這讓測試者可以完成特定的測試方案,例如,回復到乾淨的虛擬機基礎狀態,然後再安裝一個新的待測程式版本。或是將發生問題的環境保留下來,讓開發人員得以分析檢討發生問題的環境。
若要從 TFS 的「實驗室管理」存取Hyper-V 建立的虛擬機器,但 TFS服務與 SCVMM 服務安裝在不同的電腦,必須於 Lab Management 所在的機器上安裝和設定「SCVMM 管理員控制台」,SCVMM 服務與資料庫可以安裝在其他機器上。可從管理員控制台存取SCVMM服務,以管理 Hyper-V 主機電腦及其上的虛擬機。
換句話說,TFS的Lab Management 會呼叫 SCVMM管理員控制台,SCVMM管理員控制台再與SCVMM 服務溝通,以便使用虛擬機器和範本來建立環境。透過SCVMM的安裝程式可以選擇安裝伺服器還是管理員控制台。
透過 SCVMM 可以建置與管理「主機群組(host group) 」,也就是定義成一組的實體主機,以便於管理、監測與分配資源。另一功能是建置共享程式庫(Library Share),虛擬機器的特色之一是不需要依存特定主機,它可以將虛擬機器的定義以檔案形式儲存在磁碟上,並在短時間內恢復成執行中的虛擬環境。SCVMM的共享程式庫是將虛擬機器定義存放在網路共享的資料夾,需要時才將其複製到某個實體主機後啟動。而Visual Studio /TFS 提供的實驗室管理則是倚靠 SCVMM 的控管能力來產生彈性的測試環境。
要靈活使用TFS的實驗室管理一定要熟悉SCVMM和Hyper-V,但由於虛擬技術不是本書的重點,在此也就不多談,建議你可以參考趙驚人老師撰寫,悅知文化出版的<
>一書。
(註:由於 SCVMM 服務一定要安裝在加入網域(AD)的 Windows 2008 x64 以後版本之伺服器上,因此,TFS 2012 雖然可以沒有網域,但若要使用實驗室管理功能,則需要有網域。
其實,筆者聽到許多對安裝整個實驗室管理功能的困擾與抱怨,絕大部分都是出於對網路環境、Windows 網域、安全、SCVMM、Hyper-V等技術不熟悉。因此,若你是開發人員,若要安裝此功能,最好能就教於網管或伺服器管理人員。)
而最新的System Center 2012 Virtual Machine Manager SP1 技術在我們撰寫本文時,僅能參考微軟的線上說明(參考:http://technet.microsoft.com/zh-tw/systemcenter/hh278293)。須提醒的是System Center 2012 Virtual Machine Manager要到SP1才能管理Windows 2012的Hyper-V 3.0。
安裝好SCVMM服務和SCVMM管理員控制台之後,可以透過「Team Foundation Server 管理主控台」工具程式的「Lab Management」節點設定SCVMM服務所在位置,如圖2所示:
▲ 圖2 透過「Team Foundation Server 管理主控台」工具程式告知TFS SCVMM 服務所在機器。
圖2中除了要在Lab Management設定SCVMM伺服器外,也需要在「Team 專案集合」的「Lab Management」頁籤設定SCVMM的「程式庫共用」與「主機群組」,如圖3所示:
▲ 圖3:設定某個「Team 專案集合」可用的SCVMM共用程式庫與「主機群組」。
若SCVMM服務改了伺服器,也是回到圖2和圖3修改,讓TFS改用新的伺服器。另外,需自行準備給實驗室管理使用的虛擬機器;不管是執行在 Host 的虛擬機器,或存在共享程式庫內需要部署的虛擬機器 image,都需安裝 Visual Studio2012 提供的「測試代理程式(Test Agent) 」,以自動化測試流程。在Visual Studio 2010時是3個代理程式,其用途分別說明如下:
●組建代理程式(Build Agent):讓虛擬機器可以參與 Team Foundation 服務的組建流程(Build Process),這包含部署新的組建到測試環境,並執行 post-build 的部署腳本。
●測試代理程式(Test Agent):讓虛擬機器可以執行手動或自動測試。
●實驗室代理程式(Lab Agent):讓虛擬機器環境可以提供網路隔絕。
2012後將其合併成一個「測試代理程式」。在下文中,我們將討論如何安裝代理程式。
現今多層次的應用系統往往由多個角色組成,例如,目錄服務(Active Directory)、資料庫伺服器、應用程式伺服器、Web伺服器、客戶端,乃至於各種輔助的服務,如email、asp.net 的 session 服務、ftp、佇列服務…等,每個角色可能執行在一台以上的電腦內。也可以有多個角色在同一台電腦內運行。而這些角色的系統環境可以透過「測試管理員(Microsoft Test Manager 2012)」設定。
Visual Studio提供的「測試管理員」有兩個不同的用途:「測試中心(Testing Center)」和「實驗室中心(Lab Center)」,如圖 4 所示:
▲ 圖4 透過測試管理員2012工具程式來管理測試案例與測試環境。
簡而言之,「測試中心」負責設定、管理、設計、執行測試案例和檢視、分析執行結果及其相關資訊。「實驗室中心」則負責建置、設定、管理與監控執行測試的實體或虛擬環境。透過圖4上工具列的下拉選單,可在兩種功能模式中切換,而本文的重點在「實驗室中心」。
於實驗室中心可以建立「環境」,代表執行特定的應用系統和實驗室設備需要的一組角色。如圖5所示:
▲ 圖5 透過實驗室中心建立測試環境所需的虛擬機器。
圖5顯示了在實驗室環境中包括三台虛擬機器,這代表一整組的運作,也就是當你對環境做一個動作,如啟動、暫停、關閉、建立快照、從快照回復…等,這動作會施行在環境中所有的虛擬機器上。執行測試時,還可以記錄虛擬環境中的資訊與動作。
在「實驗室中心」滑鼠雙擊任一台環境中的虛擬機器時,會叫起「環境檢視器」介面,以統一操控一組機器,如圖6所示:
圖6 透過「環境檢視器」執行測試時,可同時操控多台機器。
測試用的虛擬環境(Virtual environment)一般包含一個以上的虛擬機器,可以一起部署、啟動、建立快照集…等,只需以滑鼠右鍵選取圖6上方「實驗室中心」視窗之左方的虛擬機器環境名稱,透過快捷選單的選項讓管理與操作時可視為一體,以執行一組測試。
點選圖6下方「Microsoft環境檢視器」視窗左方的小圖示,可以在右方的視窗檢視各執行環境的實際內容,遠端操控該機器。左邊視窗上方的工具列可以一體操控多台機器環境,右邊視窗上方的工具列則是針對右邊當下呈現的那台機器。
由於整個測試流程是將建置好的軟體部屬到虛擬機器中執行測試,因此,第一個要做的是虛擬環境。接下來就簡單的在Windows 2012 Hyper-V 3.0的虛擬機器安裝測試代理程式。
(註:在我們撰寫這篇文章時,同時測試透過Lab Management的「環境檢視器」和SCVMM 2012 SP1,存取Windows 2008 R2 Hyper-V 2.0和Windows 2012 Hyper-V 3.0。Windows 2008 R2的虛擬機比較順暢地呈現,沒有什麼狀況。但存取Windows 2012 Hyper-V 3.0虛擬機時,在「環境檢視器」的左方小圖似乎因為安全登入的問題,不會出現當下系統狀況的縮圖外,透過SCVMM建立快照也會有錯誤。但由於設定方式都相同,此處以較新的Windows Server 2012示範。)
建置虛擬機器的Image
虛擬機器上除了待測系統所需的作業平台與服務外,Visual Studio/TFS 2010版本需要手動安裝代理程式,2012版本後,如果僅是要將這些虛擬機器加入至測試環境,不需要手動在虛擬電腦上安裝測試代理程式。當這些電腦加入至實驗室環境時,Lab Management 會自動在機器上安裝測試代理程式。你可以跳過這一段文章,直接進入下一個主題:建置測試用虛擬環境。
不過,若要將虛擬機器轉換成「虛擬機範本」,則建議在虛擬機器上安裝測試代理程式,再將它轉換成範本。 此外,如果要使用此範本來建立網路隔離環境,也必須先在電腦上安裝測試代理程式,再將它轉換成範本。
在此就以虛擬機器的一個 Windows 8 Image 來安裝代理程式。測試代理程式需要額外透過「Visual Studio Agents 2012」光碟安裝,直接從「TestAgent」目錄下執行「vstf_testagent.exe」執行檔,其安裝程式的起始畫面如圖7所示:
▲ 圖7 測試代理程式的安裝程式起始畫面。
若Windows作業系統上尚未安裝.NET Framework 4.5版,會先行安裝該版.NET Framework。另外,若我們的測試含有互動式操作,例如執行「自動程式碼 UI 測試」,則需要「測試代理程式(Test Agent)」以互動的方式執行。因此,安裝完「測試代理程式」後,在「設定測試代理程式」工具程式的「執行選項」需選擇「互動式處理序」,如圖8所示:
▲ 圖8 在虛擬環境中以互動的方式執行「測試代理程式」。
若要Windows作業系統一啟動就自動以特定的使用者帳號登入,避免因作業系統重起但無人登入,也就無法執行有互動式操作的測試,則可以勾選圖8上方的「自動登入」選項。另外,「設定測試代理程式」對話窗中間的「向測試控制器註冊」選項如其下方的解釋,若該系統用在實驗室中心所建立的虛擬環境,則不需註冊至 Team 專案集合的現有測試控制器。
相關細節也可參考如下的網址:
http://msdn.microsoft.com/zh-tw/library/ee702479.aspx
在此線上說明中,有詳述將虛擬機轉成範本的步驟,在此不多做說明。
我們準備好三個虛擬機器後,就可以搭配不同的虛擬機建立一組測試用虛擬環境,其做法如下。
建置測試用虛擬環境
在建立完虛擬機器並安裝好 SCVMM 後,可以開啟Visual Studio的「測試管理員(Test Manager)」,並切換到「實驗室中心」,如圖9所示:
▲ 圖9 透過「實驗室中心」建立用於測試的「環境」。
圖9中點選「新增」按鈕即可1,接著在「新增環境」設定畫面的「輸入與命名」步驟上方選擇「SCVMM環境」,並賦予環境「名稱」。
(註:Visual Studio/TFS 2010 版本時,建立虛擬環境的方式與選項不同,此處討論的是2012版本的做法。)
接下來在「電腦」步驟選擇SCVMM所控管且當下執行中的虛擬機器,如圖10所示:
▲ 圖10 設定組合既有的虛擬機以建置完整的測試環境。
接下來在「電腦」頁籤中可以從左方「虛擬機器可供使用」列表中選擇測試環境所需的機器,在圖10中可選擇的機器會受到前文圖3的設定所影響。
選擇可用的虛擬機器後,點選上方的「加入至環境」按鈕以加入到右方「選取的電腦」環境後,可透過下拉選單選擇在待測系統擔任的角色,如圖10中,一台當作「Web 伺服器」另一台為「資料庫伺服器」,以及一台「網頁用戶端」。
在接下來的「電腦屬性」頁籤較不需設定,若先前選擇採用從範本建立虛擬機器,則因為可以重新定義Windows作業系統的多項屬性,而提供許多選項。
若在這個頁籤出現警告,例如虛擬機器的硬體組態中,有設定虛擬光碟機而無法使用。而你已經移除該光碟機設定,此處仍沒有更新資訊,則需要更新SCVMM的「Virtual Machine Manager Console」內該虛擬機的資訊,則此頁籤才能讀到虛擬機更新後的狀態。其透過「Virtual Machine Manager Console」更新虛擬機的畫面如圖11下方所示:
▲ 圖11 透過「Virtual Machine Manager Console」更新虛擬機資訊。
若有任何問題,例如改變了虛擬機的機器名稱,也需要更新「Virtual Machine Manager Console」,實驗室中心完全要靠SCVMM提供的資訊。你可以透過圖11檢視虛擬機的內容,若此處的資訊錯誤,會讓實驗室中心無法正確存取虛擬機。
接著,在圖12的「進階」頁籤設定目前設置的虛擬環境使用的測試控制器,以及是否支援UI測試:
▲ 圖12 設定測試控制器,以及是否支援UI測試。
圖12的設定會在建立環境的步驟執行完畢,Lab Management自行對虛擬機器安裝與設定測試代理程式時,賦予到如前文圖8的測試代理程式設定項目。若有安裝多個測試控制器註冊到Team專案集合,則可以於圖12上方的「在這個環境上執行測試的測試控制器」下拉選單中選擇一個。
若要執行UI測試,則測試代理程式需要以一般Windows或網域帳號登入虛擬機,才能以互動方式操控待測程式。故需選擇某種測試用途之類型的虛擬機器,並賦予登入帳號和密碼。此設定會讓虛擬機器啟動後,測試代理程式立刻登入Windows作業系統,並在左下角出現如圖13的「測試代理程式」執行畫面,以反映該代理程式正在執行的工作:
▲ 圖13 以互動方式執行的「測試代理程式」之程式畫面。
在「摘要」步驟檢視先前設定無誤後,最後一步驟要執行「驗證」,點選右下角的「驗證」按鈕後(圖14已經驗證完畢,「驗證」按鈕自動轉成「完成」),會針對前述的設定驗證是否可以執行。在「驗證使用提供的使用者名稱和密碼是否可以存取電腦」步驟,必須要能存取到先前所選取的虛擬機,換句話說,虛擬機要在啟動狀態,且能透過網路存取。其畫面如圖14所示:
▲ 圖14 驗證虛擬環境的設定。
一切驗證無誤,需要點選「完成」,Lab Management才真正開始準備虛擬環境,其畫面如圖15所示:
▲ 圖15 Lab Management在各個虛擬機上安裝測試代理程式並完成設定。
圖15的安裝過程中,會到虛擬機上安裝測試代理程式,並等候測試代理程式與TFS和測試控制器溝通,但若虛擬機本身因為防火牆或DNS解析,乃至於任何其他網路問題,無法與TFS溝通就會造成安裝失敗。你可以到Windows系統的事件檢視器尋找蛛絲馬跡。
限於篇幅的關係,本期專欄就先介紹到此,在下期專欄中,繼續整合SCVMM虛擬測試環境與測試管理員和組建流程,以實際利用該環境進行測試。
回首頁...
關於RUN!PC
|
廣告刊登
|
聯絡我們
|
讀者服務
|
雜誌訂閱
|
出刊&補寄時間
-- Copyright© FLAG INFORMATION CO., LTD. 旗訊科技(股)公司. All rights reserved. 本站圖文著作權所有 未經授權 不得任意轉載使用 --
-- 請使用1024*768螢幕解析度,IE 7.0或firefox 3.0以上瀏覽器,以達到最佳閱讀效果--