编辑负载模式以便为虚拟用户活动建模
负载模式属性指定如何在负载测试过程中调整模拟的用户负载。 Visual Studio 旗舰版提供了三个内置负载模式:常量负载模式、分级负载模式和基于目标的负载模式。 根据负载测试目标,选择负载模式并将属性调整为适当的级别。
负载模式是方案的组件。 方案加上定义的负载模式便构成了负载测试。
提示
在所有负载模式中,Team Test 生成的负载是由虚拟用户生成的模拟负载。
负载模式
常量
常量负载模式用于指定在负载测试期间不发生变化的用户负载。 例如,对 Web 应用程序运行冒烟测试时,可能要设置一个较小的、10 个用户的常量负载。
常量负载模式注意事项
常量负载模式用于在负载测试运行期间运行相同的用户负载。 请慎用用户计数较高的常量负载模式;这种情况下,在负载测试开始时,可能会对服务器施加不合理和不现实的要求。 例如,如果负载测试包含一个 Web 测试,而该测试以对某个主页的请求开始,您将负载测试设置为 1000 个用户的常量负载,则该负载测试将尽可能快地把前 1000 个请求提交到该主页。 这不是对实际网站访问的现实模拟。 若要缓解这一问题,请考虑使用逐步增加至 1,000 个用户的分级负载模式,或在负载测试运行设置中指定预热期。 如果指定了预热期,负载测试将在预热期内自动逐渐增加负载。 有关更多信息,请参见配置方案启动延迟。
步骤
分级负载模式用于指定随时间不断增加到定义的最大用户负载的用户负载。 对于分级负载,指定**“初始用户计数”、“最大用户计数”、“单步持续时间(秒)”和“单步用户计数”**。
例如,**“初始用户计数”为 1、“最大用户计数”为 100、“单步持续时间(秒)”为 10 且“单步用户计数”**为 1 的分级负载将创建一个从 1 个用户开始的用户负载模式,该模式每隔 10 秒增加 1 个用户,直到达到 100 个用户为止。
提示
如果总的测试持续时间比逐步增加到最大用户负载所需的时间短,则经过测试持续时间后,测试将停止,并且不会达到“最大用户计数”目标。
可以使用单步目标来增加负载,直到服务器性能严重降低为止。 随着负载的增加,服务器最终将耗尽所有资源。 分级负载是确定发生上述情况时的用户数的好方法。 使用分级负载时,还必须密切监视代理资源,以确保代理能够生成所需的负载。
通常,应运行具有不同的单步持续时间和单步用户计数的几个运行,这样在给定的负载下可以准确地衡量。 添加用户时,负载通常会显示每个单步的初始峰值。 将负载保持在该水平可以在系统从初始峰值恢复后衡量系统性能。
分级负载模式注意事项
分级负载模式可用于在负载测试运行时增加服务器上的负载,这样您就能够看到性能如何随着用户负载的增加而发生变化。 例如,若要查看用户负载增加到 2000 个用户时服务器的性能如何,您可以使用具有以下属性的分级负载模式来运行一个 10 小时的负载测试:
初始用户计数:100
最大用户计数:2,000
单步持续时间(秒):1,800
单步负载增加时间(秒):20
单步用户计数:100
这些设置可使负载测试在 100、200、300 直至 2,000 个用户的用户负载下运行 30 分钟(1,800 秒)。 请特别注意**“单步负载增加时间”**属性,因为在这些属性中,它是新建负载测试向导中唯一不可选的属性。 通过此属性,可从某一步逐渐(而不是一下)增加到下一步(例如,从 100 个用户增加到 200 个用户)。 在此示例中,用户负载将在 20 秒内从 100 个用户增加到 200 用户,即每秒增加 5 个用户。 有关更多信息,请参见如何:为分级负载模式指定单步负载增加时间属性。
基于目标的负载模式
基于目标的负载模式与单步模式相似,但它基于相对于定期用户负载调整的性能计数器阈值来调整用户负载。 基于目标的负载可用于多种不同的用途:
最大化代理的输出:衡量代理上的关键限制指标,以使代理的输出最大化。 通常是 CPU,但也可以是内存。
在目标服务器上达到某个目标资源级别(通常是 CPU),然后衡量该级别的吞吐量。 这样,在服务器上的资源使用级别一致时,就可以进行吞吐量的运行间比较。
达到服务器上的目标吞吐量级别。
下表中,示例演示具有以下属性设置的基于目标的模式:
属性组 |
Property |
值 |
---|---|---|
性能计数器 |
类别 |
处理器 |
性能计数器 |
计算机 |
ContosoServer1 |
性能计数器 |
计数器 |
% Processor Time |
性能计数器 |
实例 |
_Total |
性能计数器的目标范围 |
高端 |
90 |
性能计数器的目标范围 |
低端 |
70 |
用户计数限制 |
初始用户计数 |
1 |
用户计数限制 |
最大用户计数 |
100 |
用户计数限制 |
最大用户计数减量 |
5 |
用户计数限制 |
最大用户计数增量 |
5 |
用户计数限制 |
最小用户计数 |
1 |
这些设置会导致**“负载测试分析器”在测试运行期间在 1 和 100 之间调整用户负载,以使 WebServer01 的 % Processor Time“计数器”**保持在 70% 到 90% 之间。
每个用户负载调整的大小由**“最大用户计数增量”和“最大用户计数减量”设置决定。 用户计数限制由“最大用户计数”和“最小用户计数”**属性设置。
基于目标的负载模式注意事项
如果需要确定在达到一定程度的资源使用状况之前系统可以支持的用户数,基于目标的负载模式十分有用。 如果已经确定了系统中的限制性资源(即瓶颈),此选项效果最佳。
例如,假定您知道系统中的限制性资源是数据库服务器上的 CPU,并且您希望了解该数据库服务器 CPU 的占用率大约为 75% 时可以支持的用户数, 则可以使用基于目标的负载模式,目标是将性能计数器“%Processor Time”的值保持在 70% 和 80% 之间。
需要注意的一点是,某些其他资源是否限制了系统的吞吐量。 此类资源会导致永远不会达到由基于目标的负载模式指定的目标。 此外,用户负载将继续增加,直到达到为**“最大用户计数”**指定的值。 这通常不是所需要的负载,因此,请谨慎选择基于目标的负载模式中的性能计数器。
虚拟用户的限制和授权
Visual Studio 旗舰版允许您对本地负载测试运行使用多达 250 个虚拟用户。 如果负载测试需要更多虚拟用户,或者您希望使用远程计算机,则必须购买 Visual Studio Load Test Virtual User Pack 2010。 可以在购买 Visual Studio 旗舰版的地方购买 Visual Studio Load Test Virtual User Pack 2010。 有关更多信息,请参见使用测试控制器管理负载测试的虚拟用户许可证和为负载测试配置测试控制器和测试代理。
任务
任务 |
相关主题 |
---|---|
为负载测试指定初始负载模式:使用新建负载测试向导创建负载测试时,要选择一种负载模式。 |
|
为负载测试编辑负载模式:创建负载测试后,可以在负载测试编辑器中编辑负载模式。 |
|
指定负载测试方案中的虚拟用户是否应包含 Web 缓存数据:可以更改“新用户的百分比”属性以影响负载测试模拟由虚拟用户的 Web 浏览器执行的 Web 缓存的方式。 |
|
指定分级负载模式的单步负载增加时间:通过“单步负载增加时间”属性,可从某一步逐渐(而不是一下)增加到下一步(例如,从 100 个用户增加到 200 个用户)。 |