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