LoadTestGoalBasedLoadProfile 类

表示具有基于目标负载模式的负载测试的负载配置文件。

继承层次结构

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。)
受保护的方法 Finalize 在垃圾回收将某一对象回收前允许该对象尝试释放资源并执行其他清理操作。 (继承自 Object。)
公共方法 GetHashCode 作为默认哈希函数。 (继承自 Object。)
公共方法 GetLoad 基于自作为参数传递的负载测试开始以来的 elapsedSeconds 值,返回应该在负载测试的当前时间使用的用户负载。 (重写 LoadTestLoadProfile.GetLoad(Int32)。)
公共方法 GetType 获取当前实例的 Type。 (继承自 Object。)
受保护的方法 MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 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;
        }
    }
}

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

请参阅

参考

Microsoft.VisualStudio.TestTools.LoadTesting 命名空间

其他资源

About Load Pattern

如何:创建负载测试插件