HOW TO:建立負載測試外掛程式
這個主題適用於:
Visual Studio Ultimate |
Visual Studio Premium |
Visual Studio Professional |
Visual Studio Express |
---|---|---|---|
您可以建立負載測試外掛程式,以便在執行負載測試的不同時刻執行。 您可以建立外掛程式,以擴充或修改負載測試的內建功能。 例如,您可以撰寫負載測試外掛程式,以便在執行負載測試時,設定或修改負載測試模式。 若要這麼做,就必須建立繼承自 ILoadTestPlugin 介面的類別。 這個類別必須實作此介面的 Initialize 方法。 如需詳細資訊,請參閱 ILoadTestPlugin。
注意事項 |
---|
您也可以建立 Web 效能測試的外掛程式。 如需詳細資訊,請參閱 HOW TO:建立 Web 效能測試外掛程式。 |
若要使用 Visual C# 建立負載測試外掛程式
開啟包含 Web 效能測試的測試專案。
如需詳細資訊,請參閱 HOW TO:建立和設定自動化測試的測試專案。
將負載測試加入至測試專案,並將它設定為執行 Web 效能測試。
如需詳細資訊,請參閱 HOW TO:使用新增負載測試精靈建立新的負載測試。
在 [方案總管] 中,以滑鼠右鍵按一下方案、選取 [加入],然後按一下 [新增專案]。
[加入新的專案] 對話方塊隨即出現。
在 [已安裝的範本] 底下,選取 [Visual C#]。
在範本清單中,選取 [類別庫]。
在 [名稱] 文字方塊中,輸入類別的名稱。
按一下 [確定]。
新的類別庫專案會加入至 [方案總管],而且新的類別會出現在 [程式碼編輯器] 中。
在 [方案總管] 中,以滑鼠右鍵按一下新類別庫中的 [參考] 資料夾,然後選取 [加入參考]。
接著會顯示 [加入參考] 對話方塊。
按一下 [.NET] 索引標籤、向下捲動,然後選取 [Microsoft.VisualStudio.QualityTools.LoadTestFramework]。
按一下 [確定]。
[Microsoft.VisualStudio.QualityTools.LoadTestFramework] 的參考就會加入至 [方案總管] 中的 [參考] 資料夾。
在 [方案總管] 中,以滑鼠右鍵按一下包含您想要加入負載測試外掛程式之負載測試的測試專案頂端節點,然後選取 [加入參考]。
[加入參考] 對話方塊隨即顯示。
按一下 [專案] 索引標籤並選取類別庫專案。
按一下 [確定]。
在 [程式碼編輯器] 中,加入 Microsoft.VisualStudio.TestTools.LoadTesting 命名空間的 using 陳述式。
實作在類別庫專案中所建立之類別的 ILoadTestPlugin 介面。 如需範例實作,請參閱下列的<範例>一節。
程式碼撰寫完成之後,請建置新專案。
以滑鼠右鍵按一下負載測試的頂端節點,然後按一下 [加入負載測試外掛程式]。
[加入負載測試外掛程式] 對話方塊隨即出現。
在 [選取外掛程式] 底下,選取您的負載測試外掛程式類別。
在 [所選外掛程式的屬性] 窗格中,設定外掛程式要在執行階段中使用的初始值。
注意事項 您可以從外掛程式公開任意數目的屬性,只要讓這些屬性成為公用、可設定且屬於基底型別 (例如整數、布林或字串) 的屬性即可。 您之後也可以使用 [屬性] 視窗來變更 Web 效能測試外掛程式屬性。
按一下 [確定]。
此外掛程式就會加入至 [負載測試外掛程式] 資料夾。
警告
當您執行使用外掛程式的 Web 效能測試或負載測試時,可能會收到類似下面的錯誤:
Request failed: Exception in <plug-in> event: Could not load file or assembly '<"Plug-in name".dll file>, Version=<n. n. n. n>, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
如果您變更任何外掛程式的程式碼並建立新的 DLL 版本 (Version=0.0.0.0),但是外掛程式仍然參考原始的外掛程式版本,就會導致此錯誤發生。 若要更正此問題,請依照下列步驟執行:
-
在測試專案中,您將會在參考中看見警告。 移除並重新加入外掛程式 DLL 的參考。
-
從測試或適當的位置中移除外掛程式,然後再重新加入。
-
範例
下列程式碼會顯示在 LoadTestFinished 事件發生後,執行自訂程式碼的負載測試外掛程式。 如果這段程式碼是在遠端電腦的測試代理程式上執行,而且測試代理程式沒有 localhost SMTP 服務,負載測試就會維持在「進行中」的狀態,因為系統將會開啟訊息方塊。
注意事項 |
---|
下列程式碼會要求您加入 System.Windows.Forms 的參考。 |
using System;
using Microsoft.VisualStudio.TestTools.LoadTesting;
using System.Net.Mail;
using System.Windows.Forms;
namespace LoadTestPluginTest
{
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 = myLoadTest..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.", "LoadTestPlugin", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
}
}
}
}
有八個事件與負載測試相關聯,而且負載測試外掛程式可以處理這些事件,以便搭配負載測試執行自訂程式碼。 下面是一份事件清單,這些事件可讓您存取負載測試回合的不同期間: