WebMCP no seu site|INEMA.CLUB-PRO

Aula 8 · 18 min

Testar sozinho: bateria nos três modos, checklist e plano

Uma ferramenta só está pronta quando um teste prova que ela funciona e que a página continua igual sem ela. A bateria do kit roda sem modelo nos três modos, compara ferramenta com formulário, testa a confirmação e a remoção. Nesta aula você a roda, vê uma quebra ser pega e sai com o plano datado do seu site.

Começar a aula
Bancada escura com notebook rodando um terminal e um robô humanoide industrial de visor preto observando um segundo monitor com navegador.

Nesta aula você vai

  1. 1O que a bateria confere em cada modo
  2. 2Uma "otimização" perigosa e o teste que pega
  3. 3O checklist antes de publicar
  4. 4O plano datado do seu site

Objetivo: rodar a bateria automática nos três modos, ver uma quebra ser pega e sair com o checklist e o plano datado da sua página.

01O mapa do curso

Quatro degraus e o que cada um entrega. Clique num exercício para ver o "pronto quando".

Dia 1Kit e modos

sem, polyfill, nativo

3 exercícios

A mesma página nos três modos, sem custo.

Ver a aula
Dia 1Ferramentas

registrar e chamar

3 exercícios

Uma ferramenta sua, chamada por executeTool.

Ver a aula
Dia 2Confirmação

anotações e portão

3 exercícios

Toda ação com efeito atrás do Confirmar.

Ver a aula
Dia 3Bateria

três modos

3 exercícios

Teste automático que pega quebra antes do visitante.

Ver a aula
Ao final do cursoPágina com ferramentas WebMCP, igual sem a API, com confirmação e bateria automática.
22 exercícios
Clique num exercício para ver o que fazer e o "pronto quando".
  1. 1/4

    Kit e modos

    A base: kit instalado, contexto seguro e a certeza de que o modo Sem funciona.

  2. 2/4

    Ferramentas

    Requer o degrau 1. Definição, registro com detecção e o resultado em texto JSON.

  3. 3/4

    Confirmação

    Requer o degrau 2. Anotações certas, texto de terceiros como dado e a pessoa decidindo.

  4. 4/4

    Bateria

    Requer os três. A bateria verde, uma quebra provocada e o plano do seu site.

Ciclo de vida, formulário e catálogo (aulas 4, 6 e 7) entram no gerador abaixo.

02A bateria completa

Primeiro os testes de regra (node --test, sem navegador), depois testar.mjs nos três modos. Nenhuma chamada de modelo.

Terminal · bateria
cd ~/projetos/formacao-webmcp-site-v72/kit
node --test 2>&1 | grep -E "^ℹ (pass|fail)"
node scripts/testar.mjs; echo "saída: $?"
Exemplo do repositório
ℹ pass 4
ℹ fail 0
== sem
   Chromium 156.0.8078.4 (Playwright)
