Средство тестирования приложений Teams

Примечание.

Средство тестирования приложений Teams доступно в последней предварительной версии набора средств Microsoft Teams. Убедитесь, что установлена последняя предварительная версия набора средств Teams.

Средство тестирования приложений Teams (средство тестирования) упрощает отладку приложений на основе ботов. Вы можете общаться с ботом и просматривать его сообщения и адаптивные карточки, как они отображаются в Microsoft Teams. Для использования средства тестирования не требуется учетная запись разработчика Microsoft 365, туннелирование или регистрация приложения Teams и бота.

На следующем рисунке показан пример приложения, отображающего адаптивную карточку со списком команд в средстве тестирования. Он также содержит описание команд, чтобы можно было протестировать приложение без ручного поиска в коде:

Снимок экрана: адаптивная карточка средства тестирования приложений 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.

  1. Откройте Visual Studio Code.

  2. Щелкните значок Набора средств Teams на панели действий Visual Studio Code.

  3. Выберите Создать новое приложение.

    Снимок экрана: расположение ссылки

  4. Выберите Бот.

    Снимок экрана: шаблоны приложений Teams Toolkit.

  5. Выберите AI Chat Bot. Если вам нужны другие функции для бота, выберите другой вариант.

    Снимок экрана: функция приложения, добавляемая в новое приложение.

  6. Выберите JavaScript.

    Снимок экрана: выбор языка программирования.

  7. Выберите Папка по умолчанию.

    Снимок экрана: выбор расположения по умолчанию.

    Чтобы изменить расположение по умолчанию, выполните следующие действия.

    1. Нажмите кнопку Обзор.

      Снимок экрана: выбор параметра

    2. Выберите расположение рабочей области проекта.

    3. Выберите Выбрать папку.

      Снимок экрана: выбранная папка.

  8. Введите подходящее имя для приложения, а затем нажмите клавишу ВВОД .

    Снимок экрана: где ввести имя приложения.

    Появится диалоговое окно, в котором необходимо выбрать да или нет, чтобы доверять авторам файлов в этой папке.

    Снимок экрана: диалоговое окно с доверием или отсутствием авторов файлов в этой папке.

  9. В области слева выберите Запуск и отладка (Ctrl+Shift+D) и выберите Отладка в средстве тестирования (предварительная версия) в раскрывающемся списке.

    Снимок экрана: параметр для выбора отладки в средстве тестирования.

  10. Средство тестирования открывает бот на веб-странице.

    Снимок экрана: бот, открытый в средстве тестирования.

Триггеры действий

Вы можете макетировать действие в средстве тестирования с помощью триггеров действий. Существует два типа триггеров действий:

  1. Предопределенные триггеры действий
  2. Триггеры пользовательских действий

Предопределенные триггеры действий

Средство тестирования предоставляет стандартные триггеры действий для проверки функциональных возможностей бота.

Категория Действие Обработчик
Активация действия обновления установки Установка бота


Удаление бота
onInstallationUpdate
onInstallationUpdateAdded

onInstallationUpdate
onInstallationUpdateRemove
Активация действия обновления беседы Добавление пользователя

Добавление бота

Добавление канала
onMembersAdded

onTeamsMembersAddedEvent

onTeamsChannelRenamedEvent
Удаление пользователя


Удаление бота


Удаление канала

Удаление команды
onMembersRemoved
onTeamsMembersRemovedEvent

onMembersRemoved
onTeamsMembersRemovedEvent

onTeamsChannelDeletedEvent

onTeamsTeamDeletedEvent
Переименование канала

Переименование команды
onTeamsChannelRenamedEvent

onTeamsTeamRenamedEvent

Примечание.

Все типы действий доступны не во всех областях. Например, нельзя добавить или удалить канал в личном или групповом чате.

Предопределенные триггеры действий доступны в меню Макет действия в средстве тестирования.

