用 Visual Studio 管理测试控制器和测试代理

如果你需要使用 Visual Studio 远程运行测试、跨多台计算机分发测试或运行负载测试,则必须配置测试控制器、测试代理和测试设置文件。 本主题介绍如何在第一次安装并配置测试控制器和测试代理后管理它们。

如果您正在运行负载测试,您无需使用您的资源并设置您自己的计算机来创建此负载。 可以使用基于云的负载测试来提供同时生成访问网站的多个用户的负载的云端虚拟机。 你所需要的是一个 Visual Studio Online 帐户。 了解有关这个基于云的负载测试服务,它每月提供负载测试的 15000 分钟的免费虚拟用户时间。

如果使用 Microsoft 测试管理器在实验室环境中运行测试,可使用 的**“实验室中心”中的Microsoft 测试管理器“测试控制器管理器”**来管理测试控制器及其代理。 本主题仅在使用 Visual Studio 运行测试时适用。

有关如何安装并配置测试代理和测试控制器以便在 Visual Studio 中运行测试的信息,请参阅用 Visual Studio 设置测试控制器和测试代理以管理测试

若要配置和监视测试控制器和任何注册代理,你的测试项目中必须存在包含要运行的测试的测试设置文件。 打开测试设置文件,选择**“角色”并从“控制器”字段的下拉列表中选择“管理测试控制器”**。

打开测试设置文件,选择“角色”选项卡

对于负载测试项目,你还可以从**“负载测试”菜单中选择“管理测试控制器**。

在安装和配置测试控制器和测试代理后,可使用以下过程来管理它们:

  • 将测试代理添加到测试控制器中

  • 从测试控制器中移除测试代理

  • 更改测试代理的设置

  • 配置测试控制器

  • 运行测试时管理代理

  • 确定用于运行测试的测试控制器

  • 从延迟签名的测试程序集加载测试

将测试代理添加到测试控制器中

你可能需要将一个测试代理添加到不同的测试控制器中,或者可能必须将测试代理添加到刚才安装的测试控制器中。

