共用方式為


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 命名空間

其他資源

About Load Pattern

HOW TO:建立負載測試外掛程式