为负载测试配置测试控制器和测试代理

本主题适用于:

Visual Studio 旗舰版

Visual Studio 高级专业版

Visual Studio 专业版 

Visual Studio 学习版

主题适用 主题不适用 主题不适用 主题不适用

Visual Studio 旗舰版可以使用一台计算机或一组计算机来生成用于测试的模拟负载,还可以同时在多台计算机上远程运行测试。 这组计算机包含一个单独的测试控制器以及一个或多个测试代理。您可使用测试控制器和测试代理来生成超出一台计算机可独自生成的负载,或者仅仅执行远程测试。

负载模拟结构

负载模拟体系结构由 Visual Studio 客户端、测试控制器和测试代理组成。

  • 客户端用于开发测试,运行测试以及查看测试结果。

  • 测试控制器用于管理测试代理并收集测试结果。

  • 测试代理用于运行测试以及收集包含系统信息的数据和测试设置中定义的 ASP.NET 分析数据。

此体系结构提供了下列优点:

  • 通过向测试控制器添加其他测试代理,能够增加负载生成。

  • 在同一台计算机或不同的计算机上灵活安装客户端、测试控制器和测试代理软件。 例如:

    本地配置:

    • Machine1:Visual Studio、控制器和代理。

    使用控制器和代理的本地计算机

    典型远程配置:

    • Machine1 和 2:Visual Studio(多名测试人员可以使用同一个控制器)。

    • Machine3:控制器(也可安装代理)。

    • Machine4-n:与 Machine2 上的控制器关联的一个或多个代理。

    使用控制器和代理的远程计算机

尽管一个测试控制器通常管理多个测试代理,但一个代理只能与一个控制器关联。 每个测试代理可由一组开发人员共享。 通过此体系结构,可以轻松增加测试代理的数目,从而生成更大的负载。

测试代理和测试控制器交互

测试控制器管理一组测试代理,以运行测试。 测试控制器与测试代理进行通信,以启动测试、停止测试、跟踪测试代理状态和收集测试结果。

测试控制器

测试控制器提供了运行测试的通用体系结构,并且包含运行负载测试的专门功能。 测试控制器向所有测试代理发送负载测试,并一直等到所有测试代理都初始化该测试。 所有测试代理都准备就绪后,测试控制器便向测试代理发送消息以启动测试。

测试代理

测试代理作为一个服务运行,该服务侦听来自测试控制器的启动新测试的请求。 收到请求后,测试代理服务将启动一个运行测试的进程。 每个测试代理都运行同一负载测试。

管理员将为测试代理分配权重,并且根据测试代理的权重来分配负载。 例如,如果测试代理 1 的权重为 30,测试代理 2 的权重为 70,负载设置为 1000 个用户,则测试代理 1 将模拟 300 个虚拟用户,而测试代理 2 将模拟 700 个虚拟用户。 有关更多信息,请参见 管理测试控制器和测试代理.

测试代理采用一组测试和一组模拟参数作为输入。 Visual Studio 旗舰版中的一个关键概念是,测试与运行测试的计算机相互独立。

测试控制器和测试代理连接点

下图演示测试控制器、测试代理和客户端之间的连接点。 它概述了用于传入和传出连接的端口以及在这些端口上使用的安全限制。

测试控制器和测试代理的端口和安全性

有关更多信息,请参见跨防火墙配置测试控制器和测试代理

测试控制器和代理安装信息

有关测试控制器和测试代理的硬件和软件要求、安装过程以及配置环境以获得最佳性能的重要信息,请参见安装和配置 Visual Studio 代理以及测试和生成控制器测试控制器和测试代理要求

将测试控制器和测试代理用于单元测试

安装测试控制器以及一个或多个代理后,可以在运行负载测试时所使用的测试设置中指定对测试控制器使用远程执行。 此外,还可以指定数据和诊断适配器以用于与测试设置中的代理相关联的角色。 有关更多信息,请参见如何:为分布式负载测试创建测试设置使用测试设置来设置计算机和收集诊断信息

虚拟用户的限制和授权

Visual Studio 旗舰版允许您对本地负载测试运行使用最多 250 个虚拟用户。 如果负载测试需要更多虚拟用户,或者您希望使用远程计算机,则必须购买 Visual Studio Load Test Virtual User Pack 2010。 可以在购买 Visual Studio 旗舰版的地方购买 Visual Studio Load Test Virtual User Pack 2010。 有关更多信息,请参见 使用测试控制器管理负载测试的虚拟用户许可证为负载测试配置测试控制器和测试代理

提示