将测试代理添加到测试控制器中

  1. 依次选择**“开始”“所有程序”“Microsoft Visual Studio”“Microsoft Visual Studio Test Agent 配置工具”**。

    **“配置测试代理”**对话框随即显示。

    备注

    你必须已经安装了测试代理才能将其添加到测试控制器中。有关如何安装测试代理的详细信息,请参阅安装和配置测试代理和测试控制器

  2. 若要更改测试代理的运行方式,请选择**“运行选项”**。

    将显示有关如何运行测试代理的两个选项:

    服务 如果不必运行与桌面进行交互的自动测试(如编码 UI 测试,或在测试运行时创建视频录制),则在**“将测试代理作为以下内容运行”下选择“服务”。 测试代理将作为服务启动。 选择“下一步”**。

    你现在可以输入在测试代理作为服务启动时的用户详细信息。

    1. 在**“用户名”**中输入名称。

    2. 在**“密码”**中输入密码。

      重要的用户帐户信息

      • 用户帐户不支持空密码。

      • 如果要使用 IntelliTrace 回收器或网络仿真,则用户帐户必须是 Administrators 组的成员。

      • 如果代理用户名不在代理服务中,则它将尝试添加代理用户名,这需要有测试控制器权限。

      • 尝试使用测试控制器的用户必须位于测试控制器的 Users 帐户中,否则他们将无法针对控制器运行测试。

    交互进程 如果要运行必须与桌面进行交互的自动测试(如编码 UI 测试,或在测试运行时创建视频录制),则选择**“交互进程”**。 测试代理将作为交互进程启动,而不是作为服务启动。

    在下一页上,输入在测试代理作为进程启动时的用户详细信息以及其他选项。

    1. 在**“用户名”**中输入名称。

    2. 在**“密码”**中输入密码。

      备注

      如果将测试代理配置为通过不是当前活动用户的另一个用户作为交互进程运行,则必须重新启动计算机,并以这另一个用户的身份登录以便能够启动代理。此外,用户帐户不支持空密码。如果要使用 IntelliTrace 回收器或网络仿真,则用户帐户必须是 Administrators 组的成员。

      重要的用户帐户信息

      • 用户帐户不支持空密码。

      • 如果要使用 IntelliTrace 或网络仿真数据和诊断适配器,则用户帐户必须是 Administrators 组的成员。 如果运行测试代理的计算机使用的是 Windows Vista 或更高版本或者任何具有最少特权用户帐户的操作系统,则还必须以管理员身份(提升的权限)运行该计算机。

      • 如果代理用户名不在代理服务中,则它将尝试添加代理用户名,这需要有测试控制器权限。

      • 尝试使用测试控制器的用户必须位于测试控制器的 Users 帐户中,否则他们将无法针对控制器运行测试。

    3. 为了确保具有测试代理的计算机在重新启动之后可以运行测试,你可以设置计算机以在测试代理使用时自动登录。 选择**“自动登录”**。 这会以加密形式将用户名和密码存储在注册表中。

    4. 因为屏幕保护程序可能会妨碍任何必须与桌面交互的自动测试,所以为了确保禁用屏幕保护程序,请选择**“确保禁用屏幕保护程序”**。

      警告

      如果自动登录或禁用屏幕保护程序,则存在安全风险。如果启用自动登录,则其他用户能够启动此计算机并能够使用自动登录的帐户。如果禁用屏幕保护程序,则计算机可能不会提示用户通过登录来解锁计算机。这样,任何能够实际接触到计算机的人员都可以访问该计算机。如果在计算机上启用这些功能,则应该确保这些计算机位于安全的场所。例如,这些计算机位于安全的实验室中。(如果清除“确保禁用屏幕保护程序”,就不会启用屏幕保护程序。)

  3. 若要向其他测试控制器注册此代理,请选择**“向测试控制器注册”。 键入测试控制器的名称,该名称后面是 : 以及在“向以下测试控制器注册测试代理”**中使用的端口号。 例如,键入 agent1:6901。

    备注

    默认端口号是 6901。

  4. 若要保存所做的更改,请选择**“应用设置”。 关闭“配置摘要”**对话框,然后关闭测试代理配置工具。

  5. 警告

    如果代理当前被配置为在另一个测试控制器上运行,则必须从该控制器中移除测试代理。如果测试控制器是向团队项目注册的,则可以在 的“实验室中心”中使用Microsoft 测试管理器“测试控制器管理器”移除测试代理。否则,若要移除测试代理,请在 Visual Studio 中的“测试”菜单上,选择“管理测试控制器”

从测试控制器中移除测试代理

在移除测试代理之前,必须将其设置为脱机状态。

此过程不能用于删除作为实验室环境的一部分向控制器注册的代理。 若要从控制器中删除这些代理,则必须使用 Microsoft 测试管理器删除环境。

从测试控制器中移除测试代理

  1. 如果测试控制器未向团队项目注册,请按以下步骤进行操作。

    1. 从 Visual Studio 打开你的测试项目的测试设置文件,选择**“角色”并从“控制器”字段的下拉列表中选择“管理测试控制器”**。

      此时将显示**“管理测试控制器”**对话框。

    2. 在**“控制器”**下拉列表中,键入安装了测试控制器的计算机的名称。 如果你先前已经管理了特定测试控制器,则可以从列表中选择该名称。

    3. 在**“代理”窗格中,选择测试代理名称。 如果代理仍处于联机状态,请选择“脱机”。 若要移除它,请选择“移除”**。

      备注

      移除测试代理只是解除该代理与测试控制器之间的关联。若要完全卸载测试代理,请使用测试代理计算机上“控制面板”中的“程序和功能”

  2. 如果测试控制器是向团队项目注册的,请按以下步骤进行操作。

    1. 打开 Microsoft 测试管理器:

      依次选择**“开始”“所有程序”“Microsoft Visual Studio 2013”“Microsoft 测试管理器”**。

    1. 选择**“实验室中心”,再选择“控制器”**。

      此时将显示**“测试控制器管理器”**视图。

    2. 从测试控制器列表中选择测试控制器。

      注册到此测试控制器的任何测试代理现在都显示在测试代理列表中。

    备注

    若要将一个测试代理设置为作为能与桌面交互的进程运行,则将在列表中显示该测试代理,且其名称前有一个星号。

    1. 选择要移除的代理。 如果代理仍处于联机状态,请选择**“脱机”。 若要将其移除,请选择“移除”**按钮。

      备注

      移除测试代理只是解除该代理与测试控制器之间的关联。若要完全卸载测试代理,请使用测试代理计算机上“控制面板”中的“程序和功能”

    你无法使用此过程中的步骤将测试代理移至另一个测试控制器。 若要将测试代理移至另一个测试控制器,请将该测试代理从其当前的测试控制器中移除。 然后,可以按照此过程中的步骤将测试代理添加到测试控制器中。

