Testes de brokers

Como testar MQTT com o Postman

Use a requisição MQTT do Postman para conectar a um broker, se inscrever em topics e publicar mensagens — veja as limitações e quando outra ferramenta é melhor.

Atualizado · 7 min de leitura

Como testar MQTT com o Postman

Sim, dá para testar MQTT com o Postman: crie uma nova requisição, escolha MQTT, informe a URL do broker, conecte, adicione topics para se inscrever e publique mensagens pelo compositor. É um jeito prático de cutucar um broker se o Postman já é sua ferramenta de APIs — mas é um cliente manual, não um executor de testes MQTT automatizados. Este guia mostra o fluxo de trabalho, as configurações que mais confundem e onde o Postman deixa de ser a ferramenta certa.

Criar uma requisição MQTT

  1. No Postman, clique em New (ou no + ao lado das abas) e escolha MQTT.
  2. No campo de URL, informe o endereço do broker com esquema e porta, por exemplo mqtt://broker.connectmq.com:1883.
  3. Abra as configurações da requisição e defina um client ID se quiser um previsível; caso contrário, o Postman gera um.
  4. Se o broker exige autenticação, adicione usuário e senha (use variáveis como {{mqtt_user}} e {{mqtt_pass}} de um environment em vez de digitar segredos na requisição).
  5. Clique em Connect. O painel de mensagens mostra o evento de conexão, ou um erro se o broker recusou.

A versão do protocolo (3.1, 3.1.1 ou 5) é escolhida nas configurações da requisição. Com MQTT 5 você também ganha campos para propriedades de conexão e user properties nas mensagens publicadas.

ConfiguraçãoTCP puroTLS
Esquema da URLmqtt://mqtts://
Porta no ConnectMQ18838883
Certificados—Uma CA pública funciona direto; para CAs privadas, adicione um arquivo de CA nas configurações de certificados do Postman

Não sabe qual porta seu broker usa? Portas MQTT explicadas cobre 1883, 8883, 8083/8084 e as alternativas atrás de proxies.

Inscrever-se em topics

Vá para a área Topics da requisição, adicione um filtro de topic e escolha um QoS. Wildcards funcionam normalmente — testmqtt/postman/# recebe tudo sob esse prefixo, testmqtt/postman/+/status um nível de dispositivos. As mensagens recebidas aparecem na lista com topic, horário e payload; payloads JSON podem ser expandidos.

Use um prefixo único durante os testes. Em um endpoint compartilhado, se inscrever em # ou em um nome genérico como test/# mostra o tráfego de outras pessoas e dificulta enxergar o seu. Se um filtro não casa com o esperado, cole-o no topic matcher junto com o topic em que você publica.

Publicar mensagens

O compositor na parte de baixo da requisição publica em um topic por vez:

  • Topic: por exemplo testmqtt/postman/device-1/telemetry
  • Payload: texto ou JSON como {"temp": 21.5, "unit": "C"}
  • QoS: 0, 1 ou 2
  • Retain: ligado se novos inscritos devem receber o último valor imediatamente

Mensagens salvas ajudam em verificações repetidas — mantenha uma mensagem "ligar", uma "desligar" e uma com "payload malformado" na mesma requisição e dispare uma de cada vez. Como a própria requisição está inscrita, você vê suas mensagens chegarem, o que confirma a ida e volta pelo broker.

Um híbrido útil: entra HTTP, sai MQTT

O Postman se destaca quando seu sistema mistura HTTP e MQTT. Abra duas abas:

  1. Uma requisição MQTT inscrita no topic em que seu backend publica, por exemplo testmqtt/postman/orders/#.
  2. Uma requisição HTTP que chama sua API — POST /orders, um webhook, um endpoint de comandos para dispositivos.

Envie a requisição HTTP e observe a aba MQTT: você vê se o backend publicou, em qual topic, com qual payload e flag de retain. É a verificação manual mais rápida para "a API retorna 200, mas o dispositivo nunca reage".

Solução de problemas de conexão MQTT no Postman

