에뮬레이터를 사용 하 여 디버그Debug with the Emulator

적용 대상: SDK v4APPLIES TO: SDK v4

Bot Framework 에뮬레이터는 bot 개발자가 로컬 또는 원격으로 봇을 테스트 하 고 디버그할 수 있도록 하는 데스크톱 응용 프로그램입니다.Bot Framework Emulator is a desktop application that allows bot developers to test and debug bots, either locally or remotely. 에뮬레이터를 사용 하 여 봇과 채팅 하 고 봇에서 보내고 받는 메시지를 검사할 수 있습니다.Using the Emulator, you can chat with your bot and inspect the messages that your bot sends and receives. 에뮬레이터는 웹 채팅 UI에 표시 되는 메시지를 표시 하 고, 사용자의 봇과 메시지를 교환할 때 JSON 요청 및 응답을 기록 합니다.The Emulator displays messages as they would appear in a web chat UI and logs JSON requests and responses as you exchange messages with your bot. 클라우드에 배포 하기 전에 봇을 로컬로 실행 하 고 에뮬레이터를 사용 하 여 테스트 합니다.Before you deploy your bot to the cloud, run it locally and test it using the Emulator. Azure Bot Service를 사용 하 여 아직 만들지 않았거나 모든 채널에서 실행 되도록 구성 하지 않은 경우에도 에뮬레이터를 사용 하 여 봇을 테스트할 수 있습니다.You can test your bot using the Emulator even if you haven't yet created it with Azure Bot Service or configured it to run on any channels.

사전 요구 사항Prerequisites

로컬로 봇 실행Run a bot locally

봇을 Bot Framework Emulator에 연결하려면 먼저 봇을 로컬로 실행해야 합니다.Before connecting your bot to the Bot Framework Emulator, you need to run your bot locally. Visual Studio 또는 Visual Studio Code를 사용하여 봇을 실행해도 되고, 명령줄을 사용해도 됩니다.You can use Visual Studio or Visual Studio Code to run your bot, or use command line. 명령줄을 사용하여 봇을 실행하려면 다음을 수행합니다.To run a bot using command line, do the following:

  • 명령줄 프롬프트로 이동하여 디렉터리를 봇 프로젝트 디렉터리로 변경합니다.Go to the command prompt and change directory to your bot project directory.

  • 다음 명령을 실행하여 봇을 시작합니다.Start the bot by running the following command:

    dotnet run
    
  • Application started. Press CTRL+C to shut down 앞줄의 포트 번호를 복사합니다.Copy the port number in the line before Application started. Press CTRL+C to shut down.

    C# 포트 번호

이제 봇이 로컬로 실행됩니다.At this point, your bot should be running locally.

로컬 호스트에서 실행되는 봇에 연결Connect to a bot running on localhost

프록시 설정 구성Configure proxy settings

회사 프록시 뒤에서 개발 하는 경우 에뮬레이터는 구성 된 환경 변수 및를 사용 합니다 .이 변수는 HTTP_PROXY HTTPS_PROXY 각각 HTTP 및 HTTPs 요청에 대 한 프록시 URL 경로를 지정 합니다.When you are developing behind a corporate proxy, the Emulator will use the configured environment variables HTTP_PROXY and HTTPS_PROXY, which specify the proxy URL route for HTTP and HTTPs requests respectively.

에서 실행 되는 bot에 연결 하는 경우 localhost 에뮬레이터는 먼저에 연결 하기 전에 프록시를 통해 라우트를 시도 localhost 합니다.If you are connecting to a bot running on localhost, the Emulator will first try to route through the proxy before connecting to localhost. 일반적으로 프록시는에 대해 우회 되도록 지정 하지 않는 한 연결을 차단 합니다 localhost .Typically, the proxy will block the connection unless you specify that it should be bypassed for localhost.

HTTP_PROXY및 설정을 무시 하 HTTPS_PROXY 고 에뮬레이터가에 연결할 수 있도록 허용 하려면 localhost 로컬 컴퓨터에서 다음 환경 변수를 정의 해야 합니다.In order to bypass the HTTP_PROXY and HTTPS_PROXY settings and allow the Emulator to connect to localhost, on your local machine you must define the following environment variable :

