Test web
Skill tbc-servicos/dataagile-agent-kit/protheus/skills/test-web
Plugin Claude Code para Protheus e ADVPL/TLPP — base 155k+ registros, Agent Teams, compilação TDS-CLI, testes TIR e MCP PO-UI
npx -y skills add tbc-servicos/dataagile-agent-kit --skill test-webAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Ciclo completo de testes E2E do TOTVS Protheus via MCP Playwright com evidências e documentação. Cobre roteiro → aprovação → execução com screenshots → validação → error handling → persistência na base de conhecimento → geração de MIT010. Substitui TIR. Use quando precisar testar rotinas Protheus, validar regras de negócio, coletar evidências ou gerar documentação de testes.
SKILL.md
10.5 KB, as published. Nobody here has run it
Protheus Test Web — Testes E2E com Evidências e Documentação
Ciclo completo de testes E2E do TOTVS Protheus webapp usando MCP Playwright. Substitui o TIR (TOTVS Interface Robot) por uma abordagem interativa com visão real da tela.
Pré-requisitos
- Plugin MCP Playwright instalado (
/plugin→ instalarplaywright) - URL do Protheus webapp (porta 7600 tipicamente)
- Credenciais de acesso (usuário/senha)
- Ambiente, módulo e filial do teste
- Roteiro de teste (arquivo markdown, documento ou instruções do usuário)
- Fonte
assets/fsttst.tlppcompilado no RPO do ambiente de teste — runner universaldev.tools.U_Run_Aplica, usado para abrir a rotina direto pelo campo "Programa Inicial" (sem navegar o menu). Se não estiver compilado, compilar via/protheus:compileantes de iniciar (fallback: navegação por menu)
Ciclo Completo: Roteiro → Aprovação → Execução → Evidências → Documentação
Etapa 1 — Elaboração do Roteiro de Testes
Antes de executar qualquer teste, elaborar um roteiro completo e apresentar ao team leader (desenvolvedor humano) para aprovação.
Fontes de conhecimento para o roteiro
Consultar a base de conhecimento Protheus via MCP antes de elaborar:
searchFunction({ name: "<rotina>", limit: 5 })
searchKnowledge({ skill: "protheus-test", keyword: "<módulo>" })
listTests({ platform: "protheus", module: "<módulo>", limit: 5 })
Usar o conhecimento da Knowledge Base para entender:
- Campos obrigatórios da rotina
- Validações e Pontos de Entrada ativos
- Regras de negócio implementadas
- Fluxo esperado da rotina (inclusão, alteração, exclusão)
Formato do roteiro
Apresentar ao team leader:
# Roteiro de Teste: <nome do teste>
**Rotina:** <código e nome> (ex: MATA103 — Documento de Entrada)
**Módulo:** <sigla> (ex: SIGACOM)
**Ambiente:** <nome do ambiente>
**Filial:** <código e descrição>
**Data:** <data de execução>
## Objetivo
<O que está sendo testado e por quê>
## Pré-condições
<Dados necessários, configurações, pedidos existentes, etc.>
## Cenários de Teste
### TC01 — <descrição>
- **Ação:** <o que fazer>
- **Dados:** <valores a preencher>
- **Resultado esperado:** <o que deve acontecer>
- **Critério VERIFICÁVEL:** <texto literal esperado no snapshot, registro consultável
(tabela+chave) ou mensagem exata — PASSOU exige o critério ENCONTRADO; "a tela
parece certa" NÃO é critério>
### TC02 — <descrição>
...
## Cleanup
<Como reverter os dados após o teste>
REGRA: Só prosseguir para a execução após aprovação explícita do team leader.
Etapa 2 — Preparação de Evidências
Criar diretório de evidências:
evidencias/
└── YYYY-MM-DD_<rotina>_<descricao>/
├── 01_parametros_iniciais.png
├── 02_login.png
├── ...
└── relatorio.md
Etapa 3 — Execução do Teste (QA)
Cada passo DEVE ser acompanhado de screenshot via browser_take_screenshot.
Nomear sequencialmente com descrição clara.
Fases 1-3 — Acesso à rotina via Run_Aplica (PADRÃO)
Usar o runner dev.tools.U_Run_Aplica (fonte assets/fsttst.tlpp) como
Programa Inicial — abre a rotina direto, sem login pelo menu:
browser_navigate→ URL do webappbrowser_wait_for(5-10s) — repetir se timeoutbrowser_snapshot→ identificar campos dos Parâmetros Iniciais- No campo "Programa Inicial", informar
dev.tools.u_run_aplica browser_select_option→ selecionar ambiente, clicar "Ok"- Screenshot:
01_parametros_iniciais.png - Aguardar a tela "Executa funcao" (8-12s)
- Preencher Empresa, Filial, Usuário e Senha do teste e clicar "Ambiente" (monta o ambiente via RpcSetEnv — aguardar o MsgRun terminar)
- Screenshot:
02_ambiente_montado.png - No campo "Funcao:", digitar a função da rotina (ex.:
MATA103) e clicar "Executar" - Aguardar a rotina abrir (10s), tratar dialogs (Moedas → Confirmar, Filiais → duplo clique + Ok)
- Screenshot:
04_browse_rotina.png
A tela também localiza funções no RPO por máscara ("Mascara Funcao" + "Buscar", aceita
*) — útil para confirmar que o fonte em teste está compilado antes de executar. Erros na execução aparecem na área "Resultado" quando "Protecao de erro" está marcada.
Fases 1-3 (fallback) — Login e navegação por menu
Somente se o fsttst.tlpp não puder ser compilado no ambiente:
browser_navigate→ URL, aguardar, selecionar ambiente, "Ok" — Screenshot:01_parametros_iniciais.png- Preencher usuário/senha, "Entrar", aguardar (8-12s)
— Screenshot:
02_login.png - Alterar Ambiente se necessário (botão pesquisa → tabela → Confirmar),
fechar popup "base de Desenvolvimento" se aparecer, aguardar menu (15s)
— Screenshot:
03_menu_principal.png - Clicar no grupo de menu → rotina, aguardar (10s), tratar dialogs
— Screenshot:
04_browse_rotina.png
Fase 4 — Ação do Teste
- Executar a ação (Incluir, Classificar, etc.)
- Preencher campos conforme roteiro
- Screenshot a cada preenchimento relevante:
05_cabecalho_preenchido.png06_pedido_importado.png07_grid_editada.png
- Salvar/Confirmar
Fase 5 — Validação
- Screenshot do resultado:
08_resultado.png - Se bloqueio esperado: Screenshot:
09_bloqueio_regra.png - Se sucesso: Screenshot:
10_documento_gravado.png - Registrar resultado: PASSOU / FALHOU / BLOQUEADO (esperado ou não)
Fase 6 — Cleanup
- Excluir registro criado (se necessário)
- Screenshot:
11_registro_excluido.png - Confirmar que dados voltaram ao estado original
Etapa 4 — Tratamento de Erros (error.log)
Se ocorrer erro SMARTCLIENT (THREAD ERROR) durante a execução:
- Screenshot imediato:
XX_erro_smartclient.png - Clicar em "Detalhes" no dialog de erro
- Screenshot dos detalhes:
XX_erro_detalhes.png - Copiar o conteúdo completo do textbox de erro (stack trace)
- Analisar o erro:
- Identificar a rotina/linha que causou (ex:
MATA103.PRW line: 3669) - Classificar: erro de ambiente (config), erro de código (dev), erro de dados
- Identificar a rotina/linha que causou (ex:
- Devolver para o desenvolvedor com:
- Stack trace completo
- Screenshot do erro
- Análise da causa provável
- Sugestão de correção (se possível)
- NÃO prosseguir com o teste até o erro ser resolvido
- Registrar a lição aprendida via
/protheus:feedback
Erros comuns que devem ser devolvidos ao dev:
CheckSpecialKeynão configurada → problema de ambientetype mismatch→ campo com tipo incorreto no códigoarray out of bounds→ lógica de array incorretavariable does not exist→ variável não declarada- Qualquer
THREAD ERRORcom stack trace apontando para.PRWcustomizado
Etapa 5 — Review das Evidências
Apresentar ao team leader:
- Lista de screenshots com descrição de cada passo
- Resultado de cada cenário (PASSOU/FALHOU)
- Erros encontrados com stack trace (se houver)
- Perguntar se o teste precisa ser reexecutado ou ajustado
Etapa 6 — Persistência na Base de Conhecimento
Teste bem-sucedido → Salvar via MCP
Após aprovação do team leader, salvar o teste:
saveTest({
platform: "protheus",
module: "<módulo>",
title: "<título claro>",
scenario: "<cenários cobertos>",
script: "<roteiro completo em markdown>",
tags: "<tags CSV>",
submitted_by: "<email do dev>"
})
Teste com falha ou lição aprendida → /protheus:feedback
Para erros encontrados, comportamentos inesperados ou lições aprendidas:
Invocar /protheus:feedback com:
- O que aconteceu (erro, comportamento inesperado)
- Causa raiz identificada
- Como foi resolvido (ou como deveria ser resolvido)
- Contexto (rotina, ambiente, dados)
Etapa 7 — Geração de Documentação MIT010
Após aprovação das evidências, gerar documento MIT010 (Análise de Negócio):
- Cabeçalho: nome do teste, data, ambiente, responsável
- Objetivo: o que foi testado e por quê
- Pré-condições: dados necessários, configurações do ambiente
- Roteiro passo a passo: cada ação com screenshot inline
- Resultado esperado vs obtido: comparação por cenário
- Evidências: todos os screenshots organizados sequencialmente
- Erros encontrados: stack traces, análise, resolução
- Conclusão: APROVADO / REPROVADO / PENDENTE
- Lições aprendidas: o que foi registrado via feedback
Para gerar o MIT010, usar a skill /mit-docs:mit010 (plugin mit-docs) se disponível,
ou gerar em Markdown/DOCX com referências às imagens.
Formato de saída: perguntar ao usuário (Markdown, DOCX).
Regras Críticas
Formatação de Números
- Separador de MILHAR = ponto (.)
- Separador DECIMAL = vírgula (,)
- Ao digitar valores, usar APENAS vírgula como decimal, SEM pontos
- Correto:
3,676500— ERRADO:3676,500000
Checkboxes em Tabelas
- Clique simples = seleciona a linha (NÃO marca o checkbox)
- Duplo clique = marca/desmarca o checkbox
Snapshots Grandes
- Protheus gera snapshots >100K chars — salvar em arquivo com
filename - Buscar refs via grep/python no arquivo salvo
- Sempre tirar
browser_take_screenshotpara validação visual
Tempos de Espera
- Nunca prosseguir sem aguardar carregamento
- Se snapshot retorna vazio, aguardar mais tempo
- Ver tempos em
references/protheus-webapp-patterns.md
Evidências (Screenshots)
- OBRIGATÓRIO em cada passo — sem evidência não há teste válido
- Nomes sequenciais e descritivos
- Diretório dedicado por execução
Aprovação do Roteiro
- OBRIGATÓRIO antes de executar — apresentar roteiro ao team leader
- Baseado no conhecimento da Knowledge Base via MCP
- Só prosseguir com aprovação explícita
Dialogs Modais
- Sempre verificar se há dialog antes de interagir com a tela
- Buscar botões: "Fechar", "Ok", "Confirmar", "Sim", "Cancelar"
Referências
Consultar references/protheus-webapp-patterns.md para padrões de interface,
formatação, módulos e tempos de espera.