八、監視與分析
—監視器和分析器
—關係圖
—表
—錯誤與閾值
—SQL跟蹤
—分析錯誤
—建立外掛程式
監視器和分析器
—監視器用來即時查看負載測試結果
—分析器用於檢查已經儲存的所有負載測試結果
—分析前提,設定了負載測試結果存放區
嵌入的狀態列顯示測試狀態以及錯誤或閾值衝突的總數。
使用“計數器”窗格中的樹結構來快速查看各種效能計數器或各個電腦。
—計數器
顯示已添加到負載測試中的效能計數器
—關係圖
顯示關係圖上來自運行期間收集到的資料的繪製點
—點
“關係圖”窗格的一部分。顯示當前關係圖中使用的資料。
—摘要
顯示從運行中得來的摘要資料。
—表
顯示一組包含運行資料的表,例如“錯誤”表和“閾值”表。在分析器中可以查看 SQL 追蹤資料。
關係圖
圖形化計數器的圖例顯示一些有用的資料列
預設關係圖(顯示使用者負載、輸送量和回應時間)
表
—表選項:
錯誤
顯示在運行期間建立的錯誤清單。
頁
顯示在運行中使用的頁列表。
請求
顯示在運行期間發送的所有 HTTP 要求。其中包括從屬請求,像。
測試
顯示負載測試中使用的測試清單。
閾值
顯示運行期間超過的閾值的列表。
事務
顯示運行中的事務列表。
SQL 追蹤
只有在使用 SQL 追蹤時,才可在運行後的分析器中看到該選項。
代理
只有在包含多個代理的 rig 上運行測試時,才可看到該選項。
錯誤與閾值
—錯誤和閾值計數在嵌入的狀態列上顯示為連結。
—單擊其中一個連結便會啟用相應的表:“錯誤”表或“閾值”表。
計數器樹顯示了閾值衝突。如果當前的採樣間隔內發生了閾值衝突,則除了節點名稱外,您還會看到一個紅色的符號或一個黃色的符號。在運行持續期間,這些符號將保留,但當不再超出閾值時,這些符號就會灰顯。
閾值網格顯示了前 1,000 個閾值衝突,包括髮生衝突的時間。
可以找到一個超出閾值的計數器,並通過把符號拖動到關係圖上的方式來繪製該計數器。
警告:
錯誤:
閾值
—在負載測試中顯示閾值衝突時,可以在兩種臨界值規則中進行選擇:
Ø比較常數
將效能計數器的值與一個常數值進行比較。
Ø比較計數器
將一個效能計數器的值與另一個效能計數器的值進行比較。
可以設定一個“警告閾值”層級,當達到該警告層級時,負載測試監視器和分析器中便會出現一個指示此警告的黃色符號。
可以設定一個“關鍵閾值”層級,當達到該警告層級時,負載測試監視器和分析器中便會出現一個指示此警告的紅色符號。
比較計數器屬性設定:臨界閾值和警告閾值
建立比較常數
建立比較計數器
SQL跟蹤
—通過收集跟蹤資料,可以識別出在所測試的 SQL 資料庫中運行速度最慢的查詢和預存程序。
—單擊“表”按鈕。從“表”列表框中選擇“SQL 追蹤”。
—通常,“期間”列是第一個要檢查的列。此列中收集的資料的單位為毫秒。
—SQL 追蹤面板將列出運行速度最慢的 SQL 操作,並根據期間按照最慢的操作放在最上面的方式來排序。
—此面板上可以顯示的 SQL 追蹤輸出中的資料列:
Ø事件類別
Ø期間
ØCPU
Ø讀取
Ø寫入
Ø文本資料
Ø開始時間
Ø結束時間
Ø主機名稱
Ø應用程式名稱
Ø登入名稱
ØNT 使用者名稱
如果需要跟蹤 SQL 事件而不是跟蹤在這些列中標識出的資料,則必須使用與 Visual Studio Team Edition for Testers 分開提供的 SQL Profiler 工具設定自己的自訂 SQL 追蹤。
分析錯誤
—提供了兩種查看錯誤的方式:關係圖和表
—Demo
—Example:Could not find dependent counter needed to apply threshold rule
—Example:The load test results database could not be opened.
解決參考:
http://msdn2.microsoft.com/en-us/vstudio/aa718685.aspx
建立外掛程式
—負載測試提供了API,Microsoft.VisualStudio.TestTools.LoadTesting
—可以使用API建立負載測試外掛程式
—Demo
using System;
using Microsoft.VisualStudio.TestTools.LoadTesting;
using System.Net.Mail;
using System.Windows.Forms;
namespace DataDrivenUnitTest
{
public class MyLoadTestPlugin : ILoadTestPlugin
{
LoadTest myLoadTest;
public void Initialize(LoadTest loadTest)
{
myLoadTest = loadTest;
myLoadTest.LoadTestFinished += new
EventHandler(myLoadTest_LoadTestFinished);
}
void myLoadTest_LoadTestFinished(object sender, EventArgs e)
{
try
{
// place custom code here
MailAddress MyAddress = new
MailAddress("someone@example.com");
MailMessage MyMail = new MailMessage(MyAddress, MyAddress);
MyMail.Subject = "Load Test Finished -- Admin Email";
MyMail.Body = ((LoadTest)sender).Name + " has finished.";
SmtpClient MySmtpClient = new
SmtpClient("localhost");
MySmtpClient.Send(MyMail);
}
catch (SmtpException ex)
{
MessageBox.Show(ex.InnerException.Message +
".\r\nMake sure you have a valid SMTP.");
}
}
}
}
—有八種事件與負載測試相關聯,且可在負載測試外掛程式中進行處理,以使用負載測試運行自訂代碼。以下是事件的列表,這些事件提供對負載測試啟動並執行不同時間段的訪問:
ØLoadTestStarting
ØLoadTestFinished
ØLoadTestWarmupComplete
ØTestStarting
ØTestFinished
ØThresholdExceeded
ØHeartBeat
ØLoadTestAborted
Demo下載