Visual Studio 2013 + Visual Studio Online (原名 Team Foundation Service) 進行持續整合與壓力測試

作者 –張羽承 (Sky, 微軟MVP)

註 - Team Foundation Service 已於 2013/11月改名為 Visual Studio Online

本文將包括2部份 – 分別為「使用Team Foundation Service 持續整合」及「利用Team Foundation Service進行負載測試」

使用Team Foundation Service 持續整合 自動化佈署Windows Azure上的網頁應用程式

持續整合 (Continuous integration, CI)是軟體開發生命週期中,不可缺少的一個部分;試著思考一個情境,當其中一位開發人員引用了第三方的類別庫,但忘了將此類別庫簽入到版本控制裡面,雖然在此開發人員的電腦上是可以編譯的,但其他同事簽出此程式碼的時候,卻會產生無法編譯的錯誤;而過程中的除錯與處理,都會浪費掉鉅額的時間。

而透過持續整合,可以在簽入程式碼的當下、每天固定時間等,來建置應用程式,並自動的將程式部署到指定的位置與環境,最後還可以整合測試,來讓問題提早發現並提早處理,以確保團隊的開發效率,讓團隊能持續進行,而不會受到打擾與中斷。

而現在,隨著雲端時代的來臨,Team Foundation Service的持續整合也已經和Windows Azure緊密的結合,能直接透過Team Foundation Service直接部署到雲端上了( Windows Azure上的Web Sites和Cloud Service都已經支援 )。

建立Windows Azure Web Sites

首先,必須先在Windows Azure上建立一個Web Site,筆者這邊命名為testtfsci。

接下來,從testtfsci這個Web Site的【儀表板】,可以找到【設定從原始檔控制進行部署】。

 

從下圖,可以發現到有非常多的來源選項,這邊選擇【Team Foundation Service】來當作原始碼的來源。

 

點下去之後,要輸入之前註冊的Team Foundation Service網址,所以如果還沒有申請Team Foundation Service的讀者,可以點選立即建立TFS帳戶;而已經註冊過的讀者直接輸入註冊的網址就可以,輸入完後,點選【立即授權】即可。

 

接下來,會跳出確認視窗,如果無誤,同意即可。

 

接著,就可以選擇在Team Foundation Service上的專案,這邊筆者選擇的是VS2013Demo這個專案。

 

完成之後,就會自動跳到Windows Azure的【部署】選項下,並且明確的訊息寫著已經連結。

 

透過簽入來觸發持續整合

當完成以上的設定後,預設下的觸發模式是連續整合,也就是每次簽入原始碼的時候都會觸發建置,如果想要調整成其他的模式,也可以利用Visual Studio連結Team Foundation Service,連結Team Foundation Service後,至下圖的位置,於【Team Explorer】視窗下,選擇【組建】。

 

然後選擇從Team Foundation Service自動產生的組件定義,並選擇【編輯組件定義】。

 

之後,就可以從視窗下,調整觸發的模式;另外,這邊也提供了很多組建的選項,筆者就不再這邊一一的介紹。

 

如果觸發選項是選擇【連續整合】;當簽入原始碼的時候,就會開始建置,並且部署到Windows Azure Web Site上,如下圖就是開始建置的畫面,從【組建】的畫面下,可以得知目前的建置狀況。

 

除此之外,也可以透過Windows Azure Web Site的【部署】觀看到現在的狀況。

當完成之後,就可以利用瀏覽器查看部署上去的網站。

 

透過Team Foundation Service持續整合與Windows Azure服務的整合,可以讓整個開發團隊的開發流程更加的穩固,並且讓各種測試工具或是測試人員輕鬆地接手測試,以提升整體的開發,達到良好的軟體開發之目的。

參考資料

利用Team Foundation Service當代理伺服器進行負載測試

備註: 此功能需要Visual Studio Ultimate 2013 和 Team Foundation Service,並且讓Visual Studio已經連線到Team Foundation Service。

在Team Foundation Server 2012的時代,要進行負載測試需要準備很多的東西,如下圖,從Visual Studio開始,會透過測試控制器來控制測試代理程式,讓測試代理程式執行測試與收集資料;乍聽之下感覺很簡單,但實際上,當要進行千人以上的壓力測試的時候,就會需要非常大的資源;這時可能就會需要準備新的電腦,或是要去與IT單位進行協調與申請;也因為事情的繁雜,也會讓團隊的開發流程,造成阻礙。

 