更改测试代理的设置

测试代理的状态可以是以下任何一个值:

状态

描述

运行测试

运行测试

就绪

可用于运行测试或收集数据和诊断信息

脱机

不可用于运行测试或收集数据和诊断信息

已断开连接

测试代理未启动

  • 你可以使用以下过程为测试代理更改状态和其他设置。

更改测试代理的设置

  1. 如果向测试控制器注册了测试代理,且测试控制器已向团队项目注册,请按以下步骤进行操作:

    1. 在 Microsoft 测试管理器中,选择**“实验室中心”,再选择“控制器”**。
  2. 如果向测试控制器注册了测试代理,且测试控制器未向团队项目注册,请按以下步骤进行操作:

    1. 若要配置和监视测试控制器以及任何注册的代理用于加载测试,请选择 Visual Studio 中的**“负载测试”菜单并指向“管理测试控制器”。 对于任何其他测试,在 Visual Studio 中打开你的测试项目的测试设置文件,选择“角色”并从“控制器”字段的下拉列表中选择“管理测试控制器”**。

      此时将显示**“管理测试控制器”**对话框。

  3. 在测试控制器列表中,选择要更改的测试代理所属的测试控制器的名称。 如果该测试控制器未出现在列表中,请检查是否正确注册了该测试控制器。 有关更多信息,请参见以下关于如何配置测试控制器的过程。

  4. (可选)在**“测试代理”**窗格中,选择要为其更改属性的测试代理计算机。

  5. 如果你使用的是 Microsoft 测试管理器,请选择**“配置”**。

    - 或 -

    如果你使用的是 Visual Studio,请选择**“属性”**。

  6. 根据需要更改以下测试代理属性:

测试代理属性

描述

权重

用于在使用具有不同性能级别的测试代理时分布负载。 例如,权重为 100 的测试代理获得的负载将为权重为 50 的测试代理的两倍。

IP 切换

用于配置 IP 切换。 IP 切换使测试代理可以使用一个 IP 地址范围向服务器发送请求。 这模拟了来自不同客户端计算机的调用。

如果负载测试要访问网络场,则 IP 切换很重要。 大多数负载平衡器通过使用客户端的 IP 地址在客户端与特定的 Web 服务器之间建立关联。 如果所有请求看上去都来自单个客户端,则负载平衡器不会平衡负载。 若要在 Web 场中实现较好的负载平衡,请确保请求来自某个范围内的 IP 地址。

备注

你可以指定网络适配器,也可以使用“(全部未指定)”自动选择当前未使用的网络适配器。

若要使用 IP 切换功能,则必须以该代理计算机的管理员组中的用户身份运行 Visual Studio Test Agent 服务。 此用户是在安装代理过程中选择的,但是可以通过修改服务的属性并重启该服务来进行更改。

要验证 IP 交换机制是否正常工作,可在 Web 服务器上启用 IIS 日志记录功能,使用 IIS 日志记录功能来验证请求是否来自所配置的 IP 地址。

特性

