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