适用于 Visual Studio 的 Teams 应用测试工具
Teams 应用测试工具 (测试工具) 使调试基于机器人的应用变得轻松。 你可以与机器人聊天,并在Microsoft Teams 中查看其消息和自适应卡片。 无需Microsoft 365 开发人员帐户、隧道或 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 聊天机器人 作为示例。 若要在测试工具中调试机器人,请执行以下步骤:
打开 Visual Studio。
选择 “创建新项目”。
在搜索框中,输入 “Microsoft Teams”。 在搜索结果中,选择“ Microsoft Teams 应用”。
选择 下一步。
输入 “项目名称 ”,然后选择“ 创建”。
选择 “AI 聊天机器人>创建”。
注意
- OpenAI 或 Azure OpenAI 是调试 AI 聊天机器人 应用的先决条件。
此时会显示一个 GettingStarted 窗口。
该文件
appsettings.TestTool.json
通过更新几个参数来帮助配置测试工具。 若要更新appsettings.TestTool.json
文件,请按照 OpenAI 或 Azure OpenAI 步骤操作:更新 文件中的
appsettings.TestTool.json
OpenAIApiKey
。在调试下拉列表中,选择“ Teams 应用测试工具” (浏览器) 。
测试工具在网页中打开机器人。
活动触发器
可以使用活动触发器在测试工具中模拟活动。 有两种类型的活动触发器:
预定义的活动触发器
测试工具提供预定义的活动触发器来测试机器人的功能。
类别 | 活动 | 处理程序 |
---|---|---|
触发安装更新活动 | 安装机器人 卸载机器人 |
onInstallationUpdate onInstallationUpdateAdded onInstallationUpdate onInstallationUpdateRemove |
触发对话更新活动 | 添加用户 添加机器人 添加通道 |
onMembersAdded onTeamsMembersAddedEvent onTeamsChannelRenamedEvent |
删除用户 删除机器人 删除频道 删除团队 |
onMembersRemoved onTeamsMembersRemovedEvent onMembersRemoved onTeamsMembersRemovedEvent onTeamsChannelDeletedEvent onTeamsTeamDeletedEvent |
|
重命名通道 重命名团队 |
onTeamsChannelRenamedEvent onTeamsTeamRenamedEvent |
注意
并非所有范围都提供所有类型的活动。 例如,不能在个人聊天或群组聊天中添加或删除频道。
在测试工具的 模拟活动 菜单中提供了预定义的活动触发器。 在此方案中,我们使用 “添加用户 活动触发器”作为示例。 若要模拟 “添加用户” 活动,请执行以下步骤:
在 Visual Studio Code 中,转到 “解决方案资源管理器”。
选择 Program.cs 文件。
在 Program.cs 文件中,在 下
builder.Services.AddTransient<IBot>(sp =>
添加以下代码:app.OnConversationUpdate("membersAdded", async (context, state, cancellationToken) => { await context.SendActivityAsync($"new member added", cancellationToken: cancellationToken); });
处理程序
OnConversationUpdate
识别加入聊天的成员,如添加用户活动所述。在“测试工具”中,转到 “模拟活动 ”,然后选择“ 添加用户”。
此时会显示一个弹出对话框来预览活动处理程序。
选择“ 发送活动”。
机器人发送响应。
自定义活动触发器
可以使用 自定义活动 来自定义活动触发器 reactionsAdded
,以满足机器人应用的要求。 测试工具会自动填充活动的必需属性。 还可以修改活动类型并添加更多属性,例如 、 MembersAdded
membersremoved
和 reactionsremoved
。
在 Visual Studio Code 中,转到 “解决方案资源管理器”。
选择 Program.cs 文件。
在 Program.cs 文件中,在 下
builder.Services.AddTransient<IBot>(sp =>
添加以下代码:app.OnMessageReactionsAdded(async (context, state, cancellationToken) => { await context.SendActivityAsync($"reaction added.", cancellationToken: cancellationToken); });
处理程序
OnMessageReactionsAdded
使用ReplyToId
先前会话的 属性标识要追加的反应。转到“测试工具”网页,从日志面板中选择最新响应以复制
replyToId
。选择模拟 活动>自定义活动。
若要自定义活动,请在 属性下
type
添加messageReaction
。将 替换为最新的
replyToId
。{ "type": "messageReaction", "reactionsAdded": [ { "type": "like" } ], "replyToId": "d60fd1cb-3e8f-44ef-849c-404806ba1b47" }
选择“ 发送活动”。
机器人在响应中发送
onReactionsAdded
处理程序。
限制
通过应用清单启用的机器人功能不可用,因为测试工具不会处理它。
测试工具不支持除自适应卡片以外的所有类型的卡片。
测试工具不支持以下自适应卡片功能:
测试工具不支持以下体验:
- 移动设备
- 会议