Banco de Testes — /test-bench

Testar uma integração recém-configurada tirava você do produto. Para exercitar uma Coleta com
Parâmetros de Entrada era preciso montar um POST no Postman ou no Insomnia; para ver uma
Entrega acontecer, era preciso uma mensagem chegando de verdade — ou seja, esperar um ciclo real.
O custo não era só o clique. O payload de teste ficava na coleção de uma pessoa: ninguém revisava, ninguém reexecutava quando a integração mudava, e ele não viajava junto quando a integração era instalada em outro cliente.
O Banco de Testes traz isso para dentro do CMS.
Os combos oferecem as Coletas e Entregas das Interfaces que você pode ver — cada uma com a descrição da Interface ao lado da sigla —, menos as das ferramentas de Help Desk: para testar um destino de chamado, use o botão Abrir chamado na Configuração ITSM, que passa pelo corpo do destino.
A regra que sustenta a tela
O teste roda pelo caminho de produção, marcado como teste. Não existe um segundo motor de execução: testar uma Entrega é injetar uma mensagem de verdade na Interface, e testar uma Coleta é chamar o mesmo executor que o agendador chama.
Isso é uma decisão de confiança. Um caminho de teste separado seria a garantia de que o teste passa e a produção falha — e é exatamente por isso que um teste verde aqui é uma afirmação sobre o sistema real, não sobre uma simulação dele.
A marca “teste”
Se o teste passa pelo caminho de produção, ele precisa ser distinguível do tráfego de verdade. Toda mensagem gerada aqui nasce marcada, e a marca muda o que o sistema faz com ela:
| O que uma mensagem de teste não faz |
|---|
| Não bloqueia a Interface, mesmo que caia num Erro de Negócio com “bloqueia fila” |
| Não dispara alerta de erro de entrega, erro de negócio nem fila bloqueada |
| Não conta nos painéis, nos relatórios nem no Raio-X do Dia |
| Não entra no Contrato Observado — o payload de teste não contamina o schema inferido do tráfego |
Na tela de Mensagens, no monitor da interface e no detalhe da mensagem ela aparece com um frasco âmbar, que mostra quem disparou ao passar o mouse, e o filtro de tráfego deixa escolher entre reais e de teste, só tráfego real ou só do Banco de Testes.
O modo Publicar na origem é a exceção, e ela é deliberada — ver abaixo. A mensagem que nasce ali é real, porque o CMS não tem como distinguir o estímulo que você produziu daquele que o equipamento produziu.
Os quatro modos
O modo é a pergunta central da tela: até onde este teste vai?
| Modo | O que faz | Escreve fora do CMS? |
|---|---|---|
| Ensaio | Resolve credencial, variável e template e mostra o que sairia | Não |
| Leitura | Executa a busca na origem e mostra o que veio; não grava mensagem nem entrega | Lê, não escreve |
| Publicar na origem | Produz o estímulo na própria origem — publica no broker, escreve no CLP, solta o arquivo na pasta — para a Coleta reagir sozinha | Sim |
| Ciclo completo | Passa pelo caminho de produção inteiro: grava a mensagem e entrega no destino real | Sim |
Ensaio é o modo do dia a dia de configuração: ele mostra o método e a URL, a query string, os cabeçalhos que a requisição realmente levaria (inclusive os que o CMS acrescenta), o corpo já transformado, ou o comando SQL com os binds — tudo sem que nada saia da máquina. É o único modo que funciona bem antes de ativar a Definição, e é por isso que a caixa “+N inativa(s)” existe no combo: o momento mais útil do Ensaio é justamente antes de ligar a integração.
Leitura existe só para Coleta, e nem toda Coleta a aceita. Quando não aceita, a tela diz o
motivo em vez de apenas recusar — um FILE_WATCH não tem “buscar agora”, um HTTP_POST escreveria
no destino, um tipo push espera o mundo externo chamar.
Publicar na origem é o que dá teste ao conector que não é chamado, e sim acionado: MQTT, OPC UA, Modbus e pasta observada. Você publica no tópico, escreve o valor de gatilho ou cria o arquivo, e assiste a Coleta reagir pelo caminho normal.
De onde vem o payload
Digitar JSON do zero é a última opção da tela, não a primeira. Acima do editor aparecem as fontes que o CMS já tem:
| Fonte | O que é |
|---|---|
| Do Contrato Observado | Um exemplo montado a partir do schema inferido do tráfego real daquela Definição |
| Exemplo N | Amostra declarada à mão, guardada no Contrato Observado |
| Uma mensagem real | O payload de uma das últimas mensagens que passaram por ali, com data e hora |
Definição com Regra de Criptografia não oferece mensagens reais como ponto de partida — a tela diz isso em vez de omitir em silêncio. Decifrar para preencher um campo de teste contornaria a regra que alguém configurou de propósito.
O editor é o mesmo Monaco do resto do produto e pinta o conteúdo pela linguagem do Content-Type da própria Definição — um corpo XML não sai sublinhado de vermelho por ser lido como JSON quebrado.
Quando a Definição tem contrato de entrada (os campos “vem de fora” de uma Entrega SAP, os
Parâmetros de Entrada de uma Coleta), o payload ganha a chave Formulário | JSON. No Formulário,
cada campo do contrato é uma caixa, com os obrigatórios marcados — ninguém precisa lembrar o nome
exato de localInstalacao. As duas vistas editam o mesmo conteúdo: trocar de uma para a outra não
perde nada.
Enviar como uma Aplicação produtora
Numa Entrega com Transformador por Aplicação produtora, o Ciclo completo ganha o campo Enviar como. Sem ele, o teste seguiria só o caminho de quem já manda no formato da Entrega, e o Transformador de cada produtora ficaria sem teste.
| Opção | O que o teste faz |
|---|---|
| Sem Aplicação produtora (já no formato da Entrega) | O padrão. Só o Transformador da Entrega roda |
| Uma produtora (sigla — Transformador) | O payload passa pelo Transformador dela antes do da Entrega, como uma mensagem real dela. Escreva-o no formato que ela manda |
Escolhida uma produtora, o editor e o Content-Type do envio seguem os dela — XML, se ela manda XML —, e a tela deixa de conferir os Parâmetros de Entrada: o payload está no formato da produtora, e quem o leva ao contrato é o Transformador dela. Quem enviou continua sendo você, e a mensagem nasce marcada como teste como qualquer outra daqui. No painel de resultado, o Transformador da produtora aparece antes do da Entrega, na ordem em que rodaram.
Uma mensagem real que passou pelo Transformador de uma produtora sugere o que ela mandou, com a sigla dela ao lado da data — e escolhê-la já marca Enviar como com a mesma produtora e passa para o Ciclo completo. Sem isso, o teste mandaria o dialeto da produtora como se fosse o formato da Entrega.
O campo só existe no Ciclo completo: o Ensaio parte de um payload já no formato da Entrega e não roda o Transformador da produtora, e oferecê-la ali mostraria uma requisição que não sairia. Com Enviar como preenchido também não há Salvar como cenário — o cenário não guarda a produtora, e repetido mandaria o dialeto dela sem o Transformador dela.
Antes de escrever no destino real
Ciclo completo e Publicar na origem pedem confirmação digitada: você escreve a sigla da Definição para prosseguir. O texto diz o destino, o tipo de operação e — no caso da publicação na origem — que a mensagem gerada será real.
A confirmação existe para alguém ver qual destino vai ser escrito. Ela cumpre isso na primeira vez; da segunda em diante, numa sessão de ajuste em que se dispara o mesmo teste dez vezes, viraria digitação repetida. Por isso existe a caixa “não perguntar de novo”, e ela tem limites deliberados:
- vale por Definição e por modo — dispensar o Ciclo completo não dispensa a publicação na origem, que é mais grave;
- vale enquanto a aba estiver aberta, e morre com ela;
- enquanto estiver ativa, a tela avisa em amarelo que o próximo clique dispara direto, com um botão para voltar a perguntar.
O que aconteceu
O painel da direita conta a história na ordem em que ela acontece: primeiro o que foi enviado, depois a resposta do destino. Ver o retorno sem ver a requisição obriga a adivinhar o que o CMS montou — e é justamente aí que mora a maioria dos erros de configuração.
Cada etapa abre e fecha: requisição, query string, cabeçalhos, corpo, comando, binds, retorno. Nas etapas de conteúdo há duas abas, Preview (formatado) e Cru (byte a byte, como saiu).
- Valor de Variável Global usado como bind aparece identificado, sem o valor.
- Conteúdo protegido por Regra de Criptografia aparece cifrado, com o aviso de que decifrar exige a Ferramenta própria.
- Quando a mensagem foi gerada, há um atalho direto para ela na tela de Mensagens.
- Quando a condição de um encaminhamento não foi atendida, o quadro Encaminhamentos não feitos diz qual destino ficou de fora e por quê. O alerta Condição Atendida não dispara com mensagem de teste.
Coleta que espera o ciclo da Interface
No Ciclo completo de uma Coleta com destino, a mensagem nasce Não Processada e só é encaminhada no próximo ciclo da Interface — que, numa Interface agendada de hora em hora, pode estar a quase uma hora de distância. O painel diz isso por extenso: “Aguardando o próximo ciclo da Interface X: 24/09/2026 15:00” (ou “roda a cada N s”, numa Interface por intervalo).
Ao lado fica Encaminhar agora, que adianta o encaminhamento só das mensagens deste teste. Ele
não roda o ciclo da Interface — aquilo faria também a busca de produção e levaria junto qualquer
outra mensagem parada ali. Com a Interface bloqueada o botão não aparece: nada é encaminhado até o
desbloqueio. O clique fica no Log de Auditoria, como ENCAMINHAR_TESTE_COLETA.
Chegando aqui pelo caminho curto
Ninguém acorda decidido a “ir ao Banco de Testes”: a pessoa está olhando uma Definição e quer ver aquilo funcionar. Por isso o acesso principal não é o menu, e sim o botão Testar na linha da Coleta ou da Entrega em Definições de Coleta, Definições de Entrega e Definição de Mensagem. Ele abre esta tela já apontada para aquela Definição.
O Banco de Testes lê a Definição já gravada. Se houver alteração não salva na tela de cadastro, o CMS avisa antes de trazer você para cá: o que está na tela e ainda não foi salvo fica de fora do teste.
Guardar o teste que acabou de rodar
Um teste que funcionou é conhecimento que costuma se perder. O botão Salvar como cenário pega o disparo que acabou de acontecer — Definição, modo, payload e parâmetros — e o guarda num Plano de Teste, com a opção de transformar o resultado obtido em expectativa.
Se o teste falhou, a tela avisa: o cenário vai afirmar que a falha acontece. Isso é útil para documentar um problema conhecido, e é péssimo se não for essa a intenção — daí o aviso, e não o bloqueio.
Onde fica no menu
Laboratório de Integração, ao lado de Planos de Teste e dos Simuladores. O agrupamento é uma afirmação sobre o trabalho: Config. de Integração é onde a integração se cadastra, o Laboratório é onde ela se exercita. O simulador falsifica a origem, o Banco de Testes dispara o estímulo — testar uma Coleta OPC UA é usar os dois juntos.