Testar e depurar com o Emulador
APLICA-SE A: SDK v4
O Bot Framework Emulator é um aplicativo da área de trabalho que permite que os desenvolvedores de bot testem e depurem bots, local ou remotamente. Usando o Emulator, você pode conversar com seu bot e inspecionar as mensagens enviadas e recebidas por ele. O Emulator exibe as mensagens como elas serão mostradas em uma interface do usuário do Webchat e registra as solicitações e as respostas JSON à medida que você troca mensagens com o bot. Antes de implantar seu bot na nuvem, execute-o localmente e teste-o usando o Emulator. Você pode testar seu bot usando o Emulador mesmo que ainda não o tenha criado com o Serviço de Bot do Azure ou configurado-o para ser executado em qualquer canais.
Pré-requisitos
- Instalar o Bot Framework Emulator
Executar um bot localmente
Antes de conectar o bot ao Bot Framework Emulator, você precisa executar o bot localmente. Você pode usar o Visual Studio, o Visual Studio Code ou a linha de comando para executar o bot. Para executar um bot usando a linha de comando, faça o seguinte:
Vá para o prompt de comando e altere o diretório para o diretório de projeto do bot.
Inicie o bot executando o seguinte comando:
dotnet runCopie o número da porta na linha antes de Aplicativo iniciado. Pressione Ctrl + C para desligar.

Neste ponto, seu bot está em execução localmente.
Conectar-se a um bot em execução no localhost
Definir configurações de proxy
Quando você estiver desenvolvendo por trás de um proxy corporativo, o Emulador usará as variáveis HTTP_PROXY de ambiente configuradas e HTTPS_PROXY, que especificam a rota de URL do proxy para solicitações HTTP e HTTPs, respectivamente.
Se você estiver se conectando a um bot em localhostexecução, o Emulador primeiro tentará rotear pelo proxy antes de localhostse conectar. Normalmente, o proxy bloqueará a conexão, a menos que você especifique que ela deve ser ignorada.localhost
Para ignorar as HTTP_PROXY configurações e HTTPS_PROXY permitir que o Emulador se conecte localhost, no computador local, você deve definir a seguinte variável de ambiente:
NO_PROXY=localhost
Configurar o Emulador para autenticação
Se um bot exigir autenticação, exibindo uma caixa de diálogo de logon, você deverá configurar o Emulador, conforme mostrado abaixo.
Usando um código de verificação de entrada
- Inicie o Emulador.
- No Emulador, clique no ícone de engrenagem na parte inferior esquerda ou na guia Configurações do Emulador no canto superior direito.
- Marque a caixa Usar um código de verificação de entrada para OAuthCards.
- Marque a caixa Ignorar ngrok para endereço local
- Clique no botão Salvar .
Ao clicar no botão de logon exibido pelo bot, um código de validação será gerado. Você inserirá o código na caixa de chat de entrada do bot para que a autenticação ocorra. Depois disso, será possível executar as operações permitidas.
Como alternativa é possível executar as etapas descritas abaixo.
Como usar os tokens de autenticação
- Inicie o Emulador.
- No Emulador, clique no ícone de engrenagem na parte inferior esquerda ou na guia Configurações do Emulador no canto superior direito.
- Marque a caixa Usar tokens de autenticação da versão 1.0.
- Insira o caminho local para a ferramenta ngrok. Para obter mais informações sobre a ferramenta, consulte ngrok.
- Marque a caixa Executar ngrok quando o emulador for iniciado.
- Clique no botão Salvar .
Ao clicar no botão de logon exibido pelo bot, você receberá uma solicitação para inserir suas credenciais. Um token de autenticação será gerado. Depois disso, será possível executar as operações permitidas.

Para se conectar a um bot em execução localmente, selecione Abrir bot. Adicione o número da porta que você copiou anteriormente na URL a seguir e cole a URL atualizada na barra URL do Bot:
http://localhost:<port number>/api/messages