可在测试代理选择中使用的名称/值对集。 例如,某个测试可能会要求某个特定的操作系统 (OS)。 你可将特性添加到测试设置文件的“角色”选项卡中,它们可用于选择与特性匹配的测试代理。 若要在多台计算机上运行测试,请在配置为运行测试的测试设置角色中创建一个特性,然后在要在该角色中使用的每个测试代理上配置一个匹配的特性。 有关将特性添加到测试设置文件中的某个角色的信息,请参阅指定 Visual Studio 测试的测试设置

备注

此设置仅适用于注册到测试控制器(未注册到团队项目)的测试代理,因为这些特性只用于 Visual Studio 的测试设置中。

测试代理权重和测试代理特性的更改会立即生效,但不会影响正在运行的测试。 IP 地址范围将在测试控制器重新启动之后生效。

  1. (可选)若要更改测试代理的状态,请在列表中选择代理,然后从基于代理当前状态的可用选项中选择操作。

    备注

    如果测试代理正在作为进程运行,则可以通过在安装测试代理的计算机上运行的通知区域图标来管理测试代理的状态。这将显示测试代理的状态。如果代理作为使用此工具的进程运行,你可以启动、停止或重新启动代理。若要在测试代理未运行时将其作为进程启动,请依次选择“开始”“所有程序”“Microsoft Visual Studio”“Microsoft Visual Studio Test Agent”。这将添加通知区域图标。

配置测试控制器

若要配置测试控制器,你必须使用**“Team Test Controller 配置工具”**。 当你配置测试控制器时,你可以向不同的团队项目集合注册测试控制器,或者可以从团队项目集合中注销测试控制器。

如果要向 Team Foundation Server 项目集合注册测试控制器,则用于测试控制器服务的帐户必须是团队项目集合的“项目集合测试服务帐户”组的成员,或者用于运行测试控制器配置工具的帐户必须是“项目集合管理员”。

备注

如果要从具有现有环境的团队项目集合中注销测试控制器,则在移动团队项目集合并向该移动的团队项目集合重新注册测试控制器时,仍会维持这些环境。

配置测试控制器

  1. 若要运行该工具以随时重新配置测试控制器,请依次选择**“开始”“所有程序”“Microsoft Visual Studio”“Microsoft Visual Studio Test Controller 配置工具”**。

    **“配置测试控制器”**对话框随即显示。

  2. 选择要用作测试控制器服务的登录帐户的用户。

    备注

    用户帐户不支持空密码。

  3. (可选)若要使用 Microsoft 测试管理器将此测试控制器用于实验室环境,你必须将控制器注册到包含环境的团队项目的团队项目集合。 选择**“向团队项目集合注册”。 若要找到团队项目集合,请选择“浏览”,或者可以在“向以下团队项目集合注册测试控制器”中键入名称。 确保输入完整路径。 例如,http://<服务器名称>:8080/tfs/DefaultCollection**。

    备注

    有关环境的详细信息,请参阅设置测试计算机以运行测试或收集数据

  4. (可选)如果不想将测试控制器用于实验室环境,而只想从 Visual Studio 中运行测试,请清除**“向团队项目集合注册”**。

  5. (可选)若要针对负载测试配置测试控制器,请选择**“针对负载测试进行配置”**。 然后在SQL Server“在以下 SQL Server 实例中创建负载测试结果数据库”中键入 实例。

    有关负载测试的详细信息,请参阅[已停用] Visual Studio 中的 Web 性能测试和负载测试将测试控制器和测试代理用于负载测试

备注

有关测试控制器的更多疑难解答信息,请参阅安装和配置测试代理和测试控制器

确定用于运行测试的测试控制器

如果在使用测试控制器运行测试时出现问题,则你可能需要确定用于验证测试控制器服务的测试控制器是否正在运行,或是否启动了测试控制器计算机。

使用 Visual Studio 运行测试

如果使用 Visual Studio 运行测试,测试设置中将显示用来运行测试的测试控制器。 使用本主题中的过程来查看你的测试设置:如何:通过 Microsoft Visual Studio 编辑测试设置文件

使用 Microsoft 测试管理器运行测试

在使用 Microsoft 测试管理器运行测试的情况下,若要使用测试控制器,你必须创建一个环境。 在运行测试时,可选择下列选项之一:

  • 运行:这将通过使用测试计划中指定的环境来运行测试。

  • 使用选项运行:利用此选项,可以使用其他环境来运行测试。