Visual Studio 2010 负载测试功能包为活动的 Microsoft Visual Studio 旗舰版 2010 和 MSDN 订户提供了一个唯一的 Visual Studio Load Test Virtual User Pack 2010 许可证秘钥,可以用来生成无限的虚拟用户。

若要下载此功能包(仅限 MSDN 订户),请访问 MSDN 订户下载。 有关此功能包的更多信息,请参见 Microsoft Visual Studio 2010 负载测试功能包

提示

Visual Studio Load Test Virtual User Pack 2010 许可证使用多处理器体系结构,这允许安装了许可证的计算机使用多个处理器。

本地或远程测试运行所允许的虚拟用户数量如下所示:

  • **没有安装 Visual Studio Load Test Virtual User Pack 2010 的本地负载测试运行:**如果您使用 Visual Studio 旗舰版,而在您的本地计算机上没有安装 Visual Studio Load Test Virtual User Pack 2010,则您仅限于使用 250 个用户。 本地计算机也仅限于客户端 CPU 上的单核。

    最多使用 250 名虚拟用户的本地计算机

    如果您的负载测试最初的虚拟用户多于 250 个,或者在负载测试期间虚拟用户数量增加而超过了 250 个用户,则负载测试会由于错误而停止,该错误会指示发生了许可证冲突。

  • **安装了 Visual Studio Load Test Virtual User Pack 2010 的本地负载测试运行:**如果您使用 Visual Studio 旗舰版,并且本地计算机上已安装 Visual Studio Load Test Virtual User Pack 2010,则您可使用购买的许可证所允许的最多虚拟用户数来运行负载测试。

    使用虚拟用户许可证的本地计算机

    提示

    如果您使用的虚拟用户数多于许可证限制,则测试不会停止运行,但会向负载测试结果以及计算机上的应用程序事件日志中添加一个错误。

    在非测试控制器方案中添加 Visual Studio Load Test Virtual User Pack 2010 有一个额外的好处,即,取消对所有计算机处理器的使用锁定。 如果没有 Visual Studio Load Test Virtual User Pack 2010,则您的本地计算机只能使用第一个处理器。 在添加 Visual Studio Load Test Virtual User Pack 2010 后,负载测试可在运行时使用计算机上的所有处理器。

  • **通过使用控制器和代理安装了 Visual Studio Load Test Virtual User Pack 2010 的远程负载测试运行:**如果您使用 Visual Studio 旗舰版,并且具有一个测试控制器和一个或多个安装了所需的 Visual Studio Load Test Virtual User Pack 2010 的测试代理,则您可使用购买的许可证所允许的最大虚拟用户数执行远程负载测试运行。

    使用一台远程计算机的负载测试

    使用控制器和代理的远程计算机

    使用多台远程计算机的负载测试

    使用控制器和代理的远程计算机

    提示

    如果您指定的虚拟用户数多于许可证限制,则测试不会停止运行,但会向负载测试结果以及计算机上的应用程序事件日志中添加一个错误。

添加 Visual Studio Load Test Virtual User Pack 2010 许可证密钥

可以使用 Microsoft Visual Studio Test Controller 2010 配置工具来安装 Visual Studio Load Test Virtual User Pack 2010 许可证密钥。 有关更多信息,请参见如何:为负载测试添加虚拟用户许可证密钥

您还可通过使用 TestControllerConfig.exe 或 VSTestConfig.exe 从命令行处添加 Visual Studio Load Test Virtual User Pack 2010 许可证密钥。 有关更多信息,请参见如何:使用命令行为负载测试添加虚拟用户许可证密钥

对每台计算机应用 Visual Studio Load Test Virtual User Pack 2010 许可证密钥。 因此,如果您安装了使用超过 250 个用户的 Visual Studio 旗舰版,同时在同一计算机上安装了测试控制器,则您只能在该计算机上输入一次许可证密钥,以允许同时在这两个工具中使用虚拟用户。

若要识别最新添加的一个或多个许可证密钥,则您必须重新启动测试控制器服务或 Visual Studio 旗舰版(具体取决于您所使用的工具)。

有关更多信息,请参见 编辑负载模式以便为虚拟用户活动建模.

请参见

任务

如何:使用测试设置中指定的测试控制器和测试代理运行负载测试

如何:使用测试控制器和测试代理运行测试

概念

测试应用程序性能和压力

如何:访问负载测试结果以进行分析

其他资源

运行负载测试和 Web 性能测试

如何:为负载测试添加虚拟用户许可证密钥

演练:在负载测试中使用测试控制器和测试代理

如何:为分布式负载测试创建测试设置

测试控制器和测试代理要求