如何:建立 Web 效能測試外掛程式
Web 效能測試外掛程式可以讓您在 Web 效能測試的主要宣告式陳述式之外找出及重複使用程式碼。 自訂的 Web 效能測試外掛程式則能讓您在執行 Web 效能測試時呼叫某些程式碼。 在每個測試反覆項目中,Web 效能測試外掛程式都會執行一次。 此外,如果您覆寫測試外掛程式中的 PreRequest 或 PostRequest 方法,這些要求外掛程式將會分別在每項要求之前或之後執行。
您可以建立自訂的 Web 效能測試外掛程式,方法是從 WebTestPlugin 基底類別中衍生您自己的類別。
自訂的 Web 效能測試外掛程式可以搭配您所錄製的 Web 效能測試使用,使您能夠以最少量的程式碼,達成對 Web 測試的更高層級控制。 但是,自訂的 Web 效能測試外掛程式也可以與 Web 效能測試程式碼搭配使用。 如需詳細資訊,請參閱[已停用] 如何:建立 Web 效能測試程式碼。
注意事項 |
---|
您還可以建立負載測試外掛程式,如需詳細資訊,請參閱如何:建立負載測試外掛程式。 |
需求
- Visual Studio Ultimate
若要建立自訂的 Web 效能測試外掛程式
開啟包含 Web 效能測試的 Web 效能和負載測試專案。
如需如何建立 Web 效能和負載測試專案的詳細資訊,請參閱 如何:建立和設定自動化測試的測試專案。
在 [方案總管] 中,以滑鼠右鍵按一下方案、選取 [加入],然後選擇 [新增專案]。
[加入新的專案] 對話方塊隨即出現。
在 [已安裝的範本] 底下,選取 [Visual C#]。
在範本清單中,選取 [類別庫]。
在 [名稱] 文字方塊中,輸入類別的名稱。
選擇 [確定]。
新的類別庫專案會加入至 [方案總管],而且新的類別會出現在 [程式碼編輯器] 中。
在 [方案總管] 中,以滑鼠右鍵按一下新類別庫中的 [參考] 資料夾,然後選取 [加入參考]。
接著會顯示 [加入參考] 對話方塊。
選擇 [.NET] 索引標籤並向下捲動,然後選取 [Microsoft.VisualStudio.QualityTools.WebTestFramework]。
選擇 [確定]。
[Microsoft.VisualStudio.QualityTools.WebTestFramework] 的參考就會加入至 [方案總管] 中的 [參考] 資料夾。
在 [方案總管] 中,以滑鼠右鍵按一下 Web 效能和負載測試專案的頂端節點,此專案包含要加入 Web 效能測試外掛程式的負載測試,然後選取 [加入參考]。
[加入參考] 對話方塊隨即顯示。
選擇 [專案] 索引標籤並選取 [類別庫專案]。
選擇 [確定]。
在 [程式碼編輯器] 中,撰寫外掛程式的程式碼。 首先,建立衍生自 WebTestPlugin 的新公用類別。
在一或多個事件處理常式內實作程式碼。 如需範例實作,請參閱下列的<範例>一節。
程式碼撰寫完成之後,請建置新專案。
開啟 Web 效能測試。
若要加入 Web 效能測試外掛程式,請選擇工具列上的 [加入 Web 測試外掛程式]。
[加入 Web 測試外掛程式] 對話方塊隨即出現。
在 [選取外掛程式] 底下,選取您的 Web 效能測試外掛程式類別。
在 [所選外掛程式的屬性] 窗格中,設定外掛程式要在執行階段中使用的初始值。
注意事項 您可以從外掛程式公開任意數目的屬性,只要讓這些屬性成為公用、可設定且屬於基底型別 (例如整數、布林或字串) 的屬性即可。您之後也可以使用 [屬性] 視窗來變更 Web 效能測試外掛程式屬性。
選擇 [確定]。
此外掛程式就會加入至 [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),但是外掛程式仍然參考原始的外掛程式版本,就會導致此錯誤發生。若要更正此問題,請依照下列步驟執行:
-
在 Web 效能和負載測試專案中,您將會在參考中看見警告。移除並重新加入外掛程式 DLL 的參考。
-
從測試或適當的位置中移除外掛程式,然後再重新加入。
-
範例
下列程式碼會建立自訂的 Web 效能測試外掛程式,它會將項目加入至代表測試反覆項目的 WebTestContext 中。
執行 Web 效能測試之後,使用此外掛程式即可在 [Web 效能結果檢視器] 的 [內容] 索引標籤中看見已加入名為 [TestIteratnionNumber] 的項目。
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace SampleRules
{
[Description("This plugin can be used to set the ParseDependentsRequests property for each request")]
public class SampleWebTestPlugin : WebTestPlugin
{
private bool m_parseDependents = true;
public override void PreWebTest(object sender, PreWebTestEventArgs e)
{
// TODO: Add code to execute before the test.
}
public override void PostWebTest(object sender, PostWebTestEventArgs e)
{
// TODO: Add code to execute after the test.
}
public override void PreRequest(object sender, PreRequestEventArgs e)
{
// Code to execute before each request.
// Set the ParseDependentsRequests value on the request
e.Request.ParseDependentRequests = m_parseDependents;
}
// Properties for the plugin.
[DefaultValue(true)]
[Description("All requests will have their ParseDependentsRequests property set to this value")]
public bool ParseDependents
{
get
{
return m_parseDependents;
}
set
{
m_parseDependents = value;
}
}
}
}