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});