Primeiros passos
Esta sessão não precisa de nada além do Signal Lab: tudo vai para 127.0.0.1, este computador, então nenhum dispositivo, rede ou regra de firewall entra em jogo. Você vai:
- enviar uma mensagem OSC e vê-la chegar;
- ver a mesma mensagem no Inspetor;
- salvá-la na biblioteca e enviá-la de novo de qualquer lugar;
- iniciar uma API HTTP emulada e perguntar algo a ela;
- executar um experimento contra essa API, ler por que ele falha, corrigi-lo e acrescentar uma verificação.
Se ainda não instalou o Signal Lab, veja Instalação e atualização. Não sabe onde fica alguma coisa na janela? Veja A janela.
Enviar uma mensagem OSC e vê-la chegar
Primeiro, algo que receba a mensagem: o monitor da tela OSC.
- Abra OSC na barra lateral.
- Na seção Monitor, defina o campo Endereço de escuta como
127.0.0.1:9000, para que o monitor escute só neste computador. - Pressione Escutar. O botão passa a ser Parar, o console diz que o monitor está escutando, e o monitor aparece como tarefa na faixa do painel inferior.
Agora a mensagem, a partir do envio ao lado:
- Na seção Envio, deixe o campo Destino host:porta em
127.0.0.1:9000, a porta em que o monitor escuta. - Deixe o campo Endereço OSC em
/hello/avatar/1e o único argumento float em Argumentos em1.0— ou digite um endereço e valores seus. - Pressione Enviar, ou Enter no campo de destino ou de endereço.
Uma linha aparece na tabela do monitor: a Hora de chegada, a Origem (127.0.0.1 e a porta de onde a mensagem saiu), o Endereço e os Args. Abaixo do envio, uma linha confirma o que foi enviado e o tamanho em bytes; envie de novo e ela conta as repetições.
Um aviso sobre o firewall?
No Windows, iniciar o monitor pode fazer aparecer, abaixo do cabeçalho, um aviso sobre o Firewall do Windows. Ele trata de mensagens vindas de outras máquinas; o tráfego em 127.0.0.1 nunca é filtrado. Pressione Agora não por enquanto — O aviso do firewall explica quando permitir.
Vê-la no Inspetor
O Inspetor registra cada quadro que cada ferramenta envia e recebe — mas só enquanto a captura está ativa.
- No painel inferior, abra a aba Inspetor.
- Pressione Ativar captura. O ponto da aba acende.
- De volta ao envio, pressione Enviar mais uma vez.
Aparecem duas linhas, a mais recente primeiro: a mensagem como foi enviada (→) e como o monitor a recebeu (←), cada uma com o protocolo, o endereço da outra ponta, o tamanho e um resumo. Clique em uma: Detalhes do quadro mostra qual ferramenta a enviou ou recebeu e em quais endereços, a mensagem em Decodificado e os Bytes que a compõem.
Pressione Desativar captura quando terminar; com a captura desativada, ela não custa nada. Mais em Inspetor.
Salvá-la como sinal e enviá-la de novo
Uma mensagem que você vai querer de novo pertence à biblioteca de sinais.
- Na tela OSC, pressione Salvar… abaixo do envio.
- Na caixa Salvar na biblioteca, defina Nome como
First messagee Pasta comoTutorial— uma pasta nova é criada quando você salva nela. - Pressione Salvar.
O envio agora está ligado a esse sinal: o botão diz Salvo, e um chip ao lado mostra onde o sinal está. Mude o argumento e o chip registra a alteração; Salvar (Ctrl+S) atualizaria o sinal.
Agora envie-o de novo, de três jeitos:
- Pela biblioteca. Clique no chip: a tela Sinais abre com o sinal selecionado na pasta
Tutorial(ou abra Sinais e clique nele ali). Pressione Enviar, ou Ctrl+Enter; um clique duplo nele na lista também o envia. - De qualquer lugar. Em qualquer tela, pressione Ctrl+K, digite
firste pressione Enter. - De um experimento. Quando você adiciona um nó, o menu lista os seus sinais em Sinais salvos, prontos para virar uma etapa que envia um deles.
Em todas as vezes, o monitor mostra a mensagem chegando e o console dá o nome do sinal. Um sinal envia exatamente o que a tela dele teria enviado. Mais em Sinais.
Quando terminar com o OSC, pressione Parar no monitor.
Consultar uma API emulada
O Signal Lab vem com cinco emuladores, todos em 127.0.0.1. Um deles, a API de demonstração, é uma API HTTP em 127.0.0.1:8080 com estas rotas:
| Requisição | Resposta |
|---|---|
GET /health | 200 com {"status":"ok","time":"…"} — a hora atual |
GET /users/:id | 200 com o usuário desse id, como {"id":"42","name":"User 42"} |
POST /users | 201 com um cabeçalho Location e o novo id |
GET /slow | 200 depois de 1,5 segundo |
qualquer método, /flaky | 503, 503 e depois 200 a partir da terceira requisição |
| qualquer outra coisa | 404 |
- Abra Emuladores. A Biblioteca lista os cinco; selecione API de demonstração.
- Pressione Iniciar. Agora ela responde em
127.0.0.1:8080e roda como tarefa. - Abra HTTP. O método é
GET; defina a URL comohttp://127.0.0.1:8080/health. - Pressione Enviar, ou Enter na URL.
Em Resposta você vê o Status 200, a Latência, o Tamanho, os cabeçalhos da resposta e o corpo JSON. Envie http://127.0.0.1:8080/flaky três vezes: duas respostas 503 e depois 200 — é assim que um serviço que se recupera aparece para um cliente que tenta de novo.
De volta a Emuladores, o painel Ao vivo conta cada requisição, e a lista Recebidas mostra cada uma com a Regra que a respondeu e a Resposta. Deixe a API de demonstração rodando para a próxima parte. Mais em Emuladores.
Executar um experimento
Um experimento é um fluxo de etapas que você pode executar de novo e de novo. Aquele com que o Signal Lab abre na primeira vez — o modelo Verificação HTTP — envia uma requisição para http://127.0.0.1:8080/ e verifica se a resposta é 200.
Abrir o modelo
- Abra Experimentos.
- Se o canvas não mostrar quatro nós — Início, Requisição HTTP, Status HTTP, Fim —, pressione ☰ à esquerda da barra de ferramentas (Experimentos), escolha Verificação HTTP na lista de modelos e pressione Abrir experimento. Abrir substitui o experimento do canvas; Ctrl+Z traz o anterior de volta.
Clique em um nó para ver as configurações dele em Propriedades, à direita. Os experimentos se salvam sozinhos enquanto você edita.
Executá-lo e ler por que ele falha
- Pressione Executar experimento.
A Linha do tempo abre abaixo do canvas, com uma linha por etapa quando ela começa (Em execução) e outra quando termina: a hora, o nó e como foi. Esta execução falha:
- Início passa e informa a semente da execução.
- Requisição HTTP passa: a requisição saiu e uma resposta voltou,
HTTP 404. - Status HTTP falha: esperava
200e recebeu404.
A API de demonstração não tem rota para /, então respondeu 404 — e a verificação pegou isso. A linha no alto da linha do tempo diz Com falha e o porquê. Clique em uma linha para selecionar o nó dela no canvas.
A própria requisição falhou?
Se a etapa Requisição HTTP falhar com uma conexão recusada, nada está escutando em 127.0.0.1:8080: inicie a API de demonstração em Emuladores e execute de novo.
Corrigir a requisição
- Clique no nó Requisição HTTP.
- Em Propriedades, mude URL para
http://127.0.0.1:8080/health. - Pressione Executar experimento.
Desta vez todas as etapas passam: Status HTTP diz Condição satisfeita, Fim diz Concluído, e o título da linha do tempo diz Aprovado.
Acrescentar uma verificação
Um status 200 diz que o serviço respondeu; não diz o que ele respondeu. Verifique o corpo também:
- Clique no nó Status HTTP.
- Em Propriedades, pressione Adicionar a seguir — ou pressione A com o canvas em foco. Abre-se um menu de nós com um campo de busca.
- Digite
assert_bodye pressione Enter. Um nó Texto da resposta é adicionado entre Status HTTP e Fim, já ligado, com o campo Contém o texto pronto para digitar. - Digite
"status":"ok". - Pressione Executar experimento.
A nova etapa passa. Mude o texto para algo que o corpo não contém e execute de novo para vê-la falhar com o motivo.
O que uma execução deixa
- Um relatório. Quando uma execução termina, Relatório salvo aparece no título da linha do tempo; passe o ponteiro sobre ele para ver o arquivo. Uma execução que termina, aprovada ou com falha, grava um relatório na pasta
runsda sua pasta de dados, com os valores que usou e todas as etapas. No navegador, ele é um link de download. - Uma semente. O título também mostra a semente da execução, com o botão Fixar: os valores aleatórios de uma execução seguem a semente dela, e fixá-la os repete exatamente.
Mais em Execuções e relatórios.
Arrumar a casa
Pressione Parar tudo no cabeçalho: isso para a API de demonstração e qualquer outra coisa que ainda esteja rodando. O seu sinal, o experimento e os relatórios dele ficam na sua pasta de dados.
Para onde ir agora
- Conceitos: as ideias por trás das telas, sinais, tarefas, emuladores e experimentos.
- Experimentos: o editor completo, e cada tipo de nó em Nós.
- OSC, HTTP e as páginas dos outros protocolos, quando você apontar o Signal Lab para equipamentos reais.
- A linha de comando: execute o mesmo experimento em um terminal ou em um pipeline.