Чтобы имитировать действие add user , сделайте следующее:

  1. В средстве тестирования перейдите в раздел Макет действия и выберите Добавить пользователя.

    Снимок экрана: параметр

    Появится всплывающее окно для предварительного просмотра обработчика действий.

  2. Выберите Отправить действие.

    Снимок экрана: параметр отправки действий для предопределенного действия макета добавления пользователя.

    Бот отправляет ответ.

    Снимок экрана: ответ на добавление пользователя предопределенного действия макета.

Триггеры пользовательских действий

Настраиваемое действие можно использовать для настройки триггеров действий, таких как , reactionsAddedв соответствии с требованиями приложения бота. Средство тестирования автоматически заполняет необходимые свойства действия. Вы также можете изменить тип действия и добавить дополнительные свойства.

  1. Выберите Макет пользовательского>действия действия.

    Снимок экрана: список параметров в разделе Макет действия.

  2. Добавьте messageReaction , чтобы настроить действие в свойстве type и вызвать пользовательское действие.

    {
      "type": "messageReaction",
      "reactionsAdded": [
        {
          "type": "like"
        }
      ],
      "replyToId": "d60fd1cb-3e8f-44ef-849c-404806ba1b47"
    }
    
  3. Выберите Отправить действие.

    Снимок экрана: параметр отправки действия после настройки действия макета.

    Бот отправляет 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. Он определяет владельцев неактивной ошибки, получает их адреса электронной почты и ежедневно отправляет уведомления в личные чаты.

Чтобы полностью протестировать этот бот в средстве тестирования, очень важно обновить файл конфигурации, чтобы использовать правильные адреса электронной почты владельцев неактивных ошибок.

  1. Перейдите к файлу .teamsapptesttool.yml в корневой папке проекта.

  2. Перейдите в 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
    
  3. Сохраните файл и выберите 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. Чтобы выполнить отладку бота с помощью средства тестирования, выполните следующие действия.

  1. Откройте папку проекта существующего бота в наборе средств Teams.

  2. Перейдите в разделEXPLORER.vscode>.

  3. Выберите 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 
            }, 
        ] 
    } 
    
  4. Перейдите к 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" 
          } 
        }, 
      ],
    }
    
  5. В разделе 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
    
  6. Перейдите в раздел Обозреватель>env.

  7. Создайте файл .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
    
  8. Если у вас есть настраиваемые переменные среды, задайте их значения в .env.testtool или .env.testtool.user.

  9. Добавьте ключ 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/>
    
  10. Перейдите к 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", 
        ... 
    },
    
  11. В области слева выберите Запуск и отладка (Ctrl+Shift+D) и выберите Отладка в средстве тестирования в раскрывающемся списке.

    Снимок экрана: параметр для выбора отладки в средстве тестирования.

Средство тестирования успешно выполняет отладку существующего бота.

Вопросы и ответы

Как протестировать бота, если средство тестирования не поддерживает его функции?

Вы всегда можете использовать клиент Teams для тестирования функций, которые не поддерживаются средством тестирования. Выберите параметр Отладка в Teams (Edge) или Отладка в Teams (Chrome), чтобы протестировать приложение в клиенте Teams.
 

Как узнать, не поддерживает ли средство тестирования функции в боте?

Средство тестирования отображает предупреждающее сообщение в беседе и на панели журнала при обнаружении неподдерживаемых функций.

Снимок экрана: предупреждение о неподдерживаемой функции.
 

Рекомендует ли корпорация Майкрософт использовать только средство тестирования для тестирования приложений ботов?

Нет. Мы всегда рекомендуем пользователям протестировать приложение бота в клиенте Teams перед перемещением приложения в рабочую среду.
 

Пример кода

Название примера Описание Node.js
Пример приложения средства тестирования Пример приложения бота для изучения средства тестирования. View

Пошаговые инструкции

Выполните пошаговые инструкции по отладке бота чата ИИ с помощью средства тестирования приложений Teams.

См. также