本文章是由機器翻譯。

負載測試

Microsoft Azure 與 Visual Studio Online 讓負載測試變得更加輕鬆

Charles Sterling

互聯網是在商業世界中偉大的等化器。它説明最小的公司,與世界上最大的公司競爭。有是有風險的機會。應用程式必須執行所有的時間準時。停機時間直接等於失去的收入。為了説明開發團隊理解他們下脅迫和過度使用的應用程式的性能特點,微軟在 2005 年發佈了Visual StudioTeam System與負載測試工具。

即使在那釋放之前Visual Studio負載測試是最廣泛內部使用的測試控管之一。這引出了一個問題,無論哪種工具使用,為什麼沒有負載測試獲得整個世界同樣接受?負載測試結果都不是來自大多數開發團隊努力的設置和管理所需的基礎設施。這是不必要的風險。

Visual Studio2013年,微軟發佈了基於雲計算的負載測試作為Visual Studio線上的一部分。這解決了使用微軟 Azure 時自動調配和主機負載測試基礎設施的挑戰。Visual Studio2013年更新 3,雲負載測試在Visual Studio線上應用的見解結合進一步增強。這有助於說明內部的診斷,如效能計數器、 例外和運行期間分配的物件。

創建負載測試

如果您不熟悉負載測試過程中Visual Studio,你應該開始與 Web 效能測試和負載測試專案。從該檔執行此操作 |新的專案功能表。選擇創建一個或多個 Web 測試的 Web 效能測試和負載測試。

為推動這些 Web 效能測試,向專案中添加一個負載測試 (請參閱圖 1)。打開解決方案查找器、 用滑鼠右鍵按一下您的專案 (我名為 WebLoadTestProject1),選擇添加,然後負載測試並按照新建負載測試精靈中的指示。在負載測試中,該系統收集資訊,如有多少使用者持續時間、 類型的網路預熱時間、 測試分佈等等。另一個選項是創建動態負載測試中使用資料繫結 (見"基於雲計算的負載測試的資料繫結 Web 測試")。

向專案中添加負載測試
圖 1 向專案中添加負載測試

資料繫結 Web 測試的基於雲計算的負載測試

雖然靜態的 Web 測試可以給你詳細的性能資訊關於您的應用程式,你將能夠從動態的 Web 測試中獲得更多的有識之士。這些動態負載測試通常提供不同的值,每次運行。舉個例子,而不是發送搜索詞"青蛙"數以千計的時代,它會更有意義,使用其他可能的搜尋條件和測試邊界條件 (如"蟾蜍,""青蛙",等等) 的名稱。你可以完成這種先進的技術,稱為資料繫結。

資料將 Web 測試綁定,您需要從 Web 測試控管欄添加到 Web 測試中的資料來源。這種類型的動態測試將支援 XML 和 CSV 資料庫作為資料來源。請記住,對於 XML 和 CSV 資料來源將整個檔案複製到代理的虛擬機器。此外,對於基於雲計算的負載測試,測試代理需要能夠連接到資料來源。因此,資料庫資料來源需要在微軟 SQL Azure 資料庫上運行。

您使用 Web 測試的資料來源的屬性確定如何測試將遍歷資料來源:不能移動,隨機、 順序或獨特。請注意,獨特的屬性目前還不能使用基於雲計算的負載測試。添加了資料來源後,您的查詢字串參數 (以前靜態字串"青蛙") 的 value 屬性現在將下拉的功能表項目。這將説明您將測試綁定到資料來源的特定的列。

Azure 付諸工作

通常情況下,真正的工作開始創建負載測試之後。在這一點上,測試團隊需要申辦實際上運行負載測試的測試代理的電腦。例如,如果您想要把 5,000 使用者負載放在您的 Web 網站,您可以支援 500 個使用者,每台電腦運行所需的測試,測試團隊需要獲取、 提供和管理額外的 10 台電腦。

然而,在 Local.TestingSettings 檔中使用該選項,Visual Studio線上雲負載測試可以照顧所有對你來說。預設情況下,雲計算負載測試將自動啟動每 500 個使用者的 Azure 託管代理人。每個代理都有兩個核心。

