Teams-App-Testtool

Hinweis

Das Teams App-Testtool ist in der neuesten Vorabversion des Microsoft Teams-Toolkits verfügbar. Stellen Sie sicher, dass Sie die neueste Vorabversion des Teams-Toolkits installieren.

Das Teams App-Testtool (Testtool) ermöglicht das mühelose Debuggen von botbasierten Apps. Sie können mit Ihrem Bot chatten und seine Nachrichten und adaptive Karten anzeigen, wie sie in Microsoft Teams angezeigt werden. Sie benötigen kein Microsoft 365-Entwicklerkonto, Tunneling oder eine Teams-App- und Bot-Registrierung, um das Testtool verwenden zu können.

Die folgende Abbildung zeigt eine Beispiel-App, die eine adaptive Karte mit einer Liste von Befehlen im Testtool anzeigt. Es enthält auch eine Beschreibung der Befehle, damit Sie Ihre App testen können, ohne ihren Code manuell zu durchsuchen:

Screenshot: Adaptive Karte des Teams-App-Testtools

Im Folgenden sind die Vorteile des Testtools aufgeführt:

  • Sandboxumgebung: Die Sandboxumgebung des Testtools emuliert das Verhalten, aussehen und die Benutzererfahrung von Teams.

  • Tunneling: Ein externer Tunneldienst ist nicht erforderlich, da das Testtool auf einem lokalen Server ausgeführt wird, mit dem Ihr Bot kommunizieren kann.

  • Reduzieren von Kontoabhängigkeiten: Der Microsoft 365-Entwicklermandant und die App-Uploadberechtigungen sind zum Debuggen des Bots nicht erforderlich.

  • Schnelle Iterationen in inneren Schleifen: Optimiert den Prozess der Änderungen am App-Design und der Botlogik, ohne den Bot erneut in der Cloud bereitstellen zu müssen.

  • Modelldaten und Aktivitäten: Das Testtool erleichtert das Testen komplexer Szenarien, z. B. das Senden einer Begrüßungsnachricht, wenn ein neues Mitglied dem Kanal beitritt, mithilfe von Pseudodaten und Aktivitätstriggern.

  • Zuverlässig: Das Testtool ist zuverlässig, da die adaptive Karte des Bots dieselbe Renderingtechnologie wie in Teams verwendet.

  • Integration in vorhandene Teams-Botanwendungen: Das Testtool lässt sich mühelos in vorhandene Teams-Botanwendungen integrieren, die mit dem Bot Framework SDK erstellt wurden.

  • Unterstützung für verschiedene Bereiche: Das Testtool unterstützt Tests in persönlichen, Team- und Gruppenchatbereichen.

Voraussetzungen

Stellen Sie sicher, dass Sie die folgenden Tools zum Erstellen und Bereitstellen Ihrer Bots im Testtool installieren:

  Installieren Zum Benutzen...
  Teams Toolkit Eine Microsoft Visual Studio Code-Erweiterung, die ein Projektgerüst für Ihre App erstellt. Verwenden Sie die neueste Vorabversion.
  Node.js Back-End-JavaScript-Laufzeitumgebung. Weitere Informationen finden Sie unter Node.js Versionskompatibilitätstabelle für den Projekttyp.
  Visual Studio Code Build-Umgebungen für JavaScript, TypeScript oder SharePoint Framework (SPFx). Verwenden Sie die neueste Version.

Grundlegendes zum Testtool

Das Testtool ist ein npm-Paket mit einem CLI-Befehl namens teamsapptester. Wenn Sie ausführen teamsapptester start, wird eine Web-App auf Ihrem lokalen Computer geöffnet, die den Teams-Webclient und den Bot Framework-Dienst emuliert. Diese Web-App benötigt keine Cloudressourcen, da sie Simulierte Daten verwendet, um die Kontextinformationen von Teams zu simulieren.

Um einen Teams-Bot im Testtool verwenden zu können, müssen Sie Folgendes bereitstellen:

  • Nachrichtenendpunkt: Ein Botnachrichtenendpunkt ist die URL, die Testtool und Ihren Bot verknüpft. Sie können den Endpunkt mit der Umgebungsvariablen BOT_ENDPOINT aktualisieren oder den Standardwert verwenden http://localhost:3978/api/messages.
  • Konfigurationsdatei (optional): Eine Konfigurationsdatei informiert das Testtool über Ihre angepassten Kontextinformationen in Teams. Die Datei hat den Namen .teamsapptesttool.yml im Stammordner des Projekts. Wenn Teams diese Datei nicht finden kann, wird die Standardkonfiguration verwendet. Weitere Informationen finden Sie unter Anpassen des Teams-Kontexts.

