适用于 Visual Studio 的 Teams 应用测试工具

Teams 应用测试工具 (测试工具) 使调试基于机器人的应用变得轻松。 你可以与机器人聊天,并在 Microsoft Teams 中查看其消息和自适应卡片。 无需 Microsoft 365 开发人员帐户、隧道或 Teams 应用和机器人注册即可使用测试工具。

下图显示了在测试工具中显示响应的示例应用:

屏幕截图显示了 Teams 应用测试工具自适应卡片。

以下是测试工具的优点:

  • 沙盒环境:测试工具的沙盒环境模拟 Teams 的行为、外观和用户体验。

  • 隧道:不需要外部隧道服务,因为测试工具在机器人可以与之通信的本地服务器上运行。

  • 减少帐户依赖项:调试机器人不需要 Microsoft 365 开发人员租户和应用上传权限。

  • 快速内部循环迭代:优化对应用设计和机器人逻辑进行更改的过程,而无需将机器人重新部署到云。

  • 模拟数据和活动:测试工具可以轻松地测试复杂方案,例如,在新成员加入通道时发送欢迎消息,并使用模拟数据和活动触发器。

  • 可靠:测试工具可靠,因为机器人的自适应卡片使用与 Teams 中的相同呈现技术。

  • 与现有 Teams 机器人应用程序集成:测试工具毫不费力地与使用 Bot Framework SDK 构建的现有 Teams 机器人应用程序集成。

  • 支持不同范围:测试工具支持在个人、团队和群组聊天范围内进行测试。

先决条件

确保安装以下工具,用于在测试工具中生成和部署机器人:

安装 用于使用...
Node.js 后端 JavaScript 运行时环境。
Visual Studio 2022
可以在 Visual Studio 2022 中安装企业版,并安装 ASP.NET 和 Web 开发工作负载。 使用版本 17.9 或更高版本。

Visual Studio 中的测试工具体验

与 Teams 客户端相比,测试工具为机器人应用程序提供了更快的调试体验。 测试工具支持所有机器人应用功能。 在此方案中,我们使用 AI 聊天机器人 作为示例。 若要在测试工具中调试机器人,请执行以下步骤:

  1. 打开 Visual Studio。

  2. 选择 “创建新项目”。

    屏幕截图显示了用于创建新项目的选择。

  3. 在搜索框中,输入 Microsoft Teams。 在搜索结果中,选择“ Microsoft Teams 应用”。

  4. 选择“下一步”。

    屏幕截图显示了用于创建新项目的模板选择。

  5. 输入 “项目名称 ”,然后选择“ 创建”。

    屏幕截图显示了用于输入项目名称的选项。

  6. 选择 “AI 聊天机器人>创建”。

    注意

    屏幕截图显示选择 Teams 应用程序以创建新项目。

    此时会显示一个 GettingStarted 窗口。

    屏幕截图显示了 Visual Studio 中应用程序的“入门”页。

  7. 该文件 appsettings.TestTool.json 通过更新几个参数来帮助配置测试工具。 若要更新 appsettings.TestTool.json 文件,请按照 OpenAI 或 Azure OpenAI 步骤操作:

    • 更新 文件中的 appsettings.TestTool.json OpenAIApiKey

      屏幕截图显示更新的 OpenAI 密钥。

  8. 在调试下拉列表中,选择“ Teams 应用测试工具” (浏览器)

    屏幕截图显示了从下拉列表中选择 Teams 应用测试工具的选项。

    测试工具在网页中打开机器人。

    屏幕截图显示机器人在网页中打开测试工具。

活动触发器

可以使用活动触发器在测试工具中模拟活动。 有两种类型的活动触发器:

预定义的活动触发器

测试工具提供预定义的活动触发器来测试机器人的功能。

类别 活动 处理程序
触发安装更新活动 安装机器人


卸载机器人
onInstallationUpdate
onInstallationUpdateAdded

onInstallationUpdate
onInstallationUpdateRemove
触发对话更新活动 添加用户

