Você está na página 1de 7

MQTTBox

Incremente seu fluxo de trabalho de IoT com o MQTTBox

MQTT Clients
- Conecte-se a intermediários Mqtt com TCP, TLS, Web Sockets e Secure Web Sockets
- Conecte-se com ampla gama de configurações do cliente Mqtt
- Publicar / Inscrever-se em vários tópicos - Publish/Subscribe
- Suporta assinatura de nível único (+) e multinível () para tópicos
- Copiar / republicar carga útil - Copy/Republish payload
- Ver histórico de mensagens publicadas / inscritas para cada tópico

MQTT Load Test


- Infraestrutura de teste de carga MQTT (dispositivos MQTT e brokers)
- Definir taxa de mensagens para publicar / assinar - publish/subscribe
- Crie até 10 instâncias de carga para o mesmo testcase
- Ver progresso em tempo real no painel
- Veja os resultados do teste de carga em gráficos.
- Ver todos os dados de teste de carga enviados ou recebidos

Começando
Bem-vindo à documentação do MQTTBox.
Você pode encontrar informações úteis que vão desde recursos do MQTTBox até tutoriais.
O MQTTBox permite criar clientes MQTT para publicar ou subscrever tópicos, criar redes de dispositivos virtuais MQTT,
carregar dispositivos ou intermediários MQTT de teste e muito mais.
MQTTBox é uma aplicação multi-plataforma disponível no Linux, MAC e Windows. Por favor, veja a página de
aplicativos de download para mais detalhes.

Clientes MQTT
 Criar vários clientes MQTT simultâneos conectados a mesmos ou diferentes brokers do MQTT
 Suporte para TCP, SSL / TLS, Web Sockets e Secured Web Sockets
 Crie clientes MQTT com ampla variedade de configurações de conexão - Last will, keepAlive, tempo limite de