NO_PROXY=localhost

인증을 위한 에뮬레이터 구성Configure the Emulator for authentication

Bot 인증을 요구 하는 경우 로그인 대화 상자를 표시 하 고 다음과 같이 에뮬레이터를 구성 해야 합니다.If a bot requires authentication, displaying a login dialog, you must configure the Emulator as shown below.

로그인 확인 코드 사용Using sign-in verification code

  1. 에뮬레이터를 시작합니다.Start the Emulator.
  2. 에뮬레이터의 왼쪽 아래에서 기어 아이콘을 클릭 하거나 오른쪽 위에 있는 에뮬레이터 설정 탭을 클릭 합니다.In the Emulator, click the gear icon in the bottom left, or the Emulator Settings tab in the upper right.
  3. OAuthCard에 로그인 확인 코드 사용 옆에 있는 확인란을 선택합니다.Check the box by Use a sign-in verification code for OAuthCards.
  4. 로컬 주소용 ngrok 바이패스 옆에 있는 확인란을 선택합니다.Check the box by Bypass ngrok for local address
  5. 저장 단추를 클릭합니다.Click the Save button.

봇에 의해 표시된 로그인 단추를 클릭하면 유효성 검사 코드가 생성됩니다.When you click the login button displayed by the bot, a validation code will be generated. 인증을 수행 하려면 bot 입력 채팅 상자에 코드를 입력 합니다.You'll enter the code in the bot input chat box for the authentication to take place. 그러면 허용된 작업을 수행할 수 있습니다.After that you can perform the allowed operations.

또는 아래에 설명된 단계를 수행할 수 있습니다.Alternatively, you can perform the steps described below.

인증 토큰 사용Using authentication tokens

  1. 에뮬레이터를 시작합니다.Start the Emulator.
  2. 에뮬레이터의 왼쪽 아래에서 기어 아이콘을 클릭 하거나 오른쪽 위에 있는 에뮬레이터 설정 탭을 클릭 합니다.In the Emulator, click the gear icon in the bottom left, or the Emulator Settings tab in the upper right.
  3. 버전 1.0 인증 토큰 사용 옆에 있는 확인란을 선택합니다.Check the box by Use version1.0 authentication tokens.
  4. ngrok 도구의 로컬 경로를 입력합니다.Enter the local path to the ngrok tool. 도구 정보는 ngrok를 참조하세요.For more the tool information, see ngrok.
  5. 에뮬레이터 시작 시 ngrok 실행 옆에 있는 확인란을 선택합니다.Check the box by Run ngrok when the Emulator starts up.
  6. 저장 단추를 클릭합니다.Click the Save button.

봇에 의해 표시된 로그인 단추를 클릭하면 자격 증명을 입력하라는 메시지가 표시됩니다.When you click the login button displayed by the bot, you will be asked to enter your credentials. 인증 토큰이 생성됩니다.An authentication token is generated. 그러면 허용된 작업을 수행할 수 있습니다.After that you can perform the allowed operations.

에뮬레이터 시작 창

로컬로 실행 되는 bot에 연결 하려면 Open bot 를 선택 합니다.To connect to a bot running locally, select Open bot. 앞에서 복사한 포트 번호를 다음 URL에 추가하고 업데이트된 URL을 봇 URL 표시줄에 붙여넣습니다.Add the port number your copied earlier into the following URL and paste the updated URL in the Bot URL bar:

http://localhost:포트 번호/api/messageshttp://localhost:port number/api/messages

에뮬레이터 봇 열기 대화 상자

MSA(Microsoft 계정) 자격 증명을 사용하여 봇을 실행하는 경우 이 자격 증명도 입력합니다.If your bot is running with Microsoft Account (MSA) credentials, enter these credentials too.

봇 자격 증명 사용Use bot credentials

