Testar o webhook

Ao desenvolver o webhook, recomendamos testá-lo com payloads reais do Business Messages. Em vez de criar testes manualmente, use o framework de testes do Business Messages para testar o webhook com vários tipos de payload JSON que ele pode receber na produção.

Para começar, você só precisa de um URL para uma instância em execução do seu webhook. O framework de teste é fácil de instalar e pode testar 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 NPM. O framework é publicado no registro de pacotes do NPM, então você pode 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 uma variável de ambiente e executar todos os testes com o seguinte comando:

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

Os resultados do framework de teste têm esta 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, isso significa que ele não responde com um 200 OK ao payload JSON desse caso de teste. Nesse caso, o framework de teste imprime informações de erro para ajudar a depurar. Consulte o README do framework de teste para saber mais sobre casos de teste específicos.

Usar o framework no seu projeto do NodeJS

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

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

Depois de instalado, é possível 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 membros payloads contém todos os casos de teste. É possível usar o método sendPayload para executar um teste específico. Por exemplo, o código abaixo 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, você também pode definir 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 aleatório boolean Se verdadeiro, define o ID da conversa como um UUID aleatório com um formato válido. Se for falso, definirá todos os IDs de conversa como "Conversation-ID".
BMTF_CANCELAR timeout Número ou string de tempo formatada 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 detalhes sobre as especificações de formatação e tipo.

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 transmitir as mesmas variáveis para o objeto config ao criar seu BmTestFramework:

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