运行负载测试
在创建、编辑和设置满足负载测试的测试需要的配置选项之后,Visual Studio 旗舰版将提供几个用于运行负载测试的选项。
提示
运行负载测试之前,最好确保负载测试中的所有 Web 性能测试和单元测试都可以通过自身的单独测试。您可以验证通过运行其测试从Web性能测试编辑器。对于绑定了数据的 Web 性能测试,请运行所有数据值。
对运行负载测试的注意事项
运行负载测试之前,应确认已对负载测试进行了正确配置,以符合测试要求和目的。
选择适当的负载模式。 |
为负载测试的每种方案选择一个适合测试目标的负载模式:
|
选择负载测试结果存储区的位置。 |
负载测试结果存储区注意事项 |
正确设置性能计数器采样间隔。 |
性能计数器采样间隔注意事项 |
考虑包括计时详细信息以收集百分比数据 |
包括计时详细信息以收集百分比数据的注意事项 |
考虑启用 SQL 跟踪 |
考虑启用 SQL 跟踪 |
确定是否需要其他测试代理。 |
不要使测试代理过载 |
有关更多信息,请参见Considerations for Load Tests。
关系图模式
在负载测试运行时,在默认情况下,负载测试分析器在关系图视图中。 关系图可以以两个不同模式之一显示:
折叠模式 折叠模式是运行负载测试期间负载测试分析器中的默认关系图模式。 折叠关系图用于在负载测试运行时减少内存中必须保持的数据量,同时仍显示性能计数器在整个运行持续时间内的趋势。
滚动模式 在负载测试运行期间查看负载测试的结果时,可使用滚动关系图模式。 滚动关系图是可选视图,用于显示最新数据点。 使用滚动关系图只能查看测试中最新的 100 个数据间隔。
备注
只有在查看数据库中已完成的负载测试结果时,才可使用缩放关系图模式。
更改关系图模式
若要在负载测试运行期间在折叠和滚动模式之间切换,可使用负载测试分析器工具栏上的**“关系图选项”下拉列表。 针对折叠模式选择“用关系图表示整个运行的数据”,或针对滚动模式选择“仅用关系图表示最新的数据”**。
任务
任务 |
关联主题 |
---|---|
配置负载测试运行设置:运行设置是能影响负载测试运行方式的一组属性。 在“属性”窗口中,运行设置按类别进行组织。 |
|
运行负载测试:可使用不同用户界面选项或从命令行运行负载测试。 |
|
远程运行负载测试:可使用测试代理和测试控制器在一个或多个远程计算机上运行负载测试。 |
|
在测试运行期间以图形方式查看测试结果:运行某个负载测试时,测试一完成,该测试的结果就会以数据的形式显示在多个不同窗格中。 |
|
运行期间向负载测试添加注释:如果要在负载测试运行时或完成时对负载测试进行分析,可以添加描述性注释或任意长度的分析注释,与负载测试结果一起永久存储。 |
|
在计算机之间分布负载和 Web 性能测试:可以使用一组计算机生成模拟测试负载,还可以同时在多台计算机上远程运行测试。 |
|
解决负载测试中的网络仿真问题:您可以验证负载测试中的网络仿真是否正常工作。 |
|
使用 Team Build 运行负载测试:您可以将负载测试添加到可配置为在生成完成后运行的测试类别中。 |
负载模式注意事项
为负载测试的每种方案选择适合测试目标的以下负载模式之一:
有关更多信息,请参见编辑负载模式以便为虚拟用户活动建模。
使用常量负载模式
常量负载模式用于在负载测试运行期间运行相同的用户负载。 请慎用用户计数较高的常量负载模式;这种情况下,在负载测试开始时,可能会对服务器施加不合理和不现实的要求。 例如,如果负载测试包含一个 Web 测试,而该测试以对某个主页的请求开始,您将负载测试设置为 1000 个用户的常量负载,则该负载测试将尽可能快地把前 1000 个请求提交到该主页。 这不是对实际网站访问的现实模拟。 若要缓解这一问题,请考虑使用逐步增加至 1000 个用户的分级负载模式,或在负载测试运行设置中指定预热期。 如果指定了预热期,负载测试将在预热期内逐渐增加负载。 有关更多信息,请参见配置方案启动延迟。
使用分级负载模式
分级负载模式可用于在负载测试运行时增加服务器上的负载,这样您就能够看到性能如何随着用户负载的增加而发生变化。 例如,若要查看用户负载增加到 2000 个用户时服务器的性能如何,您可以使用具有以下属性的分级负载模式来运行一个 10 小时的负载测试:
初始用户计数:100
最大用户计数:2000
单步持续时间(秒):1800
单步负载增加时间(秒):20
单步用户计数:100
这些设置可使负载测试在 100、200、300 直至 2000 个用户的用户负载下运行 30 分钟(1800 秒)。 请特别注意**“单步负载增加时间”**属性,因为在这些属性中,它是新建负载测试向导中唯一没有提供的属性。 通过该属性,可从某一级逐渐增加到下一级(例如,从 100 个用户增加到 200 个用户)而不是立即增加。 在此示例中,用户负载将在 20 秒内从 100 个用户增加到 200 个用户,即每秒增加 5 个用户。 有关更多信息,请参见如何:为分级负载模式指定单步负载增加时间属性。
使用基于目标的负载模式
如果需要确定在达到一定程度的资源使用状况之前系统可以支持的用户数,基于目标的负载模式十分有用。 如果已经确定了系统中的限制性资源(即瓶颈),此选项效果最佳。 例如,如果您知道系统中的限制性资源是数据库服务器上的 CPU,并且您希望了解该数据库服务器 CPU 的占用率大约为 75% 时可以支持的用户数,则可以使用基于目标的负载模式,目标是将性能计数器“%Processor Time”的值保持在 70% 和 80% 之间。
警告
如果某些其他资源限制了系统的吞吐量,则可能永远不会达到由基于目标的负载模式指定的目标,并且用户负载将继续增加,直到达到为“最大用户计数”指定的值。
这通常不是所需要的负载。 因此,请谨慎选择基于目标的负载模式中的性能计数器,并且还要明智决定“最大用户计数”的值,对用户负载设置上限。
负载测试结果存储区注意事项
安装 Visual Studio 旗舰版时,会设置负载测试结果存储区以使用安装在计算机上的 SQL Express 的实例。SQL Express 限制为使用最大 4 GB 磁盘空间。 如果要在较长时间内运行许多负载测试,则应该考虑配置负载测试结果存储区以使用完整 SQL Server 产品的实例(如果可用)。 有关更多信息,请参见管理负载测试结果储存库中的负载测试结果。
性能计数器采样间隔注意事项
基于负载测试的长度,在负载测试运行设置中为**“采样速率”**属性选择一个值。 采样速率越小(如 5 秒默认值),负载测试结果数据库需要的空间越大。 对于更长的负载测试,增加采样速率会减少收集的数据量。 有关更多信息,请参见如何:为负载测试运行设置指定采样率。
下面是有关采样速率的一些准则:
负载测试持续时间 |
建议的采样速率 |
---|---|
< 1 小时 |
5 秒 |
1 - 8 小时 |
15 秒 |
8 - 24 小时 |
30 秒 |
> 24 小时 |
60 秒 |
对包括计时详细信息以收集百分比数据的注意事项
负载测试编辑器的运行设置中有一个名为**“计时详细信息存储”的属性。 如果启用了“计时详细信息存储”**属性,则在负载测试过程中执行各个测试、事务和页所需的时间都将存储在负载测试结果储存库中。 这样可将 90% 和 95% 的数据显示在负载测试分析器的“测试”、“事务”和“页”表中。
可通过两种方法来启用运行设置属性中的**“计时详细信息存储”属性:“StatisticsOnly”和“AllIndividualDetails”。 无论采用哪个选项,所有单个测试、页和事务均会计时,且根据单个计时数据来计算百分比数据。 它们的区别是,使用“StatisticsOnly”选项时,在计算完百分比数据之后,将立即从储存库中删除单个计时数据。 删除数据可以减少使用计时详细信息时储存库中所需的空间量。 但是,高级用户可能需要使用 SQL 工具以其他方式来处理计时详细信息数据。 如果是这样,则应使用“AllIndividualDetails”选项,以便计时详细信息数据可用于该处理。 此外,如果将属性设置为“AllIndividualDetails”**,则您可以在负载测试运行结束后,使用负载测试分析器中的虚拟用户活动图来分析虚拟用户活动。 有关更多信息,请参见在负载测试分析器的详细信息视图中分析负载测试虚拟用户活动。
备注
在Visual Studio的版本在Visual Studio 2010之前的,包括 Microsoft Visual Studio 2005 和 Visual Studio 2008,设置为 *** 计时详细信息存储 *** 属性的 *** 任何单个详细信息 *** 可用。在Visual Studio 2010和 Visual Studio 2012,有两个重要差别:首先,*** 任何单个详细信息 *** 设置以前不是默认设置。其次,“所有的详细信息”设置以前是在收集数据之后配置的,访问此信息的唯一方法是使用 SQL 查询。
负载测试结果储存库中存储计时详细信息数据所需的空间可能会非常大,尤其是对于运行时间较长的负载测试。 另外,在负载测试结束时将此数据存储到负载测试结果储存库中所需的时间也较长,因为在负载测试完成执行之前此数据一直存储在负载测试代理上。 负载测试完成时,数据将存储到储存库中。 默认情况下,将启用**“计时详细信息存储”属性。 如果这对您的测试环境来说成为问题,则您可能需要将“计时详细信息存储”设置为“无”**。
有关更多信息,请参见如何:为负载测试运行设置指定计时详细信息存储属性。
考虑启用 SQL 跟踪
为了诊断 SQL 性能问题,负载测试编辑器的运行设置中提供了一组属性,通过这些属性,可在负载测试持续期间启用 Microsoft SQL Server 的 SQL 跟踪功能。 如果启用了 SQL 跟踪功能,则可在负载测试分析器中的 SQL 跟踪表中显示 SQL 跟踪数据,该表在表视图中。
SQL 跟踪在运行负载测试时启动单独的 SQL 事件探查器会话,是一种相当易用的替代方法。 若要启用此功能,运行负载测试的用户必须拥有执行 SQL 跟踪所需的 SQL 权限,并且必须指定用于写入跟踪文件的目录。 该目录通常是共享目录。 完成负载测试时,跟踪文件数据将导入到负载测试储存库中,并与所运行的负载测试关联,以便稍后可以随时使用负载测试分析器进行查看。
有关更多信息,请参见收集 SQL 跟踪数据,以监视和提高负载测试中的性能。
不要使测试代理过载
如果测试代理计算机的 CPU 使用率超过 75% 或可用物理内存不到 10%,请向负载测试添加更多代理以确保代理计算机不会成为负载测试的瓶颈。
有关更多信息,请参见如何:指定要在负载测试方案中使用的测试代理和使用测试控制器和测试代理在多台测试计算机之间分发负载测试运行。
相关任务
提供创建并编辑负载测试和 Web 性能测试所需的说明。
提供有关如何在负载测试中运行 Web 性能测试的信息。
外部资源
指南
测试使用Visual Studio进行附带的2012版–第6章:一个测试的工具箱