LoadTestGoalBasedLoadProfile Class
Represents the load profile of a load test that has a goal-based load pattern.
Inheritance Hierarchy
System.Object
Microsoft.VisualStudio.TestTools.LoadTesting.LoadTestLoadProfile
Microsoft.VisualStudio.TestTools.LoadTesting.LoadTestGoalBasedLoadProfile
Namespace: Microsoft.VisualStudio.TestTools.LoadTesting
Assembly: Microsoft.VisualStudio.QualityTools.LoadTestFramework (in Microsoft.VisualStudio.QualityTools.LoadTestFramework.dll)
Syntax
'Declaration
<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
The LoadTestGoalBasedLoadProfile type exposes the following members.
Constructors
Name | Description | |
---|---|---|
LoadTestGoalBasedLoadProfile | Initializes a new instance of the LoadTestGoalBasedLoadProfile class. |
Top
Properties
Name | Description | |
---|---|---|
CategoryName | Gets or sets a performance counter category to monitor. | |
CounterName | Gets or sets the performance counter to monitor. | |
HigherValuesBetter | Set this Boolean value to true when the performance counter that is specified by the Category and Counter properties is a performance counter for which a lower value indicates a higher usage of a resource. | |
InitialUserCount | Gets or sets the initial user count. This is the number of virtual users to run at the start of the load test before the user load is adjusted, based on the specified goal. | |
InstanceName | Gets or sets the performance counter instance to monitor. | |
MachineName | Gets or sets the name of the computer to monitor. | |
MaxTargetValue | Gets or sets an upper limit to target. Load is increased or decreased to keep the counter below this value. | |
MaxUserCount | Gets or sets the maximum user count. The load cannot not exceed this value after the goal is met. (Overrides LoadTestLoadProfile.MaxUserCount.) | |
MaxUserCountDecrease | Gets or sets the maximum amount by which to reduce the user load. | |
MaxUserCountIncrease | Gets or sets the maximum amount by which to increase the user load. | |
MinTargetValue | Gets or sets the lower limit to target for the goal-based load pattern. | |
MinUserCount | Gets or sets the minimum user count. The load cannot go below this value even to satisfy the goal. (Overrides LoadTestLoadProfile.MinUserCount.) | |
ScenarioName | Gets or sets the name of the scenario in the load test that the load profile implementation is controlling. (Inherited from LoadTestLoadProfile.) | |
StopAdjustingAtGoal | true indicates that the test must stop adjusting user load. false indicates that the test must continue to adjust the user load throughout the test if that is required to keep the specified performance counter value in the target range. |
Top
Methods
Name | Description | |
---|---|---|
CheckIfProfileCanBeModified | Throws an exception if the profile property is not yet ready to be modified. (Inherited from LoadTestLoadProfile.) | |
Copy | Returns a copy of the current object so it can be modified and assigned to the LoadTestScenario.LoadProfile property. (Inherited from LoadTestLoadProfile.) | |
Equals | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetLoad | Returns the user load that should be used at the current time in the load test based on the value of elapsedSeconds since the start of the load test that is passed as an argument. (Overrides LoadTestLoadProfile.GetLoad(Int32).) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
RestoreUserCountAfterRestart | Restores the current (after restart) user count to the value it had before the restart. (Overrides LoadTestLoadProfile.RestoreUserCountAfterRestart(Int32).) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) | |
Validate | Throws an InvalidLoadProfileException if the LoadProfile object has properties that are inconsistent or not valid. It also displays an appropriate message. (Overrides LoadTestLoadProfile.Validate().) |
Top
Examples
In the following example, a Load Test Plug-in constructs a GoadBasedLoadProfile object and assigns it to the LoadTestScenario. It also assigns a value for DelayBetweenIterations to the LoadTestScenario in the Initialize() method.
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;
}
}
In the following example, a Load Test Plug-In modifies selected properties of a GoalBasedLoadProfile in the HeartbeatEvent handler. This approach works only if the load profile that is specified in the .loadtest file is a Goal-Based Load Pattern.
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;
}
}
}
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
See Also
Reference
Microsoft.VisualStudio.TestTools.LoadTesting Namespace