Testen und Debuggen mit dem Emulator
GILT FÜR: SDK v4
Bot Framework Emulator ist eine Desktopanwendung, mit der Botentwickler Bots lokal oder remote testen und debuggen können. Über den Emulator können Sie mit Ihrem Bot chatten und die Nachrichten untersuchen, die Ihr Bot sendet und empfängt. Der Emulator zeigt Nachrichten so an wie in einer Webchat-Benutzeroberfläche und protokolliert JSON-Anforderungen und -Antworten, während Sie mit Ihrem Bot kommunizieren. Führen Sie Ihren Bot vor der Bereitstellung in der Cloud lokal aus, und testen Sie ihn mithilfe des Emulators. Sie können Ihren Bot mithilfe des Emulators testen, auch wenn Sie ihn noch nicht mit Azure Bot Service erstellt oder für die Ausführung auf kanälen konfiguriert haben.
Hinweis
Die Bot Framework-Python- und Java-SDKs werden eingestellt und die endgültige langfristige Unterstützung endet im November 2023. Es werden nur kritische Sicherheits- und Fehlerbehebungen innerhalb dieses Repositorys durchgeführt. Vorhandene Bots, die mit diesen SDKs erstellt wurden, funktionieren weiterhin.
Erwägen Sie für die Entwicklung neuer Bots die Verwendung von Power Virtual Agents. Weitere Informationen finden Sie unter Die Zukunft des Erstellens von Bots.
Voraussetzungen
- Installieren des Bot Framework-Emulator
Lokales Ausführen eines Bots
Bevor Sie Ihren Bot mit dem Bot Framework Emulator verbinden, müssen Sie ihn lokal ausführen. Sie können Visual Studio oder Visual Studio Code oder die Befehlszeile verwenden, um Ihren Bot auszuführen. Gehen Sie wie folgt vor, um einen Bot über die Befehlszeile auszuführen:
Wechseln Sie zur Eingabeaufforderung und dann zum Verzeichnis Ihres Botprojekts.
Starten Sie den Bot, indem Sie den folgenden Befehl ausführen:
dotnet run
Kopieren Sie die Portnummer in der Zeile vor Application started. Press CTRL+C to shut down. (Anwendung gestartet. Drücken Sie zum Herunterfahren STRG+C.).
Ihr Bot sollte jetzt lokal ausgeführt werden.
Verbinden mit auf Localhost ausgeführten Bots
Konfigurieren von Proxyeinstellungen
Wenn Sie hinter einem Unternehmensproxy entwickeln, verwendet der Emulator die konfigurierten Umgebungsvariablen HTTP_PROXY
und HTTPS_PROXY
, die die Proxy-URL-Route für HTTP- bzw. HTTPs-Anforderungen angeben.
Wenn Sie eine Verbindung mit einem Bot herstellen, der unter localhost
ausgeführt wird, versucht der Emulator zuerst, über den Proxy zu leiten, bevor er eine Verbindung mit herstellt localhost
. In der Regel blockiert der Proxy die Verbindung, es sei denn, Sie geben an, dass sie für localhost
umgangen werden soll.
Um die HTTP_PROXY
Einstellungen und HTTPS_PROXY
zu umgehen und dem Emulator die Verbindung mit zu localhost
zu ermöglichen, müssen Sie auf Ihrem lokalen Computer die folgende Umgebungsvariable definieren:
NO_PROXY=localhost
Konfigurieren des Emulators für die Authentifizierung
Wenn ein Bot eine Authentifizierung erfordert und ein Anmeldedialogfeld angezeigt wird, müssen Sie den Emulator wie unten dargestellt konfigurieren.
Verwenden eines Anmeldeüberprüfungscodes
- Starten Sie den Emulator.
- Wählen Sie im Emulator im linken Bereich Einstellungen (das Zahnradsymbol) aus.
- Aktivieren Sie ngrok umgehen für lokale Adressen.
- Aktivieren Sie Verwenden eines Anmeldeüberprüfungscodes für OAuthCards.
- Wählen Sie Speichern aus.
Wenn Sie die vom Bot angezeigte Anmeldeschaltfläche auswählen, wird ein Validierungscode generiert. Sie geben den Code in das Feld Boteingabechat ein, damit die Authentifizierung erfolgen soll. Danach können die zulässigen Vorgänge ausgeführt werden.
Alternativ können Sie die unten beschriebenen Schritte ausführen.
Verwenden von Authentifizierungstoken
- Starten Sie den Emulator.
- Wählen Sie im Emulator im linken Bereich Einstellungen (das Zahnradsymbol) aus.
- Geben Sie den lokalen Pfad zu ngrok ein. Weitere Informationen zu ngrok finden Sie unter ngrok.
- Aktivieren Sie ngrok ausführen, wenn der Emulator gestartet wird.
- Aktivieren Sie Authentifizierungstoken der Version 1.0 verwenden.
- Wählen Sie Speichern aus.
Wenn Sie die vom Bot angezeigte Anmeldeschaltfläche auswählen, werden Sie aufgefordert, Ihre Anmeldeinformationen einzugeben. Ein Authentifizierungstoken wird generiert. Danach können die zulässigen Vorgänge ausgeführt werden.
Um eine Verbindung mit einem lokal ausgeführten Bot herzustellen, wählen Sie Bot öffnen aus. Fügen Sie die zuvor kopierte Portnummer der folgenden URL hinzu, und fügen Sie die aktualisierte URL in der Bot-URL-Leiste ein:
http://localhost:<port number>/api/messages
Geben Sie auch die Anmeldeinformationen des Microsoft-Kontos ein, falls Ihr Bot damit ausgeführt wird.
Verwenden von Bot-Anmeldeinformationen
Wenn Sie den Bot öffnen, legen Sie die Microsoft-App-ID und das Microsoft-App-Kennwort fest, falls Ihr Bot mit Anmeldeinformationen ausgeführt wird. Wenn Sie Ihren Bot mit dem Azure-Bot Service erstellt haben, sind die Anmeldeinformationen im App Service des Bots im Abschnitt Einstellungen –> Konfiguration verfügbar. Wenn Sie die Werte nicht kennen, können Sie diese aus der Konfigurationsdatei des lokal ausgeführten Bots entfernen und dann den Bot im Emulator ausführen. Wenn der Bot nicht mit diesen Einstellungen ausgeführt wird, müssen Sie den Emulator auch nicht mit den Einstellungen ausführen.
Beachten Sie beim Erstellen einer AD-Identitätsanbieteranwendung Folgendes:
- Wenn der unterstützte Kontotyp auf einen einzelnen Mandanten festgelegt ist und Sie ein persönliches Abonnement anstelle eines Microsoft-Kontos verwenden, gibt der Emulator den folgenden Fehler aus: Die Microsoft App-ID oder das Microsoft App-Kennwort des Bots ist falsch.
- In diesem Fall muss für die unterstützten Kontotypen die Option Konten in allen Organisationsverzeichnissen (beliebiges Azure AD-Verzeichnis: mehrere Mandanten) und persönliche Microsoft-Konten (z. B. Xbox) ausgewählt werden.
Weitere Informationen finden Sie unter Erstellen einer Azure AD-Identitätsanbieteranwendung und Registrieren einer neuen Anwendung mithilfe der Azure-Portal.
Anzeigen detaillierter Nachrichtenaktivitäten mit dem Inspektor
Senden Sie eine Nachricht an Ihren Bot. Der Bot sollte dann mit einer Antwort reagieren. Sie können im Konversationsfenster eine Nachrichtenblase auswählen und die unformatierte JSON-Aktivität mit der Funktion INSPECTOR rechts neben dem Fenster überprüfen. Bei Auswahl wird die Nachrichtenblase gelb und das JSON-Aktivitätsobjekt wird links neben dem Chatfenster angezeigt. Die JSON-Informationen enthalten wichtige Metadaten z. B. Kanal-ID, Aktivitätstyp, Konversations-ID, Textnachricht, Endpunkt-URL usw. Sie können vom Benutzer gesendete Aktivitäten und Aktivitäten überprüfen, mit denen der Bot antwortet.
Tipp
Sie können Zustandsänderungen für einen mit einem Kanal verbundenen Bot debuggen, indem Sie ihm Middleware zur Überprüfung hinzufügen.
Dienste überprüfen
Hinweis
Azure QnA Maker wird am 31. März 2025 eingestellt. Ab dem 1. Oktober 2022 können Sie keine neuen QnA Maker-Ressourcen oder Wissensdatenbanken erstellen. Eine neuere Version der Frage- und Antwortfunktion ist jetzt als Teil des Azure Cognitive Service für Language verfügbar.
Benutzerdefinierte Fragen und Antworten, ein Feature von Azure Cognitive Service für Sprache, ist die aktualisierte Version des QnA Maker-Diensts. Weitere Informationen zur Unterstützung von Fragen und Antworten im Bot Framework SDK finden Sie unter Verstehen von natürlicher Sprache.
Hinweis
Language Understanding (LUIS) wird am 1. Oktober 2025 eingestellt. Ab dem 1. April 2023 können Sie keine neuen LUIS-Ressourcen erstellen. Eine neuere Version von Language Understanding ist jetzt als Teil von Azure Cognitive Service für Language verfügbar.
Conversational Language Understanding (CLU), ein Feature von Azure Cognitive Service for Language, ist die aktualisierte Version von LUIS. Weitere Informationen zur Sprachverständnisunterstützung im Bot Framework SDK finden Sie unter Verstehen von natürlicher Sprache.
Mit dem Emulator können Sie auch die JSON-Antworten von LUIS und QnA Maker überprüfen. Wenn Sie einen Bot mit einem verbundenen Sprachdienst verwenden, können Sie im Protokollfenster (LOG) unten rechts trace auswählen. Dieses neue Tool bietet auch Features zum Aktualisieren Ihrer Sprachdienste direkt über den Emulator.
Bei einem verbundenen LUIS-Dienst gibt der Ablaufverfolgungslink die Luis-Ablaufverfolgung an. Wenn diese Option ausgewählt ist, wird die unformatierte Antwort Ihres LUIS-Diensts angezeigt, die Absichten und Entitäten sowie die angegebenen Bewertungen enthält. Sie können Absichten für Ihre Benutzeräußerungen neu zuweisen.
Bei einem verbundenen QnA Maker-Dienst wird im Protokoll die QnA-Ablaufverfolgung angezeigt. Wenn diese Option ausgewählt ist, können Sie eine Vorschau des Frage-Antwort-Paars anzeigen, das dieser Aktivität zugeordnet ist, zusammen mit einer Zuverlässigkeitsbewertung. Dann können Sie alternative Fragen für eine Antwort formulieren.
Anmelden bei Azure
Sie können den Emulator verwenden, um sich bei Ihrem Azure-Konto anzumelden. Dies ist hilfreich für Sie, um Dienste hinzuzufügen und zu verwalten, von der Ihr Bot abhängt. So melden Sie sich an:
Wählen Sie Datei und dann Mit Azure anmelden aus.
Wählen Sie auf der Willkommensseitemit Ihrem Azure-Konto anmelden aus. Optional können Sie emulatorübergreifend bei Anwendungsneustarts angemeldet lassen.
Deaktivieren der Datensammlung
Wenn Sie sich dafür entscheiden, dass Sie für den Emulator das Erfassen von Nutzungsdaten nicht mehr zulassen möchten, können Sie die Datensammlung mit den folgenden Schritten leicht deaktivieren:
Wählen Sie im Emulator im linken Bereich Einstellungen (das Zahnradsymbol) aus.
Deaktivieren Sie unter Datensammlungdie Option Helfen, den Emulator zu verbessern, indem wir Nutzungsdaten sammeln können.
Wählen Sie Speichern aus.
Wenn Sie Ihre Meinung ändern, können Sie die Datensammlung später wieder aktivieren.
Zusätzliche Ressourcen
Der Bot Framework-Emulator ist eine Open Source-Ressource. Sie können zur Entwicklung beitragen sowie Fehler melden und Vorschläge einbringen.
Informationen zur Problembehandlung finden Sie unter Behandeln allgemeiner Probleme und in den anderen Artikeln zur Problembehandlung in diesem Abschnitt.
Nächster Schritt
Verwenden Sie die Middleware zur Überprüfung, um einen mit einem Kanal verbundenen Bot zu debuggen.