Seus testes continuam Playwright, Selenium e pytest. Não os substituímos. Nós os deixamos prontos para empresas, e você é dono de tudo: código, evidências e histórico.
Um teste com falha. Tudo o que ele deixou no seu disco.
Uma execução real, não uma simulação: TC92 em 2026-09-30, sem interface gráfica, no Chromium, Firefox e WebKit. Ele abre example.com, segue o link Learn more até a IANA e espera que o título seja Example Domain. A página diz Example Domains. Estes são os arquivos da execução no Chromium, seus tamanhos reais e o conteúdo de cada um.
O que o Evidence Locker guarda quando um teste falha?
Um teste que falha arquiva uma pasta com seu relatório forense, seus metadados, o log bruto e um screenshot do frame em que falhou, além do vídeo no caso de uma falha real. A linha 23 de TC92_Iana_heading.js espera que o título seja Example Domain. A página da IANA diz Example Domains: em 10000 ms o locator foi resolvido 23 vezes e leu o plural todas as vezes. BREACHED, nos três engines. Aqui está o frame em que ele falhou e todos os arquivos que gravou.
https://www.iana.org/help/example-domains
screenshot.png · 89,8 kB · uma captura de tela da viewport do último quadro, 1280×720: o que um usuário teria visto quando a verificação foi executada
No Evidence Locker, o mesmo registro abre em cinco abas:
ReportMetadataTelemetryRaw LogAI Analysis
report.md5.3 kB
O relatório forense, em Markdown: pode ser lido sem o Studio.
Incident summary
Root cause analysis
Network telemetry
Failure timeline
Historical stability
Self-healing log
Evidence artifacts
Performance budget
Lazy-loading audit
Use para abrir um ticket: o Incident summary nomeia o teste, o navegador, a página e o impacto no negócio, e a Root cause analysis a verificação que falhou, o seletor, os valores esperado e recebido e a linha do código-fonte.
metadata.json2.2 kB
32 campos, legíveis por máquina. Alguns deles, exatamente como foram gravados:
Use para filtrar falhas com um script em vez de um parser de Markdown. É também o arquivo que a cadeia de custódia sela: uma pasta com um metadata.json é um registro.
raw-data.json5.1 kB
O registro bruto: cada linha do console, erro de rede, problema de segurança e erro de página da execução, além das amostras de desempenho.
Use para ver o que a página fez em torno da falha. Uma aprovação FLAKY ou AUTO_RECOVER mantém o raw-data.json da tentativa que falhou, de modo que uma nova tentativa que escondeu a falha ainda deixa seu log.
Telemetrymedido
Medido ao final do teste, em relação aos seus limites. A barra representa a medição em relação ao respectivo limite.
LCP992 / 2500 ms
FCP992 / 1800 ms
CLS0.0295 / 0.1
TTFB727 / 800 ms
TBT0 / 200 ms
DOM114 / 1500 nodes
Heap5 / 50 MB
INPnot measured
Tudo dentro dos limites, e o relatório sinaliza que o TTFB está próximo do limite. O INP aparece como não medido, nunca como aprovado: não houve cliques nem digitação na página medida. A auditoria de carregamento sob demanda deu à página 85 de 100, nota B: uma imagem sem largura e altura.
Use para distinguir uma página lenta de uma asserção errada.
video.webm428.8 kB
0:08 de 0:16
A sessão inteira, 16.6 segundos: example.com, o clique em Saiba mais e, depois, a página da IANA enquanto a verificação tentava novamente. Mantida porque a execução teve o status BREACHED, ela pode ser reproduzida no Cofre de evidências. Uma falha real mantém seu vídeo: BREACHED, BREACHED_FLAKY e CHAOS_BREACHED por padrão, TIMEOUT e BLOCKED quando você os ativa em Configurações. CRASHED e UNREACHABLE nunca são oferecidos, pois a gravação fica corrompida ou vazia. Somente execuções web e móveis emuladas com Playwright gravam: um celular Android real, uma execução com Selenium e um teste de API não gravam.
Use para ver como a página chegou à verificação que falhou, passo a passo; a captura de tela acima é o último quadro.
Análise de IAsua IA
Ativada por padrão, com sua IA conectada. Com um modelo local do Ollama, a opção padrão, ou outro provedor que você escolher, o mecanismo adiciona quatro seções ao relatório: Diagnóstico, Causa provável, Impacto e Ação recomendada. Quando sua própria ferramenta de IA de linha de comando está ativada no redator de IA, ela lê report.md após a execução, para até cinco falhas por execução, e adiciona uma quinta seção:
Diagnosis
Classificação (somente ferramenta de linha de comando)
Probable cause
Impact
Recommended action
A classificação é exatamente uma destas: APP_BUG, APP_CHANGE, TEST_AUTHORSHIP, TEST_SETUP ou INFRA_FLAKY. Sem IA conectada: nenhuma análise, e os cinco arquivos permanecem iguais.
trace.zip é um sexto arquivo. Com Record a forensic trace on failure ativado, que é o padrão, uma pasta BREACHED também registra um trace do Playwright (snapshots do DOM, capturas de tela e fontes), aberto com npx playwright show-trace trace.zip. Ele não é gravado em um celular Android real. O TC92 foi executado antes de o tracing se tornar o padrão, então sua pasta contém os cinco arquivos acima.
O que uma falha registra
TC91 no chromium, 2026-09-30 13:26 TIMEOUT
A pasta real da execução reproduzida na demo no topo da página inicial, um teste montado de propósito contra o texto antigo do link de example.com, como o Evidence Locker a abre: bug-reports/chromium/TC91 - Example more info/2026-09-30_13-26 [TIMEOUT].
https://example.com/
screenshot.png · 12.6 kB · o quadro exato no momento da falha
report.md4.9 kBResumo do incidente, causa raiz, telemetria de rede, linha do tempo da falha, estabilidade histórica, registro de autocorreção, artefatos de evidência, orçamento de desempenho e auditoria de carregamento sob demanda.
metadata.json2.3 kB32 campos, entre eles o seletor, o tempo limite de 30000ms, estabilidade CRÍTICA, falhas consecutivas, tentativa 2 de 2, modo furtivo e a pontuação de carregamento sob demanda (100, A).
raw-data.json4.2 kBO registro bruto: linhas do console, erros de rede, problemas de segurança (aqui 2: ausência de CSP), erros de JS e métricas de desempenho.
Telemetryno relatórioLCP 156 ms · FCP 156 ms · CLS 0.0018 · TTFB 122 ms · TBT 0 ms · 808 nós DOM · 2 MB de heap. INP não medido: nada para cronometrar.
video.webmfalhas reaisGravado em caso de falha real. Um TIMEOUT como este não mantém nenhum vídeo, porque TIMEOUT está desativado por padrão, e o relatório informa isso.
Análise de IAsua IACom sua IA conectada, ela acrescenta ao relatório um diagnóstico, a causa provável, o impacto e uma ação recomendada; por meio da sua própria ferramenta de IA de linha de comando, ela também classifica a falha.
Veredictos
Quais são os 14 verdicts e o que fazer em seguida?
Cada um dos 14 verdicts indica de quem é a vez: ninguém, do teste, da aplicação, do ambiente ou do harness. O verdict está no nome da pasta: a do TC92 termina em [BREACHED]. O classificador lê uma falha em uma ordem fixa: primeiro o harness, depois uma falha de execução, um bloqueio, um host inacessível e um timeout, e só então BREACHED_FLAKY ou BREACHED. Assim, um BREACHED é uma falha que nenhum padrão de ambiente explica. Cada card diz de quem é a vez e o que aquele verdict arquiva.
SECURENinguém
Passou por conta própria: sem nova tentativa, sem seletor reparado. Nada a fazer. Arquivado em evidence-passed-test, os 5 mais recentes por teste e navegador.
screenshot.pngmetadata.json
CHAOS_RESILIENTNinguém
Passou enquanto uma falha era injetada, então o app resistiu. Arquivado em chaos-runs, separado dos relatórios de bugs, para que o caos nunca distorça os números de estabilidade.
Verde, mas não sem ajuda: o self-healer trocou um seletor quebrado. O locator no teste está morto, e a próxima mudança no DOM quebra a suíte de verdade. Corrija o locator. O raw-data.json aparece quando uma nova tentativa foi necessária, e é o da tentativa que falhou.
screenshot.pngmetadata.jsonraw-data.json
FLAKYTeste ou app
Falhou, depois uma nova tentativa passou, e nada foi reparado. Isso é instabilidade sem explicação no app ou no teste, não uma correção. Leia o raw-data.json da tentativa que falhou e depois a tendência do History.
screenshot.pngmetadata.jsonraw-data.json
PERFORMANCE_DEGRADEDApp
As asserções passaram e a página estava lenta demais: um orçamento de Web Vitals ou de lazy-loading foi excedido. Apenas consultivo até você tornar a verificação estrita.
screenshot.pngmetadata.json
A11Y_VIOLATIONApp
As asserções passaram, a acessibilidade não. O metadata.json lista cada regra do axe-core que disparou, com seu impacto e a contagem de nós. Apenas consultivo até você tornar a verificação estrita.
screenshot.pngmetadata.json
SECURITY_VIOLATIONApp
As asserções passaram, os cabeçalhos de segurança não (um CSP ausente, por exemplo). Corrija os cabeçalhos de resposta. Apenas consultivo até você tornar a verificação estrita.
screenshot.pngmetadata.json
BREACHEDApp
Uma asserção falhou e nenhum padrão de ambiente ou de harness explica o erro. Leia Expected e Received no report.md, assista ao vídeo e marque como Real bug ou False alarm, com um motivo.
Falhou na última tentativa depois de uma nova tentativa anterior: a própria falha é inconsistente. Compare as tentativas antes de abrir um bug. Seu vídeo é mantido por padrão.
Quebrou sob uma falha injetada. Um achado de resiliência, mantido separado dos relatórios de bugs funcionais; o relatório registra a falha aplicada e o impacto para o usuário. A retenção nunca remove uma execução que quebrou. Seu vídeo é mantido por padrão.
Não respondeu a tempo, o que não é prova de que o app está quebrado. Verifique a velocidade da página em Telemetry antes de mexer em qualquer ajuste: um limite maior não esconde um elemento quebrado, apenas faz a falha acontecer mais tarde. Seu vídeo vem desativado por padrão; ative em Settings, em Keep failure video for.
Não foi possível alcançar o host: o DNS ou a conexão falhou antes de qualquer página ser observada. Verifique a URL, a rede e a disponibilidade do alvo. Não é um achado sobre o app. Nenhuma página carregou, então o vídeo ficaria em branco e nenhum é oferecido.
O site se defendeu: um 403, um 429, uma página de bloqueio ou um desafio de bot. O metadata.json nomeia a defesa quando uma estava na tela. Não é um achado sobre o app, e o Jira nunca registra um bloqueio. Seu vídeo vem desativado por padrão; ative em Settings, em Keep failure video for.
O navegador ou o processo morreu: uma página fechada, um erro do protocolo DevTools, uma sessão do WebDriver encerrada. Infraestrutura, não o app. Verifique a máquina e o driver. A gravação de um navegador encerrado sai corrompida, então nenhuma é oferecida.
Fora dos 14: CONFIG_ERROR (o harness não conseguiu iniciar o teste: uma importação quebrada, um valor ausente no .env), SKIPPED e INTERRUPTED. Nenhum é um resultado sobre o seu app, então nenhum gera uma pasta de evidência ou uma linha no History. Um CONFIG_ERROR ainda é gravado por completo, com uma dica, em um log em .run-cache/config-errors/, para que o teste quebrado seja corrigido. Os testes de API têm sete veredictos próprios: API tests.
History
O que o History registra a cada execução?
Além da pasta, cada execução acrescenta um registro a history/<browser>/<test>/runs.json: as últimas 50 execuções de cada teste em cada navegador, por padrão. Estes são os três registros do TC92, um por navegador, exatamente como foram gravados. O mesmo error_signature nos três indica que é um único erro, não três.
Um valor que o navegador não consegue medir é gravado como null, nunca como zero: o WebKit não informa o TTFB aqui. Os horários dos registros estão em UTC, conforme gravados; os nomes das pastas usam o horário local da máquina, UTC−5 nesta.
perf contém LCP, FCP, CLS, TTFB, TBT, INP, tarefas longas, tamanho do DOM, memória heap, todas as páginas visitadas e a pontuação de carregamento sob demanda. raw_log_ref e evidence_ref apontam para a pasta acima.
O que o mecanismo exibe a partir dele
TC92 chromium BREACHED 13.7s
expect(locator).toHaveText(expected) failed
at TC92_Iana_heading.js:23 waiting for getByRole('heading', { level: 1 })
stability CRITICAL 0% · 0/1 runs · 1 failed in a row
# TC91, a demonstração preparada na página inicial: um BREACHED, depois um TIMEOUT
stability CRITICAL 0% · 0/2 runs · 2 failed in a row
O duration_ms do registro, 12291, corresponde ao teste em si, conforme cronometrado pelo Playwright, na segunda de suas duas tentativas.
Os mesmos registros alimentam a seção Estabilidade histórica do relatório, as tendências da tela Histórico (Regrediu, Recuperado, Ainda com falha, Mais lento) e a classificação de risco, na qual nada é considerado instável com menos de cinco execuções.
Quanta evidência o Nexus Studio guarda, e por quanto tempo?
Uma aprovação guarda um screenshot e seus metadados, uma falha guarda tudo o que é preciso para reproduzi-la, e os arquivos mais antigos saem primeiro. Uma suíte que roda toda noite enche um disco. O engine limita cada pasta que grava, por teste e navegador, e mantém toda a evidência sob um único orçamento, de 20 GB por padrão, enquanto o disco mantém 10 GB livres, de modo que o disco para de crescer em um tamanho que você escolhe. Uma falha ainda guarda o que é preciso para reproduzi-la: o erro com seu seletor e valores, a URL da página, o frame, as linhas de console, rede e erros de página, o runtime e a plataforma, e o contexto da execução, ou seja, contra o que ela foi medida. Os limites e o orçamento são definidos em Settings, em Evidence & Retention.
Os mesmos arquivos sem a gravação, pois o vídeo para TIMEOUT fica desativado por padrão: 23.9 kB para o TIMEOUT do TC91, a demonstração preparada na página inicial.
Uma aprovação
screenshot.pngmetadata.json
Arquivado separadamente dos relatórios de bugs, as 5 mais recentes por teste e navegador. A captura de tela é o que a regressão visual compara. Uma aprovação FLAKY ou AUTO_RECOVER também mantém sua pasta, com o raw-data.json da tentativa que falhou, enquanto Keep evidence of a FLAKY / AUTO_RECOVER pass estiver ativado.
Configurações · Evidências & Retenção · padrões
Bug reports kept per test20NEXUS_BUGREPORT_RETAIN
Passing screenshots kept5NEXUS_PASSED_RETAIN
Keep evidence of a FLAKY / AUTO_RECOVER passonNEXUS_RECOVERED_RETAIN
Raw run history window50 runsNEXUS_HISTORY_RETAIN
Smart Monkey sessions kept10NEXUS_MONKEY_RETAIN
Run contexts kept (what each run tested against)100NEXUS_RUN_CONTEXT_RETAIN
Record failure videoonNEXUS_VIDEO_ENABLED
Keep failure video for3 verdictsNEXUS_VIDEO_VERDICTS=BREACHED,BREACHED_FLAKY,CHAOS_BREACHED
Record a forensic trace on failureonNEXUS_TRACE_ENABLED
Estas três linhas vieram após a execução do TC92. Os arquivos temporários de telemetria da execução nunca são evidência: eles vão para um zip, as cópias soltas são apagadas, e ficam no máximo 2 zips de até 7 dias, dentro de 500 MB. Esses três limites são NEXUS_CACHE_ZIPS, NEXUS_CACHE_RETENTION_DAYS e NEXUS_CACHE_MAX_MB no .env, não campos em Settings.
Em Configurações, Limpar cache exclui as pastas test-results e playwright-report do espaço de trabalho e fecha qualquer navegador deixado aberto por uma execução que travou ou foi encerrada à força. A ação é recusada enquanto uma patrulha está em execução.
Workspace · Disk · o limite que cada pasta tem hoje
area limit today
Bug reports newest 20 runs per test and browser
Passed tests newest 5 runs per test and browser
API evidence newest 20 passing runs per test; failures kept
Chaos runs newest 20 held runs; runs that broke kept
Smart Monkey newest 10 sessions
Visual regressions newest 10 per test and checkpoint
Run context newest 100 runs
Run history newest 50 runs per test and browser
Chain of custody append-only, never trimmed
Archive no automatic limit
O painel Disk lista cada pasta em que uma execução grava, da maior para a menor, com seu tamanho, número de arquivos e data mais antiga, o total e o espaço livre na unidade. Uma pasta sem limite automático é sinalizada. Clean só é oferecido onde é seguro: o cache de execução, versões de arquivos de teste com mais de 14 dias e relatórios Executive com mais de 30 dias. Ele nunca toca em evidências nem no arquivo.
Além dos limites, todas as evidências compartilham um único orçamento, de 20 GB por padrão, e o disco mantém 10 GB livres. Após cada execução, o engine verifica os dois e, ao ultrapassar qualquer um, remove as execuções mais antigas, as aprovadas antes das com falha, até que ambos sejam cumpridos; a execução mais recente de cada teste e navegador sempre permanece. O painel mostra as evidências em relação ao orçamento, o espaço livre em relação ao piso e o que a última passagem liberou, com Run maintenance now.
Evidence Locker · mantenha o que importa, libere o resto
Archive… copia exatamente as partes que você marcar, com Screenshot e Report marcados por padrão, para View → Archive. A cópia fica ao lado da pasta de evidência, não dentro dela, então nenhuma varredura de retenção a alcança, e a execução no Locker não é tocada.
Restore, na tela Archive, devolve um registro ao lugar onde estava e de volta à contagem. Se a pasta dele foi liberada, as partes arquivadas são gravadas de volta no Evidence Locker. Um veredicto False alarm ainda o mantém fora da contagem.
Free disk envia uma pasta para a lixeira. Onde o registro está lacrado, o engine grava primeiro a disposição, de modo que nexus verify informa PURGED, não TAMPERED. A retenção faz o mesmo ao remover a pasta mais antiga, e o ledger continua comprovando o hash da pasta, quem a removeu e quando. O lacre é opcional: até o primeiro veredicto Real bug ou False alarm, ou nexus verify --seal, o Locker mostra UNVERIFIED.
Veja o que suas próprias falhas deixam para trás.
Grátis por 30 dias, com todos os recursos, nas suas máquinas. Sem necessidade de cartão.