conexão e muito mais.
 Autenticação de nome de usuário / senha
 Opção para conectar, desconectar, reconectar o cliente MQTT aos corretores
 Publique mensagens para vários tópicos do mesmo cliente MQTT
 Inscrever-se em vários tópicos do mesmo cliente MQTT
 Suporta assinatura em tópicos de nível único (+) e multinível (#)
 Copiar, republicar payload com um único clique
 Visualize o histórico de mensagens publicadas e inscritas
 Suporta QoS 0,1,2

Carga MQTT
 Teste de carga da infraestrutura MQTT - dispositivos MQTT, intermediários, nuvem e aplicativos
 Crie testcases de carga múltipla
 Crie um teste de carga com uma ampla variedade de configurações - número de mensagens para publicar / assinar
por segundo, número de instâncias a serem abrangidas e muito mais
 Carregar a publicação MQTT de teste para tópicos
 Carregar assinatura de tópicos teste MQTT
 Ver progresso em tempo real - conectar, desconectar, publicar, assinar, receber mensagens, etc.
 Visualize os resultados do teste de carga em gráficos
 Exibir dados de teste de carga enviados ou recebidos
 Calcular o número de desistências de conexão

Recursos de suporte por plataforma


Características LINUX MAC WINDOWS
MQTT clients x x x
MQTT load testing x x x
WebSockets x x x
TCP / TLS / MQTT / MQTTS x x x
Is App Multithreaded? x x x
Works Offline x x x
Auto updates when new version is available não On Apple app store On Windows app store

Instalação
Para cada um dos sistemas (LINUX, MAC e WINDOWS 10) segue o link:
http://workswithweb.com/html/mqttbox/installing_apps.html

Configurações para o cliente MQTT


Ao criar o novo cliente MQTT a partir do aplicativo MQTTBox, há uma ampla variedade de configurações de conexão
que você pode especificar. A maioria das configurações é definida por padrão para os valores mais usados, no entanto,
você ainda pode precisar personalizar as configurações para testar seus clientes MQTT conforme suas necessidades. Este
documento explica cada atributo de configuração do cliente em detalhes para entender melhor a conexão do cliente e o
protocolo MQTT de fato.

MQTT Client Name:


Nome do Cliente MQTT: Nome para identificar o cliente MQTT e exibir no painel. Pode ser qualquer valor de string.
por exemplo: client_test_1

Client Id:
ID do Cliente: O identificador do cliente é um identificador de cada cliente MQTT conectando-se a um broker do MQTT.
Deve ser único por cliente para determinado corretor - broker. O broker - intermediário - o utiliza para identificar o cliente
e o estado atual do cliente. É gerado automaticamente por padrão. Se você tentar conectar dois clientes MQTT com o
mesmo identificador de cliente, a conexão será rejeitada pelo broker. Quando você abre 2 instâncias do aplicativo
MQTTBox, certifique-se de ter ID exclusivo do cliente, caso contrário, seus clientes serão rejeitados pelo corretor e
poderão ser exibidos off-line. por exemplo: client_id_1.

Anexar timestamp para MQTT client id?:


Anexar registro de data e hora ao ID do cliente MQTT ?: Se marcada, o registro de data e hora será anexado ao ID do
cliente. Isso é ativado por padrão. Muitas vezes, os usuários abrem várias instâncias do aplicativo MQTTBox em
máquinas iguais ou diferentes com as mesmas configurações do cliente MQTT, incluindo o mesmo ID do cliente
inconscientemente. Isso faz com que ambas as conexões do cliente sejam rejeitadas pelo intermediário devido ao
mesmo ID do cliente. Se essa opção estiver ativada, o MQTTBox anexará o registro de data e hora a cada ID de cliente,
tornando-o quase exclusivo, o que ajudará você a economizar tempo ao depurar problemas desnecessários.

Broker é compatível MQTT v3.1.1?:


O broker é compatível com MQTT v3.1.1 ?: Se você estiver se conectando a um broker MQTT que suporta apenas versões
mais antigas do protocolo MQTT 3.1 ou inferior (v3.1.1 é o padrão mais recente e atual), desmarque esta opção. Por
padrão, ele é verificado e assume que o intermediário MQTT é compatível com o padrão MQTT atual v3.1.1 (ou superior).

Protocol:
Protocolo: Protocolo de rede usado pelo cliente MQTT para conectar-se ao broker MQTT. MQTTBox suporta TCP, SSL
/ TLS, MQTT, MQTTS, WebSockets (WS) e Secure WebSockets (WSS). Dependendo da plataforma em que você está
usando o aplicativo MQTTBox, todo o Protocolo pode não ser suportado devido a limitações da plataforma. Por favor,
verifique aqui a lista de recursos do MQTTBox suportados por cada plataforma.

Host:
Host: host do MQTT para conexão. Certifique-se de especificar o host correto e o número da porta, dependendo do
protocolo de conexão do MQTT selecionado. O cliente MQTT pode não ser conectado se você mencionar um número de
porta errado ou trocar números de porta. por exemplo: test.mosquitto.org:8080

Clean Session?:
Sessão Limpa ?: O sinalizador de sessão limpa indica ao corretor se o cliente deseja estabelecer uma sessão persistente
ou não. Se você precisar de uma sessão persistente, ou seja, o broker armazenará todas as assinaturas para o cliente e
também todas as mensagens perdidas, ao se inscrever na qualidade de serviço (QoS) 1 ou 2, desmarque a opção Não -
No. Por padrão, isso é marcado como Sim - Yes, o que significa que o corretor inicia uma nova sessão, não armazena
nada para o cliente e também elimina todas as informações de uma sessão persistente anterior.

Auto connect on app launch?:


Conexão automática no lançamento do aplicativo ?: Se você selecionar / Sim esta opção, o cliente tentará se conectar ao
broker automaticamente quando o aplicativo MQTTBox for iniciado e puder estar no estado 'Conectado' ou 'Erro de
conexão', dependendo se o cliente estava conectado ao broker ou não. Se esta opção não estiver marcada / não, o cliente
estará no estado 'Não conectado' e você precisará conectar manualmente o cliente ao broker. Você pode conectar,
desconectar, reconectar clientes MQTT do painel MQTTBox.

Username:
Nome de usuário: Nome de usuário requerido pelo corretor, se houver. O MQTT permite enviar o nome de usuário para
autenticar e autorizar o cliente.

Password:
Senha: Senha requerida pelo broker, se houver. MQTT permite enviar senha para autenticação e autorização do cliente.
Por favor, note que todas as senhas são salvas em texto simples. Certifique-se de nunca salvar senhas de produção dentro
do aplicativo MQTTBox. De fato, todos os campos são salvos como texto simples, certifique-se de nunca salvar
informações / configurações confidenciais dentro do aplicativo MQTTBox.

Reschedule Pings?
Reprogramar pings? Se marcado / yes, reagendará as mensagens ping após o envio dos pacotes.

Queue outgoing QoS zero messages:


Mensagens QoS zero de saída da fila: Se marcada / yes, se a conexão for interrompida entre cliente e broker, mensagens
zero de QoS de saída da fila do cliente. Todas essas mensagens serão publicadas quando a conexão for estabelecida.

Reconnect Period (in milliseconds):


Reconectar Período (em milissegundos): Intervalo entre duas reconexões

Connect Timeout (in milliseconds):


Tempo limite de conexão (em milissegundos): tempo de espera antes que um CONNACK seja recebido.

KeepAlive (in seconds):


KeepAlive (em segundos): O keep alive é um intervalo de tempo, pelo qual os clientes se comprometem enviando
mensagens regulares de PING Request para o broker. A resposta do broker com PING Response e esse mecanismo
permitirá que os dois lados determinem se o outro ainda está ativo e acessível. Por padrão, ele é definido para 10 segundos,
definido como 0 para desativado.

Will Settings -
Configurações - A mensagem de vontade faz parte da última vontade do Cliente MQTT. Permite notificar outros
clientes, quando um cliente se desconecta incorretamente. Um cliente de conexão fornecerá sua vontade na forma de
uma mensagem MQTT e um tópico na mensagem CONNECT. Se esses clientes forem desconectados incorretamente, o
intermediário enviará essa mensagem em nome do cliente automaticamente.

Will Settings - Topic:


Configurações de tópicos - Tópico: o tópico a ser publicado será útil. Uma cadeia simples, que pode ser estruturada
hierarquicamente com barras como delimitadores. por exemplo: topic_test_1 ou home / kitchen / humidity

Will Settings - QoS:


Configurando - QoS: Publique a carga útil com o conjunto de QoS. Por padrão, é 0.

Will Settings - Retain:


Configurando - Retain: retém o sinalizador para payload.

Will Settings - Payload:


Configurando - Carga útil: A mensagem a publicar quando o cliente se desconecta mal.

Configurando publicações - publish


Topic to publish:
Tópico a publicar: é o tópico para publicar. Uma cadeia simples, que pode ser estruturada hierarquicamente com barras
como delimitadores. por exemplo: topic_test_1 ou home / kitchen / humidity

QoS:
QoS: um nível de qualidade de serviço (QoS) para esta mensagem. O nível (0,1 ou 2) determina a garantia de uma
mensagem entregue.

Retain:
Reter: Este sinalizador determina se a mensagem será salva pelo intermediário para o tópico especificado como o último
valor válido conhecido. Novos clientes que se inscreverem nesse tópico receberão a última mensagem retida sobre esse
tópico instantaneamente após a inscrição. Para excluir a mensagem retida do tópico, envie uma mensagem retida com
uma carga útil de zero bytes nesse tópico.

Payload:
Payload: Este é o conteúdo real da mensagem a ser publicada no tópico.

Configurações do assinante - Subscriber


Topic:
Tópico: é um tópico de Cadeia de caracteres para se inscrever. Você pode especificar a assinatura de Nível Único (+) e
Multinível () para os tópicos. por exemplo: topic_test_1 ou home / + / humidity ou home /

QoS:
QoS: um nível de qualidade de serviço (QoS) para esta mensagem. O nível (0,1 ou 2) determina a garantia de uma
mensagem entregue.

Configurações de teste de carga do MQTT


Ao criar o novo teste de carga MQTT do aplicativo MQTTBox, há uma ampla variedade de configurações de teste de
carga, desde protocolo de conexão, número de mensagens a publicar ou assinar, número de instâncias paralelas a serem
executadas, taxa na qual as mensagens precisam ser publicadas ou inscritas e muito mais . Este documento explica cada
atributo de teste de carga em detalhes para entender melhor a ferramenta de teste de carga e usá-la de maneira correta para
testar sua carga do MQTT.

Load Test Name:


Nome do teste de carga: Nome para identificar o testcase de carga do MQTT e exibir no painel. Pode ser qualquer valor
de string. por exemplo: load_test_1.

Protocol:
Protocolo: Protocolo de rede usado para conectar-se ao broker do MQTT. MQTTBox suporta TCP, SSL / TLS, MQTT,
MQTTS, WebSockets (WS) e Secure WebSockets (WSS). Dependendo da plataforma em que você está, todo o Protocolo
pode não ser suportado devido a limitações da plataforma. Por favor, verifique aqui a lista de recursos do MQTTBox
suportados por cada plataforma.

Host:
Host: host do MQTT para conexão. Certifique-se de especificar o host correto e o número da porta, dependendo do
protocolo de conexão do MQTT selecionado. O cliente MQTT pode não ser conectado se você mencionar um número
de porta errado ou trocar números de porta. por exemplo: test.mosquitto.org:8080
Load Test Type:
Carregar Tipo de Teste: Especifica se você deseja carregar a publicação de teste do MQTT ou a assinatura do MQTT.

# of messages to publish:
# de mensagens a serem publicadas: este atributo é apenas para teste de carga do editor. Número total de mensagens a
serem publicadas em determinado tempo de execução para o tópico por cada instância. Por exemplo: Se de mensagens
para publicar = 20 e tempo de execução = 5, o total de 20 mensagens será publicado em 5 segundos por instância. Seus
aproximadamente (20/5) = 4 mensagens / segundo são publicados para determinado tópico por instância.

# of messages to subscribe:
# de mensagens para assinar: Este atributo é apenas para teste de carga do assinante. Número total de mensagens para
assinar o tópico em cada instância. O teste de carga aguardará até que o número especificado de mensagens seja recebido
ou o valor de tempo limite seja atingido. Por exemplo: Se de mensagens para subscrever = 20 e Tempo limite = 60, o
testcase aguardará até que 20 mensagens sejam recebidas ou 60 segundos sejam passadas. Se 60 segundos forem passados,
o testcase falhará com erro de tempo limite.

Runtime (in seconds):


Tempo de execução (em segundos): esse atributo é apenas para teste de carga para publicação -publisher. Tempo total de
execução do testcase para publicar mensagens por instância. Dependendo do tempo de execução especificado, o
MQTTBox calcula o número de mensagens para publicar/segundo. (de mensagens para publicar / Runtime). O MQTTBox
sempre tentará publicar o número de mensagens calculadas por segundo, no entanto, pode levar mais tempo do que o
calculado se o seu sistema operacional tiver recursos limitados. Por exemplo: Se runtime = 100 e de mensagens para
publicar = 20000, o MQTTBox tenta publicar 200 mensagens por segundo para determinado tópico (20000/100) por
instância.

Timeout (in seconds):


Tempo limite (em segundos): tempo limite do teste. Por algum motivo, se o testcase for bloqueado ou o MQTTBox estiver
aguardando a conexão do broker, não queremos que o testcase espere para sempre. Se o tempo limite for atingido,
independentemente do estado do testcase (em execução / hung / etc), o testcase será finalizado. Certifique-se de que o
tempo limite seja sempre maior que Runtime. No caso de teste de carga do assinante, se 'de mensagens a serem assinadas'
não forem recebidas dentro do intervalo de tempo limite, o testcase falhou com o erro de tempo limite. No caso de teste
de carga do publicador, se 'ainda estiver disponível o envio de mensagens' após o intervalo de tempo limite ser atingido,
o testcase falhou com o erro de tempo limite e nenhuma outra mensagem será publicada. Por exemplo: Se Tempo limite
= 60 e se a carga ainda estiver em execução após 60 segundos, o teste de carga será encerrado e marcado como Erro de
tempo limite para essa instância.

# of instances:
# de instâncias: quantas instâncias separadas são executadas em paralelo com as mesmas configurações. 1. Se de instâncias
= 6 e de mensagens para publicar = 10, o total de 6 instâncias está sendo executado com cada instância publicando 10
mensagens (total 6 * 10 = 60 mensagens são publicadas juntas em determinado tempo de execução). 2. Se de instâncias
= 6 e de mensagens para subscrever = 10, cada instância aguardará até receber 10 mensagens ou expirar.

Topic:
Tópico: nome do tópico para o qual todas as mensagens precisam ser publicadas ou inscritas. Para o teste de carga do
assinante, você pode especificar a assinatura de nível único (+) e multinível () para os tópicos.

QoS:
QoS: Defina o mqtt qos para mensagens publicadas ou inscritas. Padrão para 1.

Payload:
Carga Útil: Este atributo é apenas para teste de carga de publicação - publisher. Mensagem de carga útil para publicar
para determinado tópico. Você pode especificar várias cargas e cada carga é publicada em série, mas o pedido não é
garantido. Cada mensagem é contada para as mensagens publicadas. Se de mensagens para publicar = 10 e 1 carga é
mencionada, a mesma carga é publicada 10 vezes. Se as mensagens para publicar = 10 e 4 cargas forem mencionadas, o
MQTTBox tenta enviar a seguinte ordem - 1,2,3,4,1,2,3,4,1,2, mas o pedido não é garantido. Você pode adicionar / excluir
até 100 cargas úteis.

Métricas de teste de carga do MQTT


Quando o teste de carga estiver concluído, o MQTTBox exibe as métricas de teste e mostra como o teste foi realizado.
Este documento explica cada atributo de métrica representa. Você pode visualizar os registros de teste de carga para cada
instância no painel. O registro tem mensagens detalhadas com registro de data e hora e mostra quando a conexão foi
estabelecida, o número de vezes que a conexão foi interrompida e muito mais. Cada instância tem os seguintes atributos
de métrica.

Name:
Nome: nome da instância. O nome é gerado automaticamente, dependendo do número de instâncias mencionadas durante
a criação do teste de carga. por exemplo: instância 1

Status:
Status: status de execução do testcase. Pode estar em qualquer um desses estados - 'Em andamento', 'Concluído', 'Falha',
'Interrompido', 'Erro' e 'Tempo limite' - 'In Progress', 'Done', 'Failed', 'Stopped', 'Error' and 'Timeout'.

Published Time:
Tempo publicado: esse atributo é somente para teste de carga do editor. Tempo total gasto para publicar mensagens. Isso
não inclui tempo para respostas de QoS. É apenas o tempo necessário para disparar todas as mensagens para determinado
tópico.

Published Time:
Mensagens publicadas: este atributo é apenas para teste de carga de publicação - publisher. Número total de mensagens
publicadas no tópico pela respectiva instância

Published Messages:
Mensagens publicadas: este atributo é apenas para teste de carga de publicação - publisher. Número total de mensagens
publicadas no tópico pela respectiva instância.

QoS Response:
Resposta de QoS: este atributo é apenas para teste de carga de publicação - publisher. Número de respostas de QoS
recebidas após a publicação de mensagens. Se você mencionou QoS = 0, isso sempre será igual à mensagem enviada,
pois o teste de carga não aguardará respostas de QoS.

Subscribed Time:
Horário Subscrito: Este atributo é apenas para teste de carga do assinante. Tempo total gasto para receber mensagens de
determinado tópico especificado pelo atributo 'Mensagens Recebidas - "Messages Received"'

Messages Received:
Mensagens Recebidas: Este atributo é apenas para teste de carga do assinante. Número total de mensagens recebidas por
instância de um determinado tópico.

Gráfico da métricas
Quando o teste de carga estiver concluído, você poderá visualizar os gráficos clicando no botão 'Exibir gráfico' na parte
superior da página do painel. O gráfico representa o número de mensagens publicadas ou inscritas ao longo do tempo
para todas as instâncias juntas ou você pode selecionar uma instância específica para visualizar.
Você também pode alterar a taxa de amostragem para plotar o gráfico. A taxa de amostragem representa o número de
pontos de dados que você deseja obter em determinado tempo. Quanto mais taxa de amostragem você selecionar, mais
pontos de dados serão criados no tempo determinado, o que representa dados mais precisos em determinado momento.
No entanto, selecionar mais taxa de amostragem nem sempre é útil, como quando o número de mensagens é menor e o
tempo de execução é alto. A regra geral é quando mais dados são publicados ou subscritos em segundo, mais taxa de
amostragem é útil.
Por exemplo: Say testcase foi executado por 10 segundos publicando 1000 mensagens. Se você selecionar a taxa de
amostragem de 100, o intervalo de tempo de 10 segundos será dividido em 100 pontos e cada ponto representará o número
médio de mensagens publicadas entre o ponto de dados atual e o anterior.

Métricas de dados
Quando o teste de carga estiver concluído, você poderá visualizar todos os dados publicados ou recebidos em formato de
tabela. Clique no botão 'Visualizar dados' na parte superior da página do painel. Cada ponto de dados tem as seguintes
informações.
Time:
Hora: hora em que os dados foram publicados ou recebidos.

Message Id:
ID da mensagem: ID da mensagem gerada pelo broker MQTT para cada mensagem. Se QoS for 0, o ID da Mensagem
não será gerado pelo intermediário MQTT.

Topic:
Tópico: Tópico do qual a mensagem foi publicada ou assinada.

QoS:
QoS: nível de QoS para cada mensagem

Instance:
Instância: instância da qual a carga útil foi publicada ou inscrita - published or subscribed.

Payload:
Carga útil: Payload publicado ou recebido de um determinado tópico.