如何:为分布式负载测试创建测试设置
本主题适用于:
Visual Studio 旗舰版 |
Visual Studio 高级专业版 |
Visual Studio 专业版 |
Visual Studio 学习版 |
---|---|---|---|
可以将负载测试的测试设置配置为允许使用测试代理和测试控制器跨多台计算机分发负载测试。 还可以将测试设置配置为使用诊断数据适配器,这些适配器指定从 Visual Studio 2010 旗舰版中运行负载测试时要收集的各种数据类型或者对测试计算机有何影响。 例如,可以使用 ASP.NET 探查器诊断数据适配器来收集代码的性能明细。 此外,诊断数据适配器可用于在测试计算机上模拟潜在瓶颈或减少可用系统内存。
Visual Studio 的测试设置存储在文件中。 它们定义以下内容:
受测应用程序所需的角色集。
运行测试所使用的角色。
用于每个角色的诊断数据适配器。
运行测试时,您根据对该特定测试运行的要求,选择要用作活动测试设置的测试设置。 测试设置文件存储为解决方案的一部分。 该文件的扩展名为 .testsettings。
向解决方案添加测试项目时,将创建两个默认的测试设置。 它们将自动添加到解决方案中的**“解决方案项”**文件夹下。 如果运行测试时这些测试设置中的任何一个都能够满足您的需要,则可以通过选择想要激活的测试设置来使用它们:
Local.testsettings:这将在未选择诊断数据适配器的情况下以本地方式运行测试。 这是 Visual Studio 中的默认测试设置。
Traceandtestimpact.testsettings:这将以本地方式运行测试,并将以下诊断数据适配器配置为从所有模块和进程中收集数据:
IntelliTrace
测试影响
系统信息
测试控制器将拥有可用于测试设置中的每个角色的代理。 有关测试控制器和测试代理的更多信息,请参见设置测试计算机以运行测试或收集数据和管理测试控制器和测试代理。
使用以下过程可在解决方案中为计划从 Visual Studio 2010 旗舰版中运行的负载测试创建和移除测试设置。
为分发的负载测试创建测试设置
为分发的负载测试添加测试设置
在解决方案资源管理器中右击**“解决方案项”,指向“添加”,再单击“新建项”**。
将显示**“添加新项”**对话框。
在**“已安装的模板”窗格中,单击“测试设置”**。
(可选)在**“名称”**框中更改测试设置文件的名称。
单击**“添加”**。
在解决方案资源管理器中的**“解决方案项”**文件夹下将出现新的测试设置文件。
提示
Visual Studio 2010 旗舰版 所显示的测试设置的列表派生自“解决方案项”文件夹中的测试设置文件的列表。 例如,在使用“测试”菜单上的“选择当前测试设置”选项时,将显示“解决方案项”文件夹中的测试设置文件。 这表明,如果将测试设置文件移动到解决方案层次结构中的其他位置,那么该文件不能再用作 Visual Studio 2010 旗舰版集成开发环境中的测试设置。
此时将显示**“测试设置”**对话框。 **“常规”**页处于选定状态。
您现在可以编辑并保存测试设置值。
提示
将列出创建的每个测试设置,作为“测试”菜单上“选择当前测试设置”和“编辑测试设置”选项的选择。
在**“名称”**下键入测试设置的名称。
(可选)在**“说明”**下,键入测试设置的说明,以便其他团队成员了解其用途。
(可选)若要选择测试运行的默认命名方案,请选择**“默认命名方案”。 若要定义自己的命名方案,请选择“用户定义的方案”,然后在“前缀文本”中键入所需的文本。 若要将日期和时间戳追加到测试运行名称,请选择“追加日期时间戳”**。
单击**“角色”**。
此时将显示**“角色”**页。
若要远程运行测试,或者远程运行测试并远程收集数据,请使用**“测试执行方法”下拉列表并选择“远程执行”**。
使用**“控制器”下拉列表从“控制器”**中为测试代理选择将用于运行测试或收集数据的测试控制器。
提示
如果这是首次添加控制器,则下拉列表中不会列出任何控制器。 列表由先前在其他测试设置中指定的控制器填充。 必须在框中键入控制器的名称(例如,TestControllerMachine1)。
有关更多信息,请参见为负载测试配置测试控制器和测试代理和将测试控制器和测试代理用于负载测试。
若要添加希望用于运行测试和收集数据的角色,请在**“角色”下单击“添加”**。
在**“名称”**列中键入角色的名称。 例如,角色可以是“Web 服务器”。
重复步骤 12 和 13,添加所需的所有角色。
每个角色都使用由测试控制器管理的测试代理。
选择希望运行测试的角色,然后单击**“设置为用于运行测试的角色”**。
重要事项 您创建和定义的其他角色不运行测试,仅用于根据在“数据和诊断”页中为角色指定的数据和诊断适配器收集数据。
若要限制可用于角色的代理,请选择角色,然后在**“所选角色的代理特性”下方的工具栏中单击“添加”**。
此时将显示**“代理选择规则”**对话框。
在**“特性名”中键入名称,在“特性值”中键入值,然后单击“确定”**。 根据需要添加多个特性。
例如,可以添加一个名为“RAM > 16GB”、值为“True”或“False”的特性,以对内存大于 16GB 的测试代理计算机进行筛选。 若要将同一特性应用于一个或多个测试代理,请使用“管理测试控制器”对话框。 有关更多信息,请参见管理测试控制器和测试代理。
单击**“数据和诊断”**。
此时将显示**“数据和诊断”**页。
在**“数据和诊断”页中,通过选择角色将用于收集数据的诊断数据适配器来定义角色所起的作用。 因此,如果对角色启用了一个或多个数据和诊断适配器,则测试控制器将基于为角色定义的特性选择一个可用的测试代理计算机来为指定的数据和诊断适配器收集数据。 若要选择要为每个角色收集的数据和诊断数据适配器,请选择角色。 根据测试要求为每个角色选择诊断数据适配器。 若要配置为每个角色选择的每个诊断数据适配器,请单击“配置”**。
角色和诊断数据适配器示例:
例如,可以创建一个名为“桌面客户端”、“使用 SQL”特性设置为“True”的客户端角色,以及一个名为“SQL Server”、特性设置为“RAM > 16GB”的服务器角色。 如果通过在**“角色”页中单击“设置为运行测试的角色”**指定“桌面客户端”将运行测试,则测试控制器将选择具有“使用 SQL”特性设置为“True”的测试代理的计算机来运行测试。 测试控制器还将选择具有包含“RAM > 16GB”特性的测试代理的 SQL Server 计算机(仅用于收集角色中包含的数据和诊断适配器定义的数据)。 如果也为“桌面客户端”角色选择了数据和诊断适配器,则“桌面客户端”测试代理还可以为它在其上运行的计算机收集数据。
有关每个诊断数据适配器及其配置方法的详细信息,可查看下表中的关联主题。
有关诊断数据适配器的更多信息,请参见使用测试设置来设置计算机和收集诊断信息。
用于负载测试的诊断数据适配器
诊断数据适配器
在负载测试中使用
关联主题
用于 IntelliTrace 和测试影响的 ASP.NET 客户端代理:此代理允许您为 IntelliTrace 和测试影响诊断数据适配器收集有关从客户端到 Web 服务器的 http 调用的信息。
除非您具有收集测试代理计算机的系统信息的特定需要,否则不要包含此适配器。
警告我们建议不要在负载测试中使用 IntelliTrace 适配器,因为这样会因收集的数据量太大而导致问题。测试影响数据不是使用负载测试收集到的。
IntelliTrace:可以配置特定诊断跟踪信息,该信息存储在一个日志文件中。 该日志文件的扩展名为 .tdlog。 运行测试时如果某个测试步骤未通过,则可以创建一个 Bug。 包含诊断跟踪的日志文件会自动附加到此 Bug 中。 该日志文件中收集的数据可减少重现和诊断代码中的错误所需的时间,从而提高调试效率。 可以基于此日志文件在另一台计算机上重新创建本地会话。 这会降低无法重现 Bug 的风险。
有关更多信息,请参见使用 IntelliTrace 进行调试。
我们建议不要在负载测试中使用 IntelliTrace 适配器,因为这样会因收集和记录的数据量太大而导致问题。 应该仅在运行时间不长、使用的测试代理不多的负载测试中尝试使用 IntelliTrace 适配器。
ASP.NET 探查器:可以创建包含 ASP.NET 分析的测试设置,该分析收集 ASP.NET Web 应用程序的性能数据。
ASP.NET 探查器诊断数据适配器分析 Internet Information Server (IIS) 进程,因此它不针对开发 Web 服务器工作。 若要在负载测试中分析网站,必须在运行 IIS 的计算机上安装测试代理。 测试代理不生成负载,它是仅用于收集的代理。 有关更多信息,请参见安装和配置 Visual Studio 代理以及测试和生成控制器。
代码覆盖率:可以创建包含代码覆盖率信息的测试设置,该信息用于调查测试覆盖的代码范围。
尽管可以在负载测试中使用代码覆盖率适配器,但是它仅收集测试设置中指定的测试执行角色上的代码覆盖数据,不收集测试设置中指定的服务器角色上的代码覆盖数据。
事件日志:可以将测试设置配置为包含事件日志收集,该事件日志将包含在测试结果中。
网络仿真:可以使用测试设置指定您希望在测试中放置人工网络负载。 网络仿真将仿真特定网络连接(如拨号连接)的速度,从而影响计算机的往来通信。
注意网络仿真不能用于提高网络连接速度。负载测试会忽略网络仿真适配器。 实际上,负载测试使用在负载测试方案的网络组合中指定的设置。
有关更多信息,请参见在负载测试方案中指定虚拟网络类型。
系统信息:可以设置测试设置来包含有关在其上运行系统信息诊断和数据收集器的计算机的系统信息。 通过使用测试设置可在测试结果中指定系统信息。
您可以从负载代理和测试中的系统收集系统信息。
收集此信息不需要任何配置。
测试影响:可以收集在运行某个测试用例时应用程序代码使用了哪些方法的相关信息。 将它与开发人员进行的应用程序代码更改结合使用,可确定这些开发更改影响了哪些测试。
测试影响数据不是使用负载测试收集到的。
视频记录器:运行自动测试时可以创建桌面会话的视频记录。 这对查看编码的 UI 测试的用户操作非常有用。 该视频可帮助其他团队成员隔离难以重现的应用程序问题。
注意远程运行测试时,除非代理在交互式进程模式下运行,否则视频记录器不起作用。警告我们建议不要对负载测试使用视频记录器适配器。单击**“部署”**。
此时将显示**“部署”**页。
若要在每次运行测试时都为部署创建一个单独的目录,请选择**“启用部署”**。
提示
如果这样做,则在运行测试时可以继续生成应用程序。
若要将文件添加到用于运行测试的目录中,请单击**“添加文件”**,然后选择要添加的文件。
提示
运行负载测试时,插件程序集、数据文件和上载的文件将自动部署。
若要将目录添加到用于运行测试的目录中,请单击**“添加目录”**,然后选择要添加的目录。
提示
有关如何使用相关属性和 DeploymentItem 特性为各个测试部署文件和目录的更多信息,请参见如何:配置测试部署。
若要在测试前后运行脚本,请单击**“安装脚本和清理脚本”**。
此时将显示**“安装脚本和清理脚本”**页。
在**“安装脚本”中键入脚本文件的位置,或单击省略号 (...**) 以找到安装脚本。
在**“清理脚本”中键入脚本文件的位置,或单击省略号 (...**) 以找到清理脚本。
若要使用其他主机运行测试,请单击**“主机”**。
在**“主机类型”中,验证是否已选中“默认”**。
提示
“主机类型”中的“ASP.NET”在负载测试中不受支持。
使用“在 32 或 64 位进程中运行测试”下拉列表选择希望负载测试中的 Web 性能和单元测试作为 32 位还是 64 位进程运行。
提示
为了最大限度地提高灵活性,您应使用“任何 CPU”配置来编译测试项目。 然后,可以在 32 位和 64 位代理上运行。 使用“64 位”配置编译测试项目没有什么特别的用处。
(可选)若要限制每个测试运行和各个测试的时间,请单击**“测试超时”**。
若要在超过一定时间限制时中止测试运行,请选择**“在总执行时间超过以下值时中止测试运行”**,然后键入此时限的值。
若要在超过一定时限时使单个测试未通过,请选择**“在单个测试的执行用时超过以下值时,将其标记为未通过”**,然后键入此时限的值。
跳过**“单元测试”**。 负载测试不使用这些设置。
跳过**“Web 测试”**。 负载测试不使用这些设置。
若要保存测试设置,请单击**“另存为”。 在“对象名称”**中键入所需的文件的名称。
提示
如果必须更改测试设置,请单击“测试”,然后单击“编辑测试设置”并指向所创建的测试设置。 有关更多信息,请参见如何:编辑测试计划的现有测试设置。
从解决方案中移除测试设置
在解决方案资源管理器中的“解决方案项”文件夹下,右击要移除的测试设置,再单击**“移除”**。
该测试设置文件随即从解决方案中移除。 **“测试”菜单上的“选择活动测试设置”和“编辑测试设置”**选项的选择列表中将反映此更改。
请参见
任务
创建测试设置以从 Visual Studio 中运行自动测试