Testen der Toolerfahrung im Teams-Toolkit

Das Testtool bietet eine schnellere Debugerfahrung für Botanwendungen im Vergleich zum Teams-Client.

  1. Öffnen Sie Visual Studio Code.

  2. Wählen Sie das Symbol Teams Toolkit in der Visual Studio Code-Aktivitätsleiste aus.

  3. Wählen Sie Neue App erstellen aus.

    Screenshot: Position des Links

  4. Wählen Sie Bot aus.

    Screenshot: Teams Toolkit-App-Vorlagen

  5. Wählen Sie AI Chat Bot aus. Wenn Sie eine andere Funktionalität für Ihren Bot benötigen, wählen Sie eine andere Option aus.

    Screenshot: App-Feature, das Ihrer neuen App hinzugefügt werden soll

  6. Wählen Sie JavaScript aus.

    Screenshot: Option zum Auswählen der Programmiersprache

  7. Wählen Sie Standardordner aus.

    Screenshot: Auswahl des Standardspeicherorts

    Führen Sie die folgenden Schritte aus, um den Standardspeicherort zu ändern:

    1. Wählen Sie Durchsuchen aus.

      Screenshot: Auswahl der Option

    2. Wählen Sie den Speicherort für den Projektarbeitsbereich aus.

    3. Wählen Sie Ordner auswählen aus.

      Screenshot: Ordner, der ausgewählt werden soll

  8. Geben Sie einen geeigneten Namen für Ihre App ein, und drücken Sie dann die EINGABETASTE .

    Screenshot: Eingabe des App-Namens

    Es wird ein Dialogfeld angezeigt, in dem Sie ja oder nein auswählen müssen, um den Autoren der Dateien in diesem Ordner zu vertrauen.

    Screenshot: Dialogfeld zum Vertrauen in die Autoren der Dateien in diesem Ordner.

  9. Wählen Sie im linken Bereich Ausführen und Debuggen (Ctrl+Shift+D) und dann in der Dropdownliste Debuggen im Testtool (Vorschau) aus.

    Screenshot: Option zum Auswählen von

  10. Das Testtool öffnet den Bot auf einer Webseite.

    Screenshot: Geöffneter Bot im Testtool

Aktivitätstrigger

Sie können eine Aktivität im Testtool mithilfe von Aktivitätstriggern simulieren. Es gibt zwei Arten von Aktivitätstriggern:

  1. Vordefinierte Aktivitätstrigger
  2. Benutzerdefinierte Aktivitätstrigger

Vordefinierte Aktivitätstrigger

Das Testtool stellt vordefinierte Aktivitätstrigger zum Testen der Funktionen Ihres Bots bereit.

Kategorie Aktivität Handler
Auslösen der Updateaktivität für die Installation Installieren des Bots


Deinstallieren des Bots
onInstallationUpdate
onInstallationUpdateAdded

onInstallationUpdate
onInstallationUpdateRemove
Auslösen der Konversationsaktualisierungsaktivität Benutzer hinzufügen

Bot hinzufügen

Kanal hinzufügen
onMembersAdded

onTeamsMembersAddedEvent

onTeamsChannelRenamedEvent
Entfernen eines Benutzers


Bot entfernen


Kanal entfernen

Team entfernen
onMembersRemoved
onTeamsMembersRemovedEvent

onMembersRemoved
onTeamsMembersRemovedEvent

onTeamsChannelDeletedEvent

onTeamsTeamDeletedEvent
Kanal umbenennen

Team umbenennen
onTeamsChannelRenamedEvent

onTeamsTeamRenamedEvent

Hinweis

Nicht alle Arten von Aktivitäten sind in allen Bereichen verfügbar. Sie können z. B. keinen Kanal in einem persönlichen Chat oder einem Gruppenchat hinzufügen oder entfernen.

Vordefinierte Aktivitätstrigger sind im Testtool im Menü Aktivität simulieren verfügbar.