ok    [sem] página sem erro de JavaScript
ok    [sem] sem rolagem horizontal em 390 px
ok    [sem] estado WebMCP esperado (sem) · sem
ok    [sem] busca pelo formulário funciona · of-301
ok    [sem] reserva pelo formulário funciona
== polyfill
ok    [polyfill] página sem erro de JavaScript
ok    [polyfill] sem rolagem horizontal em 390 px
ok    [polyfill] estado WebMCP esperado (com) · com
ok    [polyfill] busca pelo formulário funciona · of-301
ok    [polyfill] reserva pelo formulário funciona
ok    [polyfill] as 4 ferramentas do kit registradas · buscar_oficinas, listar_comentarios, minhas_reservas, reservar_vaga
ok    [polyfill] ferramenta devolve o mesmo que o formulário · of-301
ok    [polyfill] a tela mostra o que o agente recebeu · of-301
ok    [polyfill] reserva recusada na tela não reserva
ok    [polyfill] reserva confirmada aparece na tela
ok    [polyfill] entrada inválida volta erro legível, sem mudar nada · tema inválido: cobol
ok    [polyfill] ao sair da página as ferramentas saem (AbortSignal) · 0 restantes, toolchange 4x, getTools depois: NotAllowedError
ok    [polyfill] nenhum erro de JavaScript na sessão do agente
== nativo
ok    [nativo] página sem erro de JavaScript
ok    [nativo] sem rolagem horizontal em 390 px
ok    [nativo] estado WebMCP esperado (com) · com
ok    [nativo] busca pelo formulário funciona · of-301
ok    [nativo] reserva pelo formulário funciona
ok    [nativo] as 4 ferramentas do kit registradas · buscar_oficinas, listar_comentarios, minhas_reservas, reservar_vaga
ok    [nativo] ferramenta devolve o mesmo que o formulário · of-301
ok    [nativo] a tela mostra o que o agente recebeu · of-301
ok    [nativo] reserva recusada na tela não reserva
ok    [nativo] reserva confirmada aparece na tela
ok    [nativo] entrada inválida volta erro legível, sem mudar nada · tema inválido: cobol
ok    [nativo] ao sair da página as ferramentas saem (AbortSignal) · 0 restantes, toolchange 4x
ok    [nativo] nenhum erro de JavaScript na sessão do agente
BATERIA: 31/31 ok
saída: 0

No polyfill, getTools depois do pagehide dá NotAllowedError: ele desliga a API inteira. O teste aceita os dois jeitos de "sair": zero ferramentas e toolchange disparado.

03Provocar a quebra

O ensaio copia a página, faz a troca perigosa na cópia e roda a bateria só no modo nativo.

Terminal · quebra provocada
cd ~/projetos/formacao-webmcp-site-v72/kit
E=${TMPDIR:-/tmp}/ensaio-webmcp-site/a8; rm -rf $E; mkdir -p $E; cp -r pagina/. $E/
# a "otimização" perigosa: reservar sem esperar a pessoa
sed -i 's/const ok = await ui.pedirConfirmacao({ oficina, nome }, signal);/const ok = true;/' $E/ferramentas.mjs
PAGINA=$E node scripts/testar.mjs nativo | grep -E "FALHA|BATERIA"; echo "saída: ${PIPESTATUS[0]}"

04Checklist antes de publicar

Datado: 19/10/2026, spec de 16/10/2026.

1. Fallback

O site funciona igual sem document.modelContext.

Nada de polyfill em produção: ele é só para o ensaio.

05Prática

A bateria verde, a quebra pega e o seu plano. Cada exercício termina num pronto quando.

E1 · Bateria verde

5 min

Rode a bateria completa.

Pronto quando: node scripts/testar.mjs; echo "saída: $?" → BATERIA: 31/31 ok e saída: 0.

E2 · Pegar a quebra

5 min

Rode o ensaio da quebra provocada e leia a linha que falhou.

Pronto quando: O bloco imprime FALHA [nativo] reserva recusada na tela não reserva, BATERIA: 12/13 ok e saída: 1.

E3 · Plano datado

10 min

Gere o plano abaixo com a data de início e as horas que você tem. Escreva nele as 3 ferramentas do seu catálogo (aula 7) e a data em que vai rodar a bateria de novo.

Pronto quando: Você baixou o plano (.md ou .ics) e ele tem a data de reteste da bateria.

06Gere o seu plano com datas

Escolha a data de início e quanto tempo você tem por semana.

07Teste da aula

A explicação aparece depois da resposta.

Pergunta 1 de 4

Qual verificação pega a troca da confirmação por const ok = true?

08Em três frases

BateriaTrês modos, ferramenta igual ao formulário, confirmação, entrada inválida e remoção.
QuebraO caso "recusar" pega quem tira a confirmação para agilizar.
PlanoChecklist datado e reteste marcado para quando a spec mudar.

Para ir além

Aula anteriorVoltar ao início do curso