Средство тестирования приложений Teams
Примечание.
Средство тестирования приложений Teams доступно в последней предварительной версии набора средств Microsoft Teams. Убедитесь, что установлена последняя предварительная версия набора средств Teams.
Средство тестирования приложений Teams (средство тестирования) упрощает отладку приложений на основе ботов. Вы можете общаться с ботом и просматривать его сообщения и адаптивные карточки, как они отображаются в Microsoft Teams. Для использования средства тестирования не требуется учетная запись разработчика Microsoft 365, туннелирование или регистрация приложения Teams и бота.
На следующем рисунке показан пример приложения, отображающего адаптивную карточку со списком команд в средстве тестирования. Он также содержит описание команд, чтобы можно было протестировать приложение без ручного поиска в коде:
Ниже приведены преимущества средства тестирования.
Песочница. Песочница средства тестирования имитирует поведение, внешний вид и пользовательский интерфейс Teams.
Туннелирование. Внешняя служба туннелирования не требуется, так как средство тестирования выполняется на локальном сервере, с которым бот может взаимодействовать.
Уменьшение зависимостей учетных записей. Для отладки бота не требуется клиент разработчика Microsoft 365 и разрешения на отправку приложений.
Быстрые итерации внутреннего цикла. Оптимизирует процесс внесения изменений в структуру приложения и логику бота без необходимости повторного развертывания бота в облаке.
Имитация данных и действий. Средство тестирования упрощает тестирование сложных сценариев, таких как отправка приветственного сообщения при присоединении нового участника к каналу с помощью имитации данных и триггеров действий.
Надежный: средство тестирования надежно, так как адаптивная карточка бота использует ту же технологию отрисовки, что и в Teams.
Интеграция с существующими приложениями ботов Teams. Средство тестирования легко интегрируется с существующими приложениями ботов Teams, созданными с помощью пакета SDK Bot Framework.
Поддержка различных областей. Средство тестирования поддерживает тестирование в личных, командных и групповых чатах.
Предварительные условия
Убедитесь, что вы установили следующие средства для создания и развертывания ботов в средстве тестирования:
Установка | Для использования... | |
---|---|---|
Набор средств Teams | Расширение Microsoft Visual Studio Code, которое создает шаблон проекта для приложения. Используйте последнюю предварительную версию. | |
Node.js | Серверной среды выполнения JavaScript. Дополнительные сведения см . вNode.js таблице совместимости версий для типа проекта. | |
Visual Studio Code; | Сред сборки JavaScript, TypeScript или SharePoint Framework (SPFx). Используйте последнюю версию. |
Общие сведения о средстве тестирования
Средство тестирования — это пакет npm с командой CLI с именем teamsapptester
. При запуске teamsapptester start
на локальном компьютере открывается веб-приложение, которое эмулирует веб-клиент Teams и службу Bot Framework. Этому веб-приложению не требуются никакие облачные ресурсы, так как оно использует макетные данные для имитации контекстной информации Teams.
Чтобы использовать бот Teams в средстве тестирования, необходимо предоставить:
- Конечная точка сообщения. Конечная точка сообщения бота — это URL-адрес, который связывает средство тестирования и бота. Вы можете обновить конечную точку с помощью переменной
BOT_ENDPOINT
среды или использовать значениеhttp://localhost:3978/api/messages
по умолчанию . - Файл конфигурации (необязательно): файл конфигурации информирует средство тестирования о настроенных контекстных данных в Teams. Файл называется .teamsapptesttool.yml в корневой папке проекта. Если Teams не удается найти этот файл, используется конфигурация по умолчанию. Дополнительные сведения см. в разделе Настройка контекста Teams.
Интерфейс средства тестирования в наборе средств Teams
Средство тестирования обеспечивает более быструю отладку приложений бота по сравнению с клиентом Teams.
Откройте Visual Studio Code.
Щелкните значок Набора средств Teams на панели действий Visual Studio Code.
Выберите Создать новое приложение.
Выберите Бот.
Выберите AI Chat Bot. Если вам нужны другие функции для бота, выберите другой вариант.
Выберите JavaScript.
Выберите Папка по умолчанию.
Чтобы изменить расположение по умолчанию, выполните следующие действия.
Нажмите кнопку Обзор.
Выберите расположение рабочей области проекта.
Выберите Выбрать папку.
Введите подходящее имя для приложения, а затем нажмите клавишу ВВОД .
Появится диалоговое окно, в котором необходимо выбрать да или нет, чтобы доверять авторам файлов в этой папке.
В области слева выберите Запуск и отладка (
Ctrl+Shift+D
) и выберите Отладка в средстве тестирования (предварительная версия) в раскрывающемся списке.Средство тестирования открывает бот на веб-странице.
Триггеры действий
Вы можете макетировать действие в средстве тестирования с помощью триггеров действий. Существует два типа триггеров действий:
Предопределенные триггеры действий
Средство тестирования предоставляет стандартные триггеры действий для проверки функциональных возможностей бота.
Категория | Действие | Обработчик |
---|---|---|
Активация действия обновления установки | Установка бота Удаление бота |
onInstallationUpdate onInstallationUpdateAdded onInstallationUpdate onInstallationUpdateRemove |
Активация действия обновления беседы | Добавление пользователя Добавление бота Добавление канала |
onMembersAdded onTeamsMembersAddedEvent onTeamsChannelRenamedEvent |
Удаление пользователя Удаление бота Удаление канала Удаление команды |
onMembersRemoved onTeamsMembersRemovedEvent onMembersRemoved onTeamsMembersRemovedEvent onTeamsChannelDeletedEvent onTeamsTeamDeletedEvent |
|
Переименование канала Переименование команды |
onTeamsChannelRenamedEvent onTeamsTeamRenamedEvent |
Примечание.
Все типы действий доступны не во всех областях. Например, нельзя добавить или удалить канал в личном или групповом чате.
Предопределенные триггеры действий доступны в меню Макет действия в средстве тестирования.
Чтобы имитировать действие add user , сделайте следующее:
В средстве тестирования перейдите в раздел Макет действия и выберите Добавить пользователя.
Появится всплывающее окно для предварительного просмотра обработчика действий.
Выберите Отправить действие.
Бот отправляет ответ.
Триггеры пользовательских действий
Настраиваемое действие можно использовать для настройки триггеров действий, таких как , reactionsAdded
в соответствии с требованиями приложения бота. Средство тестирования автоматически заполняет необходимые свойства действия. Вы также можете изменить тип действия и добавить дополнительные свойства.
Выберите Макет пользовательского>действия действия.
Добавьте
messageReaction
, чтобы настроить действие в свойствеtype
и вызвать пользовательское действие.{ "type": "messageReaction", "reactionsAdded": [ { "type": "like" } ], "replyToId": "d60fd1cb-3e8f-44ef-849c-404806ba1b47" }
Выберите Отправить действие.
Бот отправляет
onReactionsAdded
обработчик в ответ.
Настройка контекста Teams
Файл конфигурации в корневой папке проекта позволяет настроить сведения о контексте Teams, такие как чаты, команды и пользователи. Файл содержит макетные данные для тестирования API Bot Framework или методов пакета SDK Bot Builder, таких как TeamsInfo.getTeamMembers
.
Конфигурация по умолчанию
Средство тестирования содержит встроенный файл конфигурации в корневой папке проекта.
# yaml-language-server: $schema=https://aka.ms/teams-app-test-tool-config/0.1.0/config.schema.json
# Visit https://aka.ms/teams-app-test-tool-config-guide for more details on this file.
# This configuration file customizes the Teams context information like chats, teams, and users.
# It contains mock data for testing Bot Framework APIs or Bot Builder SDK methods such as TeamsInfo.getTeamMembers().
# You can customize this file to change API response if your bot code uses these APIs.
version: "0.1.0"
tenantId: 00000000-0000-0000-0000-0000000000001
bot:
id: 00000000-0000-0000-0000-00000000000011
name: Test Bot
currentUser:
id: user-id-0
name: Alex Wilber
userPrincipleName: alexw@example.com
aadObjectId: 00000000-0000-0000-0000-0000000000020
givenName: Alex
surname: Wilber
email: alexw@example.com
users:
- id: user-id-1
name: Megan Bowen
userPrincipleName: meganb@example.com
aadObjectId: 00000000-0000-0000-0000-0000000000021
givenName: Megan
surname: Bowen
email: meganb@example.com
- id: user-id-2
name: Adele Vance
userPrincipleName: adelev@example.com
aadObjectId: 00000000-0000-0000-0000-0000000000022
givenName: Adele
surname: Vance
email: adelev@example.com
- id: user-id-3
name: Isaiah Langer
userPrincipleName: isaiah@example.com
aadObjectId: 00000000-0000-0000-0000-0000000000023
givenName: Isaiah
surname: Langer
email: isaiahl@example.com
- id: user-id-4
name: Patti Fernandez
userPrincipleName: pattif@example.com
aadObjectId: 00000000-0000-0000-0000-0000000000024
givenName: Patti
surname: Fernandez
email: pattif@example.com
- id: user-id-5
name: Lynne Robbins
userPrincipleName: lynner@example.com
aadObjectId: 00000000-0000-0000-0000-0000000000025
givenName: Lynne
surname: Robbins
email: lynner@example.com
personalChat:
id: personal-chat-id
groupChat:
id: group-chat-id
name: Group Chat
team:
id: team-id
name: My Team
aadGroupId: 00000000-0000-0000-0000-000000000031
channels:
- id: channel-announcements-id
name: Announcements
Обновление файла конфигурации
Если код бота использует API Bot Framework, вы можете изменить файл конфигурации, чтобы изменить ответ API. Рассмотрим бот для уведомлений Azure DevOps, установленный в команде, который извлекает неактивные ошибки из Azure DevOps. Он определяет владельцев неактивной ошибки, получает их адреса электронной почты и ежедневно отправляет уведомления в личные чаты.
Чтобы полностью протестировать этот бот в средстве тестирования, очень важно обновить файл конфигурации, чтобы использовать правильные адреса электронной почты владельцев неактивных ошибок.
Перейдите к файлу
.teamsapptesttool.yml
в корневой папке проекта.Перейдите в
users
раздел и обновитеname
,userPrincipleName
иemail
необходимого пользователя.users: - id: user-id-1 name: Megan Bowen userPrincipleName: meganb@example.com aadObjectId: 00000000-0000-0000-0000-0000000000021 givenName: Megan surname: Bowen email: some-real-user@real-domain.onmicrosoft.com
Сохраните файл и выберите F5 для отладки в средстве тестирования.
Примечание.
При изменении файла конфигурации в Visual Studio Code Intellisense автоматически обновляет имена свойств и предупреждает о вводе недопустимых значений.
Важно признать, что обновление файла конфигурации имеет три основных последствия:
- Он влияет на ответы, полученные от API-интерфейсов соединителя Bot Framework, например
TeamsInfo.getPagedMembers()
. - Он формирует сведения в полезных данных действия, например
activity.recipient
. - Это влияет на пользовательский интерфейс в средстве тестирования, например на имена групповых чатов.
Ограничения
Функции бота, включенные в манифест приложения Teams, недоступны, так как средство тестирования не обрабатывает их.
Средство тестирования поддерживает не все типы карточек, кроме адаптивных карточек.
Средство тестирования не поддерживает следующие функции адаптивной карточки:
Средство тестирования не поддерживает следующие возможности:
- Мобильная версия
- Собрание
Средство тестирования может эмулировать следующие возможности:
Возможности Отладка в средстве тестирования Локальная отладка приложения Teams Базовая отправка и получение сообщений Доступно Доступно API Bot Framework (TeamsInfo.getPagedMembers()... Доступно (ответ с помощью макетированных данных) Доступно Отправка событий Teams Доступно (имитация действия) Доступно Индикатор ввода Компонент недоступен Доступно Вкладка, расширение сообщений, диалоговые окна (называемые модулями задач в TeamsJS версии 1.x), единый вход (SSO) и неадаптивные карточки Компонент недоступен Доступно
Отладка существующего приложения с помощью средства тестирования
Убедитесь, что у вас есть существующий бот, созданный с помощью набора средств Teams. Чтобы выполнить отладку бота с помощью средства тестирования, выполните следующие действия.
Откройте папку проекта существующего бота в наборе средств Teams.
Перейдите в разделEXPLORER.vscode>.
Выберите launch.json и добавьте следующий код в конец файла:
// .vscode/launch.json { ... "compounds": [ ... { "name": "Debug in Test Tool", "configurations": [ "Attach to Local Service" ], "preLaunchTask": "Start Teams App (Test Tool)", "presentation": { "group": "1-local", "order": 1 }, "stopAll": true }, ] }
Перейдите к tasks.json и добавьте следующий код в конец файла:
{ "label": "Start Test Tool", "type": "shell", "command": "npm run dev:teamsfx:launch-testtool", "isBackground": true, "options": { "env": { "PATH": "${workspaceFolder}/devTools/teamsapptester/node_modules/.bin:${env:PATH}" } }, "windows": { "options": { "env": { "PATH": "${workspaceFolder}/devTools/teamsapptester/node_modules/.bin;${env:PATH}" } } }, "problemMatcher": { "pattern": [ { "regexp": "^.*$", "file": 0, "location": 1, "message": 2 } ], "background": { "activeOnStart": true, "beginsPattern": ".*", "endsPattern": "Listening on" } }, "presentation": { "panel": "dedicated", "reveal": "silent" } }, ], }
В разделе EXPLORER создайте файл .localConfigs.testtool и добавьте следующий код:
// .localConfigs.testTool # A gitignored place holder file for local runtime configurations when debug in test tool BOT_ID= BOT_PASSWORD= TEAMSFX_NOTIFICATION_STORE_FILENAME=.notification.testtoolstore.json
Перейдите в раздел Обозреватель>env.
Создайте файл .env.testtool и добавьте следующий код:
// .env.testtool # This file includes environment variables that can be committed to git. It's gitignored by default because it represents your local development environment # Built-in environment variables TEAMSFX_ENV=testtool # Environment variables used by test tool TEAMSAPPTESTER_PORT=56150
Если у вас есть настраиваемые переменные среды, задайте их значения в .env.testtool или .env.testtool.user.
Добавьте ключ OpenAI или ключ Azure OpenAI и конечную точку в .env.testtool.user.
# SECRET_OPENAI_API_KEY=*********** SECRET_AZURE_OPENAI_API_KEY=*********** SECRET_AZURE_OPENAI_ENDPOINT=<https://your-openai-service-name.openai.azure.com/>
Перейдите к package.json и добавьте следующий код в
scripts
свойство :"scripts": { ... "dev:teamsfx:testtool": "env-cmd --silent -f .localConfigs.testTool npm run dev", "dev:teamsfx:launch-testtool": "env-cmd --silent -f env/.env.testtool teamsapptester start", ... },
В области слева выберите Запуск и отладка (
Ctrl+Shift+D
) и выберите Отладка в средстве тестирования в раскрывающемся списке.
Средство тестирования успешно выполняет отладку существующего бота.
Вопросы и ответы
Как протестировать бота, если средство тестирования не поддерживает его функции?
Вы всегда можете использовать клиент Teams для тестирования функций, которые не поддерживаются средством тестирования. Выберите параметр Отладка в Teams (Edge) или Отладка в Teams (Chrome), чтобы протестировать приложение в клиенте Teams.
Как узнать, не поддерживает ли средство тестирования функции в боте?
Средство тестирования отображает предупреждающее сообщение в беседе и на панели журнала при обнаружении неподдерживаемых функций.
Рекомендует ли корпорация Майкрософт использовать только средство тестирования для тестирования приложений ботов?
Нет. Мы всегда рекомендуем пользователям протестировать приложение бота в клиенте Teams перед перемещением приложения в рабочую среду.
Пример кода
Название примера | Описание | Node.js |
---|---|---|
Пример приложения средства тестирования | Пример приложения бота для изучения средства тестирования. | View |
Пошаговые инструкции
Выполните пошаговые инструкции по отладке бота чата ИИ с помощью средства тестирования приложений Teams.
См. также
Platform Docs