LoadTestGoalBasedLoadProfile 類別
代表擁有以目標為依據負載模式之負載測試的載入設定檔。
繼承階層架構
System.Object
Microsoft.VisualStudio.TestTools.LoadTesting.LoadTestLoadProfile
Microsoft.VisualStudio.TestTools.LoadTesting.LoadTestGoalBasedLoadProfile
命名空間: Microsoft.VisualStudio.TestTools.LoadTesting
組件: Microsoft.VisualStudio.QualityTools.LoadTestFramework (在 Microsoft.VisualStudio.QualityTools.LoadTestFramework.dll 中)
語法
'宣告
<SerializableAttribute> _
Public Class LoadTestGoalBasedLoadProfile _
Inherits LoadTestLoadProfile
[SerializableAttribute]
public class LoadTestGoalBasedLoadProfile : LoadTestLoadProfile
[SerializableAttribute]
public ref class LoadTestGoalBasedLoadProfile : public LoadTestLoadProfile
[<SerializableAttribute>]
type LoadTestGoalBasedLoadProfile =
class
inherit LoadTestLoadProfile
end
public class LoadTestGoalBasedLoadProfile extends LoadTestLoadProfile
LoadTestGoalBasedLoadProfile 型別會公開下列成員。
建構函式
名稱 | 說明 | |
---|---|---|
LoadTestGoalBasedLoadProfile | 初始化 LoadTestGoalBasedLoadProfile 類別的新執行個體。 |
回頁首
屬性
名稱 | 說明 | |
---|---|---|
CategoryName | 取得或設定要監視的效能計數器分類。 | |
CounterName | 取得或設定要監視的效能計數器。 | |
HigherValuesBetter | 當 [分類] 和 [計數器] 屬性所指定的效能計數器是以較低的值表示較高的資源使用情況時,請將這個布林值設定為 true。 | |
InitialUserCount | 取得或設定初始使用者計數。這是負載測試開始時,根據指定的目標調整使用者負載之前,使用的虛擬使用者數目。 | |
InstanceName | 取得或設定要監視的效能計數器執行個體。 | |
MachineName | 取得或設定要監視的電腦名稱。 | |
MaxTargetValue | 取得或設定目標上限。負載會增加或減少,使計數器保持在這個值以下。 | |
MaxUserCount | 取得或設定最大使用者計數。到達目標之後,負載便不能超過這個值。 (覆寫 LoadTestLoadProfile.MaxUserCount。) | |
MaxUserCountDecrease | 取得或設定允許減少的最大使用者負載量。 | |
MaxUserCountIncrease | 取得或設定允許增加的最大使用者負載量。 | |
MinTargetValue | 取得或設定以目標為依據負載模式的目標下限。 | |
MinUserCount | 取得或設定最小使用者計數。即使為了符合目標,負載也不能低於這個值。 (覆寫 LoadTestLoadProfile.MinUserCount。) | |
ScenarioName | 取得或設定負載測試中載入設定檔實作所控制的情節名稱。 (繼承自 LoadTestLoadProfile)。 | |
StopAdjustingAtGoal | true 表示測試必須停止調整使用者負載。false 表示視需要在測試過程中持續調整使用者負載,使指定的效能計數器值保持在目標範圍內。 |
回頁首
方法
名稱 | 說明 | |
---|---|---|
CheckIfProfileCanBeModified | 如果設定檔屬性還沒有準備好,因而無法修改,則擲回例外狀況。 (繼承自 LoadTestLoadProfile)。 | |
Copy | 傳回目前物件的副本,以便可以修改並指派至LoadTestScenario.LoadProfile屬性。 (繼承自 LoadTestLoadProfile)。 | |
Equals | 判斷指定的 Object 和目前的 Object 是否相等。 (繼承自 Object)。 | |
Finalize | 允許物件在記憶體回收進行回收之前,嘗試釋放資源並執行其他清除作業。 (繼承自 Object)。 | |
GetHashCode | 做為特定型別的雜湊函式。 (繼承自 Object)。 | |
GetLoad | 根據自從負載測試開始以來的 elapsedSeconds 值 (當做引數傳遞),傳回負載測試中目前應該使用的使用者負載。 (覆寫 LoadTestLoadProfile.GetLoad(Int32)。) | |
GetType | 取得目前執行個體的 Type。 (繼承自 Object)。 | |
MemberwiseClone | 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。 | |
RestoreUserCountAfterRestart | 將目前 (重新啟動後) 的使用者計數還原為重新啟動前的值。 (覆寫 LoadTestLoadProfile.RestoreUserCountAfterRestart(Int32)。) | |
ToString | 傳回表示目前物件的字串。 (繼承自 Object)。 | |
Validate | 如果 LoadProfile 物件有不一致或無效的屬性,則擲回 InvalidLoadProfileException。此外,也會顯示適當的訊息。 (覆寫 LoadTestLoadProfile.Validate()。) |
回頁首
範例
在下列範例中,負載測試外掛程式會建構 GoadBasedLoadProfile 物件,並將它指派給 LoadTestScenario。 此外,也會在 Initialize() 方法中將 DelayBetweenIterations 的值指派給 LoadTestScenario。
using Microsoft.VisualStudio.TestTools.LoadTesting;
public class LoadTestPluginInitChangeProfile : ILoadTestPlugin
{
public void Initialize(LoadTest loadTest)
{
LoadTestGoalBasedLoadProfile goalLoadProfile = new LoadTestGoalBasedLoadProfile();
goalLoadProfile.MachineName = Environment.MachineName;
goalLoadProfile.CategoryName = "Processor";
goalLoadProfile.CounterName = "% Processor Time";
goalLoadProfile.InstanceName = "_Total";
goalLoadProfile.InitialUserCount = 5;
goalLoadProfile.MinUserCount = 1;
goalLoadProfile.MaxUserCount = 100;
goalLoadProfile.MaxUserCountIncrease = 10;
goalLoadProfile.MaxUserCountDecrease = 5;
goalLoadProfile.MinTargetValue = 20;
goalLoadProfile.MaxTargetValue = 25;
// This example assumes that there is only one scenario
loadTest.Scenarios[0].LoadProfile = goalLoadProfile;
loadTest.Scenarios[0].DelayBetweenIterations = 5;
}
}
在下列範例中,負載測試外掛程式會在 HeartbeatEvent 處理常式中修改 GoalBasedLoadProfile 的選定屬性。 只有在 .loadtest 檔案中指定的載入設定檔是「以目標為依據負載模式」,這個做法才會有效。
using Microsoft.VisualStudio.TestTools.LoadTesting;
public class LoadTestPluginChangeGoal : ILoadTestPlugin
{
private LoadTest m_loadTest;
private LoadTestScenario m_scenario1;
private bool m_goalChanged;
public void Initialize(LoadTest loadTest)
{
m_loadTest = loadTest;
// This example assume there is only one scenario
m_scenario1 = loadTest.Scenarios[0];
m_loadTest.Heartbeat += new EventHandler<HeartbeatEventArgs>(m_loadTest_Heartbeat);
}
void m_loadTest_Heartbeat(object sender, HeartbeatEventArgs e)
{
if (e.ElapsedSeconds >= 60 && !m_goalChanged)
{
LoadTestGoalBasedLoadProfile goalLoadProfile =
m_scenario1.LoadProfile.Copy()
as LoadTestGoalBasedLoadProfile;
goalLoadProfile.MinTargetValue = 50;
goalLoadProfile.MaxTargetValue = 60;
m_scenario1.LoadProfile = goalLoadProfile;
m_goalChanged = true;
}
}
}
執行緒安全
這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。
請參閱
參考
Microsoft.VisualStudio.TestTools.LoadTesting 命名空間