隨著雲端的發展,現在要進行負載測試也變得比前更加的容易與簡單;透過Team Foundation Service與Visual Studio 2013的服務與功能,可以讓Team Foundation Service自動的創建需要的硬體規模大小,來擔任測試代理程式這個重大的責任,也因此,簡化了原本繁雜的程序,讓負載測試變成一件很簡單的事情。

將測試設定改變為使用Team Foundation Service來執行測試

首先,打開Visual Studio 2013後,就可以新增一個【Web效能和負載測試專案】。

 

 

接下來,只要點選Local.testsettings,就會出現設定;從測試回合位置的地方,改成【使用Visual Studio Team Foundation Service執行測試】,就可以將測試代理程式改成使用Team Foundation Service;確定後按下【套用】就設定完成了。

 

錄製測試樣本

設定完使用Team Foundation Service執行測試後,需要針對要測試的目標,錄製一下測試的樣本,簡單的說,就是要針對那個網站做那些事情;這邊選擇【加入要求】;代表的是要對哪個網站進行瀏覽,另外也可以選MENU紅色的【加入錄製】按鈕,會帶出瀏覽器來協助製作樣本。

 

接下來,選擇要測試的URL,也就是目標。

 

執行負載測試

完成基本的要求樣板後,就可以準備進行負載測試,接下來,針對此專案,加入新的項目。

 

接下來,可以選擇【考慮時間特性】,代表著使用者是否會停下來思考,如果有需要可以自行調整,筆者這邊則選擇【不使用考慮時間】。

 

下一步後,要設定使用者人數,這邊可以選擇是要逐步的提升使用者數量,或是一開始就讓模擬的數量全部都進行測試。筆者這邊基本上不需要依據每秒的時間慢慢往上加,所以選擇【常數負載】,並且【使用者計數】定為25人。

 

接下來,這邊的選項,會依據【測試混合】所設定的測試項目,來依據比例進行測試,而這邊【按總測試數】,表示當下使用者會隨機的拿測試案例測試,但測試完後,比例會符合我們設定的比例;而【按虛擬使用者人數】,表示測試中的每個時間點,比例都會依據設定的比例;所以【按總測試數】和【按虛擬使用者人數】的差異是,一個是過程中比例不會符合,而結束的時候會符合比例,而一個是過程中一直維持符合比例。

至於【按使用者步調】,是指定固定測試幾次後,在跳到下一項目,而項目的順序,則是依據設定,但每個人當下測試的項目會不同;至於【依據循序測試】,如同【按使用者步調】,差異在於當下每個人測試的項目是完全一樣。

 

接下來,如果有錄多的範本,這邊就可以選擇多項測試。

 

接下來,選擇網路模式,這邊也可以依據需求,選擇想要的網路類型,並且依據百分比分配。

 

再來選擇瀏覽器的模擬器,同樣的,也可以選擇多個瀏覽器,並進行比例的分配。

 

接下來,如果有想要特別針對監控的電腦,可以在這邊增加。

 

最後一個步驟,設定測試的時間,預設是10分鐘,可以自由提高或是降低,此外,也可以針對此測試,進行多次的反覆項目。

 

完成設定後,就可以按下Menu上的【執行負載測試】。

 

按下去後,Visual Studio就會叫用Team Foundation Service,讓Team Foundation Service依據需求來建立測試代理伺服器,所以如果Visual Studio沒有連線的話,就會發生錯誤。下圖是建立中的過程。

 

接下來,就會開始進行壓力測試。

 

當壓力測試完成後,可以點選【Download report】來下載剛剛測試的報告。

 

下載完成後,可以再按一下【View report】

 

就會看到詳細且完整的報告。

 

如果想讀取之前的報告,也可以從【Load Test Manager】的選項得知。

 

從【Load Test Manager】就可以看到從以前到現在的所有報告。

 

透過Team Foundation Service越來越強大的功能,原本很多需要自己配置的東西,現在透過雲端,不需要準備太多的東西,就可以輕易的處理,立即使用。

參考資料

 

 

◎延伸閱讀

軟體生命週期管理的新功能 - 使用 Visual Studio Ultimate + Team Foundation Server 2013

運用 Git 進行版本控管 - 使用 Visual Studio + Team Foundation Server 

Team Foundation Service 雲端協同開發平台簡介

整合社交驗證及開發Facebook App – 使用ASP.NET及 Visual Studio 2013

 

  [線上功能展示影片] 利用雲平台執行負載壓力測試 (Cloud Load Testing) - https://channel9.msdn.com/Series/Visual-Studio-2012-Premium-and-Ultimate-Overview-CHT/Cloud-Load-Testing-CHT