您可以重寫此行為通過稱為代理計數 (總芯) 一個新的回合設定屬性。雲計算負載測試的當前實現限制為最多 10 劑或 20 芯。雲計算負載測試還需要至少 25 個使用者每個核心。所以雖然你可以將代理計數 (總芯) 屬性設置與只有 10 個使用者的負載 10,雲負載測試只會分配一個代理,通知您以下消息:

"此負載測試將運行使用一個代理芯。代理核心計數值已從 '10' 修改為 '人' 作為負載優化需要測試每個核心 '25' 虛擬使用者。瞭解更多關於它在 go.microsoft.com/fwlink/?LinkID=310093."

對於包含超過 5000 個使用者的測試,使用者分佈在 10 劑和 20 芯。

瞭解您的負載測試

你通常會開始您的負載測試的努力通過自問負載測試應該回答類似的問題:

  • 是我的應用程式一樣快,我期望嗎?
  • 是我變得更好的性能或變得更糟嗎?
  • 我的代碼產生了荷載作用下的錯誤嗎?

為了回答這些問題,Visual Studio負載測試提供了幾種不同的報告。它將然後自動存儲它們的運行資料為您和您的團隊在Visual Studio線上。

例如,使用輸送量報告並讓顯示在負載測試執行期間,你將能夠一眼就看出是否您的應用程式按預期運行 (請參閱圖 2)。出人意料地快速的回應時間加上意料之外的失敗次數會建議 (如服務正在下降或不正確的伺服器名稱) 的系統性失敗。然後你可以中止負載測試。

Visual Studio線上負荷測試報告頁
圖 2 Visual Studio線上負荷測試報告頁

傳統負載測試Visual Studio負載測試解決具有挑戰性的另一個方面是協作在團隊環境中,如共用和存儲負載測試結果。在負載測試管理器以在圖 3,你只能看到兩個團隊成員都做效能測試。最後四個運行被中止,他們只是排隊的另一個運行。好了,就不什麼。

負載測試管理器
圖 3 負載測試管理器

敏捷團隊通常有興趣瞭解他們當前衝刺 (sprint) 努力對性能的影響。要回答這個問題,Visual Studio提供了兩種不同的基於 Excel 報告,説明團隊比較運行及審查的趨勢。若要查看此深入的資訊,請從Visual Studio線上下載運行的資料。按一下查看報告連結。這將打開您的資料報表檢視 — — 包括打開和比較多在 Excel 中運行資料集的選項。

在報告圖 4 將 Sprint2 與 Sprint3 進行比較。你可以看到表演時 4%的速度慢,有更少的錯誤。這是一個可控的取捨對團隊。

例已完成的負載測試報告
圖 4 例已完成的負載測試報告

集成應用程式的見解

在負載測試期間發現的錯誤是經常質疑由於可疑的診斷收集技術。更糟的是卻很難或不可能由於不足的診斷收集資訊診斷這些錯誤。

Visual Studio2013年更新 2,雲負載測試被增強結合應用的見解。請參閱 2014 年 5 月的文章,"下一代開發與應用透視"(msdn.microsoft.com/magazine/dn683794.aspx)。這種集成與生產監控工具使測試在開發或生產中的應用。它還可以説明開發團隊找到並開始以解決任何錯誤,他們發現,無論他們被發現時 — — 無論是小時、 天或星期早些時候。

若要包括綜合的性能和診斷資訊轉化為雲負載測試中使用應用程式的見解,請按右鍵負載測試定義的應用程式節點。然後選擇您想要包括在您的負載測試報告的應用程式的見解元件。

總結

雲負載測試在Visual Studio線上去除大量的設置工作和負載測試您的應用­陽離子。雖然 Azure 使它易於擴展的應用程式和潛在地"買"你表現糟糕的代碼,而無需負載測試的出路,它往往是難以或不可能知道這將花費多少。它也很難告訴你的客戶是否要做到這一點之前有負面的影響。完全雲負載測試,可以説明您識別可以對您的業務產生影響的活動網站 bug。


Charles Sterling 20 多年來一直在微軟。在微軟之前,他是為做白令海的海洋哺乳動物研究的美國國家海洋漁業工作的海洋生物學家。經過六年赴澳大利亞作為一個微軟的產品經理,英鎊是目前回來在雷德蒙德擔任高級專案經理Visual Studio開發團隊。聯繫到他在 chass@microsoft.com

感謝以下的微軟技術專家對本文的審閱:瑪納斯 Maheshwari