봇을 열 때, 자격 증명을 사용하여 봇을 실행하는 경우 Microsoft 앱 IDMicrosoft 앱 암호 를 설정합니다.When you open the bot, set the Microsoft App ID and Microsoft App password if your bot is running with credentials. Azure Bot Service를 사용하여 봇을 만든 경우에는 봇 App Service의 설정 -> 구성 섹션에서 자격 증명을 확인할 수 있습니다.If you created your bot with the Azure Bot Service, the credentials are available on the bot's App Service, under the Settings -> Configuration section. 값을 모르는 경우 로컬에서 실행 중인 봇의 구성 파일을 제거한 다음, 에뮬레이터에서 봇을 실행할 수 있습니다.If you do not know the values, you can remove those from the locally running bot's configuration file, then run the bot in the Emulator. 봇이 이러한 설정으로 실행되고 있지 않으면 설정으로 에뮬레이터를 실행할 필요가 없습니다.If the bot isn't running with these settings, you don't need to run the Emulator with the settings either.

AD ID 공급자 애플리케이션을 만드는 경우 다음 사항에 주의하세요.When creating an AD identity provider application, remember the following:

  • 지원되는 계정 유형이 단일 테넌트로 설정된 경우 Microsoft 계정 대신 개인 구독을 사용하는 경우 에뮬레이터에서 봇의 Microsoft 앱 ID 또는 Microsoft 앱 암호가 잘못되었습니다.라는 오류가 발생합니다.When the supported account types is set to single tenant, if you use a personal subscription instead of a Microsoft account, the Emulator would issue the error: The bot's Microsoft App ID or Microsoft App Password is incorrect..
  • 이 경우 지원되는 계정 유형은 모든 조직 디렉터리의 계정(모든 Azure AD 디렉터리 - 다중 테넌트) 및 개인 Microsoft 계정(예: Xbox) 으로 설정해야 합니다.In this case, the supported account types must be set to Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Xbox).

자세한 내용은 Azure AD ID 공급자 애플리케이션 만들기 및 Azure Portal 사용하여 새 애플리케이션 등록을 참조하세요.For more information, see Create an Azure AD identity provider application and Register a new application using the Azure portal.

검사기를 사용 하여 자세한 메시지 활동 보기View detailed Message Activity with the Inspector

봇에 메시지를 보내면 봇이 응답합니다.Send a message to your bot and the bot should respond back. 대화 창에서 메시지 풍선을 클릭하고 창의 오른쪽에 있는 검사기 기능을 사용하여 원시 JSON 활동을 검사할 수 있습니다.You can click on the message bubble within the conversation window and inspect the raw JSON activity using the INSPECTOR feature to the right side of the window. 메시지 풍선을 선택하면 해당 풍선이 노란색으로 바뀌며 활동 JSO 개체가 채팅 창 왼쪽에 표시됩니다.When selected, the message bubble will turn yellow and the activity JSON object will be displayed to the left of the chat window. JSON 정보에는 채널 ID, 활동 유형, 대화 ID, 텍스트 메시지, 엔드포인트 URL 등과 같은 주요 메타데이터가 포함됩니다.The JSON information includes key metadata, including the channel ID, activity type, conversation ID, the text message, endpoint URL, and so on. 사용자가 보낸 활동과 봇이 응답한 활동을 모두 살펴볼 수 있습니다.You can inspect activities sent from the user, as well as activities the bot responds with.

에뮬레이터 메시지 활동

봇에 검사 미들웨어를 추가하여 채널에 연결된 봇의 상태 변화를 디버그할 수 있습니다.You can debug state changes in a bot connected to a channel by adding Inspection Middleware to the bot.

서비스 검사Inspect services

v4 에뮬레이터를 사용하면 LUIS 및 QnA의 JSON 응답을 검사할 수도 있습니다.With the v4 Emulator you can also inspect the JSON responses from LUIS and QnA. 연결된 언어 서비스가 있는 봇을 사용하여 LOG 창의 오른쪽 아래에서 추적 을 선택할 수 있습니다.Using a bot with a connected language service, you can select trace in the LOG window to the bottom right. 이 새로운 도구는 에뮬레이터에서 직접 언어 서비스를 업데이트하는 기능도 제공합니다.This new tool also provides features to update your language services directly from the Emulator.

LUIS 검사기

연결된 LUIS 서비스를 통해 추적 링크가 Luis 추적 을 지정하는 것을 볼 수 있습니다.With a connected LUIS service, you'll notice that the trace link specifies Luis Trace. 선택하면 의도, 엔터티, 지정된 점수를 포함하는 LUIS 서비스로부터의 원시 응답이 표시됩니다.When selected, you'll see the raw response from your LUIS service, which includes intents, entities along with their specified scores. 사용자 표현에 대한 의도를 다시 할당하는 옵션도 있습니다.You also have the option to re-assign intents for your user utterances.

QnA 검사기

연결된 QnA 서비스를 통해 로그는 QnA 추적 을 표시하며 선택한 경우 해당 활동과 관련한 질문 및 답변 쌍을 신뢰도 점수와 함께 미리 볼 수 있습니다.With a connected QnA service, the log will display QnA Trace, and when selected you can preview the question and answer pair associated with that activity, along with a confidence score. 여기에서 답변에 대한 대체 질문 문구를 추가할 수 있습니다.From here, you can add alternative question phrasing for an answer.

Azure에 로그인Login to Azure

Azure 계정에 로그인하는 데 에뮬레이터를 사용할 수 있습니다.You can use Emulator to login in to your Azure account. 특히 봇이 종속된 서비스를 추가 및 관리할 때 유용합니다.This is particularly helpful for you to add and manage services your bot depends on. 다음 단계를 수행하여 Azure에 로그인합니다.Log into Azure by following these steps:

  1. 파일 -> Azure로 로그인을 클릭합니다.Click on File -> Sign in with Azure

    Azure로 에뮬레이터 로그인

  2. 시작 화면에서 Azure 계정으로 로그인을 클릭합니다.On the welcome screen click on Sign in with your Azure account. 필요에 따라 에뮬레이터 애플리케이션을 다시 시작할 때 에뮬레이터를 로그인 상태로 유지할 수 있습니다.You can optionally have Emulator keep you signed in across Emulator application restarts.

    에뮬레이터 Azure 로그인 성공

데이터 수집 비활성화Disabling data collection

에뮬레이터의 사용량 현황 데이터 수집을 중지하게 하려면 다음 단계에 따라 데이터 수집을 간단히 해제할 수 있습니다.If you decide that you no longer want to allow the Emulator to collect usage data, you can easily disable data collection by following these steps:

  1. 왼쪽의 탐색 모음에서 설정 버튼(기어 아이콘)을 클릭하여 에뮬레이터의 설정 페이지로 이동합니다.Navigate to the Emulator's settings page by clicking on the Settings button (gear icon) in the nav bar on the left side.

    에뮬레이터 설정 단추

  2. 데이터 수집 아래에 이름이 사용량 현황 데이터 수집을 허용하여 에뮬레이터 개선 참여 인 확인란을 선택 취소합니다.Uncheck the checkbox labeled Help improve the Emulator by allowing us to collect usage data under the Data Collection section.

    에뮬레이터 설정, 데이터 수집

  3. "저장" 단추를 클릭합니다.Click the "Save" button.

    에뮬레이터 설정, 저장 단추

상황이 바뀌면 언제든 확인란을 다시 선택하여 사용할 수 있습니다.If you change your mind, you can always enable it by re-checking the checkbox.

추가 리소스Additional resources

Bot Framework Emulator는 오픈 소스입니다.The Bot Framework Emulator is open source. 버그 및 제안을 제출하여 개발에 기여할 수 있습니다.You can contribute to the development and submit bugs and suggestions.

문제를 해결하려면 일반 문제 해결 및 해당 섹션의 다른 문제 해결 문서를 참조하세요.For troubleshooting, see troubleshoot general problems and the other troubleshooting articles in that section.

다음 단계Next steps

검사 미들웨어를 사용하여 채널에 연결된 봇을 디버그합니다.Use inspection middleware to debug a bot connected to a channel.