Поделиться через


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, если для счетчика производительности, заданного в свойствах Category и Counter, более низкое значение указывает на более высокую степень использования ресурса.
Открытое свойство 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 Вызывает исключение InvalidLoadProfileException, если объект LoadProfile имеет недопустимые или несогласованные свойства.При этом также отображается соответствующее сообщение. (Переопределяет LoadTestLoadProfile.Validate().)

В начало страницы

Примеры

В следующем примере подключаемый модуль нагрузочных тестов создает объект GoadBasedLoadProfile и назначает его объекту LoadTestScenario.Также он назначает значение DelayBetweenIterations объекту LoadTestScenario в методе Initialize().

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;
    }
}

В следующем примере подключаемый модуль нагрузочных тестов изменяет отдельные свойства GoalBasedLoadProfile в обработчике события HeartbeatEvent.Этот подход действует только в том случае, если в файле с расширением 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 (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

Microsoft.VisualStudio.TestTools.LoadTesting - пространство имен

Другие ресурсы

About Load Pattern

Практическое руководство. Создание подключаемого модуля нагрузочных тестов