添加机器人

添加通道
onMembersAdded

onTeamsMembersAddedEvent

onTeamsChannelRenamedEvent
删除用户


删除机器人


删除频道

删除团队
onMembersRemoved
onTeamsMembersRemovedEvent

onMembersRemoved
onTeamsMembersRemovedEvent

onTeamsChannelDeletedEvent

onTeamsTeamDeletedEvent
重命名通道

重命名团队
onTeamsChannelRenamedEvent

onTeamsTeamRenamedEvent

注意

并非所有范围都提供所有类型的活动。 例如,不能在个人聊天或群组聊天中添加或删除频道。

在测试工具的 模拟活动 菜单中提供了预定义的活动触发器。 在此方案中,我们使用 “添加用户 活动触发器”作为示例。 若要模拟 “添加用户” 活动,请执行以下步骤:

  1. 在 Visual Studio Code 中,转到“解决方案资源管理器”。

  2. 选择 Program.cs 文件。

  3. Program.cs 文件中,在 下 builder.Services.AddTransient<IBot>(sp => 添加以下代码:

    app.OnConversationUpdate("membersAdded", async (context, state, cancellationToken) =>
    {
       await context.SendActivityAsync($"new member added", cancellationToken: cancellationToken);
    });
    

    处理程序 OnConversationUpdate 识别加入聊天的成员,如添加用户活动所述。

    屏幕截图显示添加到program.cs文件中的预定义模拟活动添加用户的代码。

  4. 在“测试工具”中,转到 “模拟活动 ”,然后选择“ 添加用户”。

    屏幕截图显示模拟活动下的“添加用户”选项。

    此时会显示一个弹出对话框来预览活动处理程序。

  5. 选择“ 发送活动”。

    屏幕截图显示用于为预定义的模拟活动添加用户发送活动的选项。

    机器人发送响应。

    屏幕截图显示了预定义的模拟活动添加用户的响应。

自定义活动触发器

可以使用 自定义活动 来自定义活动触发器 reactionsAdded,以满足机器人应用的要求。 测试工具会自动填充活动的必需属性。 还可以修改活动类型并添加更多属性,例如 、 MembersAddedmembersremovedreactionsremoved

  1. 在 Visual Studio Code 中,转到“解决方案资源管理器”。

  2. 选择 Program.cs 文件。

  3. Program.cs 文件中,在 下 builder.Services.AddTransient<IBot>(sp => 添加以下代码:

    app.OnMessageReactionsAdded(async (context, state, cancellationToken) =>
    {
       await context.SendActivityAsync($"reaction added.", cancellationToken: cancellationToken);
    });
    

    处理程序 OnMessageReactionsAdded 使用 ReplyToId 先前会话的 属性标识要追加的反应。

    屏幕截图显示添加到 program.cs 文件中的代码,以便对模拟活动进行自定义。

  4. 转到“测试工具”网页,从日志面板中选择最新响应以复制 replyToId

    屏幕截图显示选择要复制的 replyToID 以在模拟活动上进行自定义。

  5. 选择模拟 活动>自定义活动

    屏幕截图显示模拟活动下的选项列表。

  6. 若要自定义活动,请在 属性下type添加 messageReaction

  7. 将 替换为最新的 replyToId

    {
      "type": "messageReaction",
      "reactionsAdded": [
        {
          "type": "like"
        }
      ],
      "replyToId": "d60fd1cb-3e8f-44ef-849c-404806ba1b47"
    }
    
  8. 选择“ 发送活动”。

    屏幕截图显示自定义模拟活动后发送活动的选项。

    机器人在响应中发送 onReactionsAdded 处理程序。

    屏幕截图显示了自定义模拟活动的响应。

限制

  • 通过应用清单启用的机器人功能不可用,因为测试工具不会处理它。

  • 测试工具不支持除自适应卡片以外的所有类型的卡片。

  • 测试工具不支持以下自适应卡片功能:

  • 测试工具不支持以下体验:

    • 移动设备
    • 会议

另请参阅