Führen Sie die folgenden Schritte aus, um eine Benutzer hinzufügen-Aktivität zu simulieren:

  1. Wechseln Sie im Testtool zu Aktivität simulieren , und wählen Sie Benutzer hinzufügen aus.

    Screenshot: Option

    Ein Popupfenster wird angezeigt, um eine Vorschau des Aktivitätshandlers anzuzeigen.

  2. Wählen Sie Aktivität senden aus.

    Screenshot: Option zum Senden von Aktivitäten für vordefinierte Pseudoaktivität zum Hinzufügen eines Benutzers

    Der Bot sendet eine Antwort.

    Screenshot: Antwort der vordefinierten Pseudoaktivität zum Hinzufügen eines Benutzers

Benutzerdefinierte Aktivitätstrigger

Sie können die benutzerdefinierte Aktivität verwenden, reactionsAddedum Aktivitätstrigger wie , an die Anforderungen Ihrer Bot-App anzupassen. Das Testtool füllt automatisch die erforderlichen Eigenschaften der Aktivität auf. Sie können auch den Aktivitätstyp ändern und weitere Eigenschaften hinzufügen.

  1. Wählen SieBenutzerdefinierte Aktivität>simulieren aus.

    Screenshot: Liste der Optionen unter

  2. Fügen Sie hinzu messageReaction , um die Aktivität unter der -Eigenschaft type anzupassen und die benutzerdefinierte Aktivität aufzurufen.

    {
      "type": "messageReaction",
      "reactionsAdded": [
        {
          "type": "like"
        }
      ],
      "replyToId": "d60fd1cb-3e8f-44ef-849c-404806ba1b47"
    }
    
  3. Wählen Sie Aktivität senden aus.

    Screenshot: Option zum Senden von Aktivitäten nach der Anpassung der Pseudoaktivität

    Der Bot sendet als Antwort einen onReactionsAdded Handler.

    Screenshot: Antwort der benutzerdefinierten Pseudoaktivität

Anpassen des Teams-Kontexts

Mit der Konfigurationsdatei im Stammordner des Projekts können Sie Teams-Kontextinformationen wie Chats, Teams und Benutzer anpassen. Die Datei enthält Modelldaten zum Testen von Bot Framework-APIs oder Bot Builder SDK-Methoden wie TeamsInfo.getTeamMembers.

Standardkonfiguration

Das Testtool enthält eine integrierte Konfigurationsdatei im Stammordner des Projekts.
# 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

Aktualisieren der Konfigurationsdatei

Wenn Ihr Botcode Bot Framework-APIs verwendet, können Sie die Konfigurationsdatei ändern, um die API-Antwort zu ändern. Betrachten wir einen Azure DevOps-Benachrichtigungsbot, der in einem Team installiert ist und inaktive Fehler aus Azure DevOps abruft. Es identifiziert die Besitzer des inaktiven Fehlers, ruft ihre E-Mail-Adressen ab und sendet täglich Benachrichtigungen an ihre persönlichen Chats.

Um diesen Bot im Testtool umfassend zu testen, ist es wichtig, die Konfigurationsdatei so zu aktualisieren, dass die richtigen E-Mail-Adressen der Besitzer der inaktiven Fehler verwendet werden.

  1. Wechseln Sie zur .teamsapptesttool.yml Datei im Stammordner des Projekts.

  2. Wechseln Sie zum users Abschnitt, userPrincipleNameund aktualisieren Sie , nameund email des erforderlichen Benutzers.

    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. Speichern Sie die Datei, und wählen Sie F5 aus, um im Testtool zu debuggen.

Hinweis

Wenn Sie die Konfigurationsdatei in Visual Studio Code bearbeiten, aktualisiert IntelliSense automatisch die Eigenschaftennamen und warnt Sie, wenn Sie ungültige Werte eingeben.

Es ist wichtig zu erkennen, dass das Aktualisieren der Konfigurationsdatei drei wesentliche Auswirkungen hat:

  • Sie beeinflusst die Antworten, die von Bot Framework Connector-APIs abgerufen werden, TeamsInfo.getPagedMembers()z. B. .
  • Es formt die Details in der Aktivitätsnutzlast, activity.recipientz. B. .
  • Dies wirkt sich auf die Benutzeroberfläche im Testtool aus, z. B. Gruppenchatnamen.