SintomaCausa provávelCorreção
A conexão fica girando e dá timeoutPorta bloqueada por firewall ou proxy, ou porta TLS com mqtt://Use mqtts:// com 8883; teste o acesso com verificações de porta
Connection refused: not authorizedUsuário/senha errados, ou o broker exige credenciaisConfirme que as variáveis do environment estão realmente aplicadas à requisição
Conecta e desconecta na horaOutro cliente usa o mesmo client IDDeixe o Postman gerar o ID ou acrescente um sufixo aleatório
Erro de TLS / certificadoO broker usa uma CA privada ou certificado autoassinadoAdicione a CA nas configurações de certificados do Postman, em vez de só desativar a verificação
Inscrito, mas sem mensagensErro de digitação no topic, diferença de maiúsculas ou ACL negando a inscriçãoCompare filtro e topic no topic matcher

Os reason codes do broker (por exemplo 0x87 Not authorized no MQTT 5) podem ser consultados na ferramenta de reason codes MQTT.

Limitações que você precisa conhecer

O suporte a MQTT do Postman foi feito para explorar, não para automatizar testes. No momento da escrita:

  • Sem scripts de teste. Requisições HTTP rodam asserções pm.test; requisições MQTT não conseguem verificar as mensagens recebidas.
  • Sem Collection Runner nem Newman. Você pode salvar requisições MQTT em coleções, mas não rodá-las na CI com o Newman.
  • Uma conexão por aba. Simular dez dispositivos significa dez abas — ou outra ferramenta.
  • Voltado ao desktop. Protocolos não HTTP na versão web do Postman podem exigir o Postman Desktop Agent.

O Postman evolui rápido, então confira a documentação da sua versão. Se você precisa de algo da lista acima hoje, escolha uma ferramenta que faça isso nativamente.

Alternativas para testar MQTT

FerramentaMelhor para
Cliente MQTT onlineSem instalação, conecta por WebSockets seguros a partir de qualquer navegador
MQTTXCliente desktop com várias conexões, scripts e propriedades do MQTT 5
MQTT ExplorerNavegar por toda a árvore de topics e pelas mensagens retidas
mosquitto_pub / mosquitto_subScripts de shell e verificações na CI
Um script de teste (Python, Node, Go…)Asserções automatizadas na sua suíte de testes

Para uma verificação compatível com CI que o Postman não faz, dois comandos do mosquitto bastam:

Ida e volta automatizada com os clientes do mosquitto
TOPIC="testmqtt/postman/ci-$RANDOM"
mosquitto_sub -h broker.connectmq.com -p 1883 -t "$TOPIC" -C 1 -W 10 > out.txt &
sleep 1
mosquitto_pub -h broker.connectmq.com -p 1883 -t "$TOPIC" -m '{"ok":true}' -q 1
wait
grep -q '"ok":true' out.txt && echo "PASS" || { echo "FAIL"; exit 1; }

-C 1 encerra após uma mensagem e -W 10 falha depois de dez segundos, então o script nunca trava. Mais padrões em exemplos de mosquitto_pub e mosquitto_sub, e as melhores ferramentas cliente MQTT compara a fundo as opções com interface gráfica.

Compare com o cliente MQTT no navegador

A requisição MQTT do Postman é uma boa ferramenta manual quando seu time já vive no Postman, especialmente para conferir se ações HTTP geram as mensagens MQTT certas. Para tudo que precisa ser repetível — testes de regressão, carga, muitos dispositivos simulados — leve as mesmas verificações para scripts ou para um cliente MQTT dedicado, e deixe o Postman para explorar.

Perguntas frequentes

O Postman suporta MQTT?

Sim. Versões recentes do Postman têm um tipo de requisição MQTT ao lado de HTTP, WebSocket e gRPC. Ele conecta a um broker, se inscreve em topics, publica mensagens com QoS e retain e suporta MQTT 3.1, 3.1.1 e 5.

Dá para automatizar testes MQTT com Postman ou Newman?

Não do jeito que você automatiza requisições HTTP. No momento da escrita, requisições MQTT não executam scripts de teste e não rodam no Collection Runner nem no Newman. Para testes MQTT automatizados, use um script com uma biblioteca MQTT ou mosquitto_pub e mosquitto_sub na CI.

Por que o Postman não conecta ao meu broker MQTT?

Confira primeiro o esquema e a porta: mqtt:// com a porta 1883 para TCP puro, mqtts:// com a 8883 para TLS. Uma porta TLS com mqtt://, um firewall bloqueando a porta, credenciais erradas ou um client ID duplicado são as causas mais comuns. Teste as mesmas configurações no cliente MQTT online para isolar o Postman.