若要查找测试计划中指定的环境,请使用以下主题来在测试计划的“属性”视图中查看环境:如何:为测试计划选择测试设置和环境

在了解用来运行测试的环境后,可使用以下过程来查看此环境的详细信息。

确定环境的测试控制器

  1. 打开 Microsoft 测试管理器:

    依次选择**“开始”“所有程序”“Microsoft Visual Studio 2013”“Microsoft 测试管理器”**。

  2. 选择**“实验室中心”,再选择“实验室”**。

    此时将显示**“环境”**视图。

  3. 从列表中选择用来运行测试的环境,然后选择**“打开”**。

    此时将显示该环境。 现在可以查看为环境选择的测试控制器。 测试控制器的名称与运行它的计算机的名称相同。

    备注

    测试控制器服务称为“Visual Studio Test Controller”。如果测试控制器存在问题,则你可能需要验证是否已启动计算机以及此服务是否正在计算机上运行。

当使用测试控制器运行测试时管理代理

将应用程序的角色添加到 Visual Studio 2013 的测试设置中时,你可以为每个角色添加代理属性。 这将确定哪些测试代理可用于此角色。当您使用这些测试设置运行测试时,为测试设置选择的测试控制器将确定所需代理的可用性。 下面是在确定代理可用性时可能发生的情况:

  • 对于必须运行测试的角色,没有可用的代理。 测试无法运行。 可以执行下列操作之一,然后重新运行测试:

    • 可以等待代理变为可用于此运行测试的角色。

    • 如果有任何处于脱机状态的代理可用于此角色,你可以重新启动该代理,以使其可用。

    • 你可以为该角色将具有正确代理属性的另一个代理添加到测试控制器中。

    • 你可以在测试设置中为此角色更改代理属性,以启用想要使用的其他代理。

  • 对于运行诊断数据适配器的一个或多个角色,没有可用的代理。 测试可以运行,但是诊断数据适配器无法运行。 你可以在没有诊断数据适配器的情况下运行测试,也可以执行下列操作之一并重新运行测试:

    • 可以等待代理变为可供这些角色使用。

    • 如果有任何处于脱机状态的代理可用于此角色,则你必须通过**“测试”菜单上的“管理测试控制器”**将代理的状态更改为联机。 另外,如果代理已与控制器断开连接,则必须重新启动代理。

    • 请验证此测试运行可能需要的所有代理都没有忙于运行测试。 可以通过**“测试”菜单上的“管理测试控制器”**检查任何代理的状态。

    • 你可以为该角色将具有正确代理属性的另一个代理添加到测试控制器中。

    • 你可以在测试设置中为此角色更改代理属性,以启用想要使用的其他代理。

从延迟签名的程序集加载测试

测试控制器和测试代理只能加载强签名的测试程序集或未签名的测试程序集。 某些测试程序集是延迟签名的程序集,因为它们需要拥有访问应用程序的生产程序集的权限。 但是,这些程序集不是强签名的程序集,因为它们仅是测试程序集,不会分发出去。 由于这些程序集会被延迟签名,导致无法加载,所以你必须在将加载这些程序集的所有计算机(包括测试控制器计算机)上为这些程序集禁用强名称验证。 若要禁用延迟签名验证,请使用 sn.exe。 可能还需要包括请求跳过其强名称验证的延迟签名程序集的公钥标记。

请使用Sn.exe(强名称工具) 禁用延迟签名验证。

这样在运行此命令的计算机上只会禁用指定程序集的强名称验证。 执行此操作需要有足够的权限。

测试运行完成后,应使用 SN.exe 命令重新启用延迟的签名验证。

建议通过在脚本中使用 SN.exe 命令来禁用和重新启用签名验证。 可以在安装脚本中禁用验证,在清理脚本中重新启用验证。

请参见

概念

安装和配置测试代理和测试控制器

其他资源

指定 Visual Studio 测试的测试设置

使用 Microsoft 测试管理器运行手动测试