Testar o webhook

Ao desenvolver seu webhook, é recomendável testá-lo com aplicativos reais do Payloads de mensagens. Em vez de criar testes manualmente, você pode usar a API Business Estrutura de teste de mensagens para testar seu webhook com vários tipos de payload JSON que o webhook pode receber na produção.

Para começar, você só precisa de um URL uma instância do webhook em execução. O framework de teste é fácil de instalar e teste o webhook com um único comando.

Primeiros passos

Instalar o framework

A maneira mais fácil de instalar o framework é com o gerenciador de pacotes do NPM (em inglês). O framework é publicado no registro de pacotes do NPM, para que você possa instalá-lo com npm:

npm install -g bm-test-framework

Executar os testes

Com o pacote instalado, é possível fornecer o URL do webhook como um ambiente e execute todos os testes com o seguinte comando:

BMTF_ENDPOINT_URL=<Your webhook URL> bm-test-framework

Os resultados do framework de teste têm a seguinte aparência:

  Sending payloads to <Your webhook URL>
      ✔ authentication-request.json should return 200
      ✔ event-receive.json should return 200
      ✔ image-message.json should return 200 (862ms)
      ✔ read-receipt.json should return 200
      ✔ suggestion-message.json should return 200
      ✔ text-message.json should return 200 (134ms)
      ✔ text-with-dialogflow-response.json should return 200 (128ms)
      ✔ user-receipt.json should return 200

Neste exemplo de execução de teste, todos os casos de teste foram aprovados.

Se o webhook falhar em um dos casos de teste, ele não vai responda com um 200 OK ao payload JSON desse caso de teste. Nesse caso, o teste imprime informações de erro para ajudar na depuração. Consulte a README do framework de teste para saber mais sobre casos de teste específicos.

Usar o framework no projeto NodeJS

Para usar o framework de dentro do seu próprio código em um projeto NodeJS ou de em um pacote de testes Mocha, primeiro instale o pacote como dependência:

npm install --save-dev bm-test-framework

Depois de instalado, você pode criar um objeto BmTestFramework para gerenciar os testes:

const BmTestFramework = require('bm-test-framework');
const bmTestFramework = new BmTestFramework({endpointURL: <Your webhook URL>});

A matriz de membro payloads contém todos os casos de teste. Você pode usar o sendPayload para executar um teste específico. Por exemplo, o código a seguir executa o primeiro teste no framework:

bmTestFramework.sendPayload(bmTestFramework.payloads[0])

Configurar os testes

Além da variável de ambiente BMTF_ENDPOINT_URL necessária, é possível também defina variáveis de ambiente opcionais para personalizar o comportamento do teste:

Variável de ambiente Nome do campo de configuração Tipo Descrição
BMTF_RANDOM_UUID randomUuid booleano Se verdadeiro, define o ID da conversa como um UUID aleatório com formato válido. Se for falso, define todos os IDs de conversas como "CONVERSATION-ID".
BMTF_TIMEOUT timeout String de tempo formatada ou numérica Define o tempo limite em milissegundos para cada caso de teste. O tempo limite padrão é de 2.000 ms para cada caso de teste. Consulte a referência da API Mocha para ver as especificações detalhadas de tipo e formatação.

Por exemplo, o código a seguir executa o framework de teste na linha de comando. com a opção UUID aleatória ativada e com um tempo limite de 1.000 ms:

BMTF_ENDPOINT_URL=<Your webhook URL> BMTF_TIMEOUT=1000 BMTF_RANDOM_UUID=true bm-test-framework

Para personalizar o comportamento do teste no seu projeto NodeJS, você também pode passar o mesmas variáveis no objeto config ao criar seu BmTestFramework:

const bmTestFramework = new BmTestFramework({endpointURL: <Your webhook URL>, randomUuid: true, timeout: 1000});