Begrenzungen

  • Botfeatures, die über das Teams-App-Manifest aktiviert werden, sind nicht verfügbar, da es vom Testtool nicht verarbeitet wird.

  • Das Testtool unterstützt nicht alle Arten von Karten mit Ausnahme von adaptiven Karten.

  • Das Testtool unterstützt die folgenden Features für adaptive Karten nicht:

  • Das Testtool unterstützt die folgenden Funktionen nicht:

    • Mobil
    • Besprechung
  • Das Testtool kann die folgenden Funktionen emulieren:

    Features Debuggen im Testtool Lokales Debuggen Ihrer Teams-App
    Grundlegendes Senden/Empfangen von Nachrichten Verfügbar Verfügbar
    Bot Framework-APIs (TeamsInfo.getPagedMembers()...) Verfügbar (Antworten mit simulierten Daten) Verfügbar
    Senden von Teams-Ereignissen Verfügbar (Pseudoaktivität) Verfügbar
    Eingabeindikator Nicht verfügbar Verfügbar
    Registerkarte, Nachrichtenerweiterung, Dialoge (in TeamsJS v1.x als Aufgabenmodule bezeichnet), Einmaliges Anmelden (Single Sign-On, SSO) und nicht adaptive Karten Nicht verfügbar Verfügbar

Debuggen einer vorhandenen App mit dem Testtool

Stellen Sie sicher, dass Sie einen vorhandenen Bot mit dem Teams Toolkit erstellt haben. Führen Sie die folgenden Schritte aus, um Ihren Bot mit dem Testtool zu debuggen:

  1. Öffnen Sie den Projektordner des vorhandenen Bots im Teams Toolkit.

  2. Wechseln Sie zu EXPLORER.vscode>.

  3. Wählen Sie launch.json aus, und fügen Sie den folgenden Code am Ende der Datei hinzu:

    // .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. Wechseln Sie zu tasks.json , und fügen Sie den folgenden Code am Ende der Datei hinzu:

        { 
          "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. Erstellen Sie unter EXPLORER eine .localConfigs.testtool-Datei , und fügen Sie den folgenden Code hinzu:

    // .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. Wechseln Sie zu EXPLORER>env.

  7. Erstellen Sie eine .env.testtool-Datei , und fügen Sie den folgenden Code hinzu:

    // .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. Wenn Sie über benutzerdefinierte Umgebungsvariablen verfügen, legen Sie deren Werte in .env.testtool oder .env.testtool.user fest.

  9. Fügen Sie entweder einen OpenAI-Schlüssel oder einen Azure OpenAI-Schlüssel und -Endpunkt in .env.testtool.user hinzu.

    # SECRET_OPENAI_API_KEY=***********
    SECRET_AZURE_OPENAI_API_KEY=***********
    SECRET_AZURE_OPENAI_ENDPOINT=<https://your-openai-service-name.openai.azure.com/>
    
  10. Wechseln Sie zu package.json , und fügen Sie den folgenden Code unter der scripts -Eigenschaft hinzu:

    "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. Wählen Sie im linken Bereich Ausführen und Debuggen (Ctrl+Shift+D) und dann in der Dropdownliste Testtool debuggen aus.

    Screenshot: Option zum Auswählen von

Das Testtool debuggt erfolgreich Ihren vorhandenen Bot.

FAQ

Wie kann ich meinen Bot testen, wenn das Testtool seine Features nicht unterstützt?

Sie können den Teams-Client immer verwenden, um die Features zu testen, die das Testtool nicht unterstützt. Wählen Sie die Option Debuggen in Teams (Edge) oder Debuggen in Teams (Chrome) aus, um Ihre Anwendung im Teams-Client zu testen.
 

Wie würde ich feststellen, ob das Testtool keine Features in meinem Bot unterstützt?

Das Testtool zeigt eine Warnmeldung im Unterhaltungs- und Protokollbereich an, wenn es nicht unterstützte Features erkennt.

Screenshot: Warnmeldung eines nicht unterstützten Features
 

Empfiehlt Microsoft, nur das Testtool zum Testen von Botanwendungen zu verwenden?

Nein Benutzern wird immer empfohlen, ihre Botanwendung im Teams-Client zu testen, bevor sie in die Produktionsumgebung verschoben werden.
 

Codebeispiel

Beispielname Beschreibung Node.js
Testtool-Beispiel-App Eine Beispiel-Bot-App zum Testen des Testtools. View

Schrittweise Anleitung

Befolgen Sie die Schritt-für-Schritt-Anleitung zum Debuggen eines KI-Chatbots mit dem Teams App Test Tool.

Siehe auch