Se o bot é executado com credenciais da MSA (Conta Microsoft), insira-as também.
Usar credenciais do bot
Quando você abre o bot, defina a ID do aplicativo Microsoft e a senha do aplicativo Microsoft se seu bot está em execução com as credenciais. Se você criou seu bot com o Serviço de Bot do Azure, as credenciais estarão disponíveis no Serviço de Aplicativo do bot, na seção Configurações –> Configuração . Se não souber os valores, você poderá remover aqueles do arquivo de configuração do bot sendo executado localmente e depois executar o bot no emulador. Se o bot não estiver em execução com essas configurações, você também não precisará executar o Emulador com as configurações.
Ao criar um aplicativo de provedor de identidade do AD, lembre-se do seguinte:
- Quando os tipos de conta com suporte são definidos como locatário único, se você usar uma assinatura pessoal em vez de uma conta da Microsoft, o Emulador emitirá o erro: a ID do Aplicativo Microsoft do bot ou a Senha do Aplicativo Microsoft estão incorretas.
- Nesse caso, os tipos de conta compatíveis devem ser definidos como Contas em qualquer diretório organizacional (Qualquer diretório do Azure AD – Multilocatário) e contas pessoais Microsoft (por exemplo, Xbox) .
Para obter mais informações, consulte Criar um aplicativo de provedor de identidade do Azure AD e registrar um novo aplicativo usando o portal do Azure.
Exibir atividades de mensagens detalhadas com o Inspetor
Envie uma mensagem ao bot, que deve responder de volta. Você pode clicar na bolha de mensagem dentro da janela de conversa e inspecionar a atividade JSON bruta usando o recurso INSPETOR à direita da janela. Quando selecionada, o balão de mensagens ficará amarelo e o objeto JSON de atividade será exibido à esquerda da janela de bate-papo. As informações de JSON incluem metadados principais, incluindo ID do canal, tipo de atividade, ID da conversa, mensagem de texto, URL de ponto de extremidade, etc. Você pode inspecionar as atividades de inspeção enviadas pelo usuário, bem como as atividades com as quais o bot responde.

Dica
Você pode depurar alterações de estado em um bot conectado a um canal adicionando middleware de inspeção ao bot.
Inspecionar serviços
Com o Emulador v4, você também pode inspecionar as respostas JSON do LUIS e do QnA. Usando um bot com um serviço de idiomas conectado, você pode selecionar trace na janela LOG no canto inferior direito. Essa nova ferramenta também fornece recursos para atualizar seus serviços de idioma diretamente do Emulador.

Com um serviço LUIS conectado, você notará que o link de rastreamento especifica Luis Trace. Quando selecionado, você verá a resposta bruta de seu serviço LUIS, que inclui intenções, entidades e suas pontuações especificadas. Você também tem a opção de reatribuir intenções para suas declarações de usuário.

Com um serviço QnA conectado, o log exibirá QnA Trace e, quando selecionado, você poderá visualizar o par de perguntas e respostas associado a essa atividade, juntamente com uma pontuação de confiança. A partir daqui, você pode adicionar frases de pergunta alternativo para uma resposta.
Logon no Azure
Você pode usar o Emulador para fazer logon em sua conta do Azure. Isso é particularmente útil para adicionar e gerenciar os serviços que dependem do seu bot. Faça logon no Azure seguindo estas etapas:
Clique no arquivo –> Entrar com o Azure

Na tela de boas-vindas, clique em Entrar com sua conta do Azure. Opcionalmente, você pode ter o Emulator para mantê-lo conectado entre reinicializações do aplicativo Emulator.

Desabilitar a coleta de dados
Se decidir que não deseja permitir que o Emulador colete dados de uso, você pode facilmente desabilitar a coleta de dados, seguindo estas etapas:
Navegue até a página de configurações do Emulador, clicando no botão de Configurações (ícone de engrenagem), na barra de navegação à esquerda.

Desmarque a caixa de seleção Ajude-nos a melhorar o Emulador, permitindo-nos coletar dados de uso, na seção Coleta de dados.

Clique no botão "Salvar".

Se você mudar de ideias, poderá habilitá-lo novamente marcando a caixa de seleção.
Recursos adicionais
O Bot Framework Emulator é open source. Você pode contribuir com o desenvolvimento e enviar bugs e sugestões.
Para solucionar problemas, confira solucionar problemas gerais e outros artigos de solução de problemas nesta seção.
Próxima etapa
Use o middleware de inspeção para depurar um bot conectado a um canal.

