编辑负载模式以便为虚拟用户活动建模

负载模式属性指定如何在负载测试过程中调整模拟的用户负载。 Visual Studio 旗舰版提供了三个内置负载模式:常量负载模式、分级负载模式和基于目标的负载模式。 根据负载测试目标,选择负载模式并将属性调整为适当的级别。

负载模式是方案的组件。 方案加上定义的负载模式便构成了负载测试。

备注

在所有负载模式中,Team Test 生成的负载是由虚拟用户生成的模拟负载。

要求

  • Visual Studio 旗舰版

负载模式

Dd997551.collapse_all(zh-cn,VS.110).gif常量

常量负载模式用于指定在负载测试期间不发生变化的用户负载。 例如,对 Web 应用程序运行冒烟测试时,可能要设置一个较小的、10 个用户的常量负载。

Dd997551.collapse_all(zh-cn,VS.110).gif常量负载模式注意事项

常量负载模式用于在负载测试运行期间运行相同的用户负载。 请慎用用户计数较高的常量负载模式;这种情况下,在负载测试开始时,可能会对服务器施加不合理和不现实的要求。 例如,如果负载测试包含一个 Web 测试,而该测试以对某个主页的请求开始,您将负载测试设置为 1000 个用户的常量负载,则该负载测试将尽可能快地把前 1000 个请求提交到该主页。 这不是对实际网站访问的现实模拟。 若要缓解这一问题,请考虑使用逐步增加至 1,000 个用户的分级负载模式,或在负载测试运行设置中指定预热期。 如果指定了预热期,负载测试将在预热期内自动逐渐增加负载。 有关更多信息,请参见配置方案启动延迟

Dd997551.collapse_all(zh-cn,VS.110).gif步骤

分级负载模式用于指定随时间不断增加到定义的最大用户负载的用户负载。 对于分级负载,指定**“初始用户计数”“最大用户计数”“单步持续时间(秒)”“单步用户计数”**。

例如,**“初始用户计数”为 1、“最大用户计数”为 100、“单步持续时间(秒)”为 10 且“单步用户计数”**为 1 的分级负载将创建一个从 1 个用户开始的用户负载模式,该模式每隔 10 秒增加 1 个用户,直到达到 100 个用户为止。

备注

如果总的测试持续时间比逐步增加到最大用户负载所需的时间短,则经过测试持续时间后,测试将停止,并且不会达到“最大用户计数”目标。

可以使用单步目标来增加负载,直到服务器性能严重降低为止。 随着负载的增加,服务器最终将耗尽所有资源。 分级负载是确定发生上述情况时的用户数的好方法。 使用分级负载时,还必须密切监视代理资源,以确保代理能够生成所需的负载。

通常,应运行具有不同的单步持续时间和单步用户计数的几个运行,这样在给定的负载下可以准确地衡量。 添加用户时,负载通常会显示每个单步的初始峰值。 将负载保持在该水平可以在系统从初始峰值恢复后衡量系统性能。

Dd997551.collapse_all(zh-cn,VS.110).gif分级负载模式注意事项

分级负载模式可用于在负载测试运行时增加服务器上的负载,这样您就能够看到性能如何随着用户负载的增加而发生变化。 例如,若要查看用户负载增加到 2000 个用户时服务器的性能如何,您可以使用具有以下属性的分级负载模式来运行一个 10 小时的负载测试:

  • 初始用户计数:100

  • 最大用户计数:2,000

  • 单步持续时间(秒):1,800

  • 单步负载增加时间(秒):20

  • 单步用户计数:100

这些设置可使负载测试在 100、200、300 直至 2,000 个用户的用户负载下运行 30 分钟(1,800 秒)。 请特别注意**“单步负载增加时间”**属性,因为在这些属性中,它是新建负载测试向导中唯一不可选的属性。 通过此属性,可从某一步逐渐(而不是一下)增加到下一步(例如,从 100 个用户增加到 200 个用户)。 在此示例中,用户负载将在 20 秒内从 100 个用户增加到 200 用户,即每秒增加 5 个用户。 有关更多信息,请参见如何:为分级负载模式指定单步负载增加时间属性

Dd997551.collapse_all(zh-cn,VS.110).gif基于目标的负载模式

基于目标的负载模式与单步模式相似,但它基于相对于定期用户负载调整的性能计数器阈值来调整用户负载。 基于目标的负载可用于多种不同的用途:

  • 最大化代理的输出:衡量代理上的关键限制指标,以使代理的输出最大化。 通常是 CPU,但也可以是内存。

  • 在目标服务器上达到某个目标资源级别(通常是 CPU),然后衡量该级别的吞吐量。 这样,在服务器上的资源使用级别一致时,就可以进行吞吐量的运行间比较。

  • 达到服务器上的目标吞吐量级别。

下表中,示例演示具有以下属性设置的基于目标的模式:

属性组

属性

性能计数器

类别

处理器

性能计数器

计算机

ContosoServer1

性能计数器

计数器

% Processor Time

性能计数器

实例

_Total

性能计数器的目标范围

高端

90

性能计数器的目标范围

低端

70

用户计数限制

初始用户计数

1

用户计数限制

最大用户计数

100

用户计数限制

最大用户计数减量

5

用户计数限制

最大用户计数增量

5

用户计数限制

最小用户计数

1

这些设置会导致**“负载测试分析器”在测试运行期间在 1 和 100 之间调整用户负载,以使 WebServer01 的 % Processor Time“计数器”**保持在 70% 到 90% 之间。

每个用户负载调整的大小由**“最大用户计数增量”“最大用户计数减量”设置决定。 用户计数限制由“最大用户计数”“最小用户计数”**属性设置。

Dd997551.collapse_all(zh-cn,VS.110).gif基于目标的负载模式注意事项

如果需要确定在达到一定程度的资源使用状况之前系统可以支持的用户数,基于目标的负载模式十分有用。 如果已经确定了系统中的限制性资源(即瓶颈),此选项效果最佳。

例如,假定您知道系统中的限制性资源是数据库服务器上的 CPU,并且您希望了解该数据库服务器 CPU 的占用率大约为 75% 时可以支持的用户数, 则可以使用基于目标的负载模式,目标是将性能计数器“%Processor Time”的值保持在 70% 和 80% 之间。

需要注意的一点是,某些其他资源是否限制了系统的吞吐量。 此类资源会导致永远不会达到由基于目标的负载模式指定的目标。 此外,用户负载将继续增加,直到达到为**“最大用户计数”**指定的值。 这通常不是所需要的负载,因此,请谨慎选择基于目标的负载模式中的性能计数器。

任务

任务

关联主题

为负载测试指定初始负载模式:使用新建负载测试向导创建负载测试时,要选择一种负载模式。

为负载测试编辑负载模式:创建负载测试后,可以在负载测试编辑器中编辑负载模式。

指定负载测试方案中的虚拟用户是否应包含 Web 缓存数据:可以更改“新用户的百分比”属性以影响负载测试模拟由虚拟用户的 Web 浏览器执行的 Web 缓存的方式。

指定分级负载模式的单步负载增加时间:通过“单步负载增加时间”属性,可从某一步逐渐(而不是一下)增加到下一步(例如,从 100 个用户增加到 200 个用户)。

更改负载模式

在用**“新建负载测试向导”创建负载测试之后,可以使用“负载测试编辑器”**将与方案关联的负载模式属性更改为满足自己的测试目标的级别。

备注

有关负载测试方案属性及其说明的完整列表,请参见负载测试方案属性

负载模式指定在负载测试期间活动的虚拟用户的数目以及添加新用户的速率。 可以从三种可用模式中进行选择:分级模式、常数模式和基于目标的模式。 有关更多信息,请参见编辑负载模式以便为虚拟用户活动建模

备注

也可以使用负载测试插件通过编程方式更改负载属性。有关更多信息,请参见如何:创建负载测试插件

更改负载模式

  1. 打开一个负载测试。

  2. *** 负载测试编辑器 ***,在方案文件夹,展开要编辑负载模式并选择该方案的负载模式的方案。

    备注

    在负载测试的方案树中显示的“负载模式”节点所使用的文字反映了您在创建负载测试时选择的负载配置文件。此负载配置文件可以是“常数负载配置文件”“分级负载配置文件”

  3. 按**“F4”**显示“属性”窗口。

    **“负载模式”“参数”**类别将显示在“属性”窗口。

  4. (可选)更改**“负载模式”类别中的“模式”**属性。

    可供选择的**“模式”属性选项有:“分级”“常数”“基于目标的”**。 有关负载模式类型的更多信息,请参见编辑负载模式以便为虚拟用户活动建模

  5. (可选)在**“参数”**类别中更改值。

    备注

    可为“参数”设置的值将根据您已为“模式”属性选择的值而有所不同。

  6. 更改完这些属性后,选择。*** 文件 *** 菜单的 *** 保存 ***。 然后,就可以用新的负载模式运行负载测试了。

外部资源

Dd997551.collapse_all(zh-cn,VS.110).gif指南

测试使用Visual Studio进行附带的2012版–第6章:一个测试的工具箱

请参见

任务

如何:指定使用 Web 缓存数据的虚拟用户的百分比

如何:为分级负载模式指定单步负载增加时间属性

其他资源

创建和编辑负载测试

使用负载测试编辑器编辑负载测试方案

Step 2.1 - Choosing a Load Pattern in the New Load Test Wizard