2018/08/06

20180806-技術-Visual Studio負載測試(LoadTest)使用TestController/Agent的設定重點

clip_image001

(分散式的負載測試(Distributed Load Test) - 各角色的職責關係圖:ref from:http://bit.ly/2nbqsbY)


參考文章:


■  使用 Visual Studio 設定 Test Controller 和 Test Agent 以便管理測試

來自 <https://msdn.microsoft.com/zh-tw/library/hh546459.aspx>

>>

■  使用 Visual Studio 管理 Test Controller 和 Test Agent

來自 <https://msdn.microsoft.com/zh-tw/library/dd695837.aspx>

>>

■  Will保哥的VS2010安裝設定方式

http://bit.ly/2nfe6zL

>> 基礎的測試概念實務說明~

■  VS2017 建立 WebTest / LoadTest 官方說明

https://docs.microsoft.com/en-us/visualstudio/test/quickstart-create-a-load-test-project

>>一步步的教學文。



緣由 & 開始疑問點:


原本自已熟悉的壓測模式,是直接由各自的機器(NoteBook)發動Visual Studio (Enterprise版本),壓測目標環境。

而此次,計畫由 Test Controller / Test Agent (控制器 /代理)來發動壓力測試。

如此一來,可省下 各台都需安裝 VS Enterprise 版本。而變成只要安裝一台即可。


Q1:它本身的架構是什麼?各自的職責是什麼??最小建置單位是什麼??

>>最初就是架構不熟,花了不少時間在看這資訊。(即上述的參考資料)

Q2:驗証這架構OK的方式是什麼?如何Run起這壓測情境?

>>這就關系到VS / TC / TA之間的測試&驗証了。

(VS=visual Studio  / TC = Test Controller / TA = Test Agent)


本篇重點:

■  不是 一步步的教學文,僅是列出重要的Key Point 。

■  環境以2017為版本: Visual Studio 2017 / Test Controller 2017 / Test Agent 2017

■  負載測試的架構模式 (可單機版 / 也可多機器版)。

■  Test Controller / Test Agent 的重點Port:6901(連至TC)、6910(連至TA)。 

■  安裝 Visual Studio / Test Controller / Test Agent 重點圖

■  彼此之間的溝通,需借由 一個 網域身份 執行 (或是 採用同帳密 這種偷吃步的方式處理 XD)

■  錯誤排除


環境準備:


Visual Stuido (Enterprise):

參考文:https://docs.microsoft.com/en-us/visualstudio/test/quickstart-create-a-load-test-project

1. 只有在 Enterprise 版本才可以使用 Web performance & load test

clip_image001[6]

2. 啟用方式,要在安裝檔勾選這項目,到時VS 才可以建立 WebTest / LoadTest

clip_image001[8]

才可建立的專案類型

clip_image001[10]

建立相關的檔案類型:WebTest(錄製腳本的)、LoadTest(負載測試)

image


Test Controller / Test Agent :

下載:

https://visualstudio.microsoft.com/zh-hant/downloads/?q=agents

clip_image001[12]

(安裝時要連網路:Test Controller 要 1.5G  / Test Agent 要367MB)

註2:可於Test Controller 那安裝 Sql Express 版本,讓它數據資料直接寫至此 Sql Express 資料庫內。


建置架構:


建置的架構:

三個角色:VS / TC / TA ,由VS授權&發動,TC觸發TA,且收集各Agent的資料數據 (ref from http://bit.ly/2nbqsbY )

clip_image001[14]

而也可以「多角色」彙集於一身(同台機器上)。

clip_image001[16]


另一張權責分工架構圖: (ref from http://bit.ly/2ne3ocv )

clip_image001[22]


各個機器間的Port關聯:

關鍵: 連至Test Controller (6901 port )、連至Test Agent (6910 port)

clip_image001[18]

而這Port是預設的,若要修改,可至各機器的下述位置修改: (ref from http://bit.ly/2LV5sVU)

clip_image001[20]


安裝Test Controller重點:

1. 至官網下載 Test Controller  (詳見上述:環境準備)

2. 開始安裝 & 設定 Test Controller

clip_image001[24]

a.  使用網域身份帳號

b. 設定 負載測試 資料庫的儲存位置

(此為建立好的資料庫樣式)

image


安裝Test Controller後,會產生 三個 使用者群組:再將剛剛設定的網域身份,加入至此三個群組之下  (ref from http://bit.ly/2ObzNMr )

  • TeamTestControllerAdmins
  • TeamTestControllerUsers
  • TeamTestAgentService

clip_image001[34]


如有遇到此 防火牆 設定的問題:

clip_image001[26]

啟用對應的 應用程式,讓它可以允許通訊:

clip_image001[28]

(安裝完成)


安裝Test Agent 重點:


1. 至官網下載 Test Agent  (詳見上述:環境準備)

2. 設定Test Agent :

a. 選擇以「服務」方式運作

clip_image001[30]

b. 設定下述資訊:執行身份 / 向Test Controller 註冊

clip_image001[32]

3. 設定Agent 完成。


驗証LoadTest安裝狀態:


在「loadTest」檔案下,點選「Manage Test Controller」,設定「Controller」(自行輸入)、若是有看到各Agent 狀態,即是成功

image

(另一個範例圖示)

clip_image001[36]


要調整它的測試方法:改為 Remote Execution

開啟測試專案的 Local.testsettings 檔案: (是用Open 開,而非是選它的Property )

clip_image001[38]

調整它的「角色」執行方法,採用「遠端執行」,然後設定「控制器」(自行輸入)

clip_image001[40]


再來就是 原先 觸發 Load Test 的方式,開始進行 壓力測試

(註:自行再調整 壓測人數 / 負載模式(常數or逐步..) / 混合模型  )

(THE END)

0 意見 :

張貼留言