Testes automatizados de banner de consentimento com Playwright: um guia prático
Por que automatizar os testes de consentimento
Verificações manuais de consentimento são fáceis de pular e fáceis de errar. Uma nova tag adicionada pelo marketing, uma atualização de tema ou um carregador de scripts refatorado pode começar silenciosamente a disparar rastreadores antes do consentimento, e ninguém percebe até que um cliente ou um regulador perceba. Testes de navegador automatizados transformam a pergunta “nosso banner ainda se comporta bem?” em algo que roda a cada release. O Playwright é uma boa escolha porque controla navegadores reais, pode interceptar requisições de rede e oferece contextos de navegador novos e isolados.
Os contextos de teste
Cada teste deve começar de um contexto de navegador limpo, sem cookies e sem armazenamento local. Isso imita um visitante de primeira viagem. Crie um novo contexto por teste em vez de reutilizar uma página, caso contrário uma escolha armazenada por um teste vaza para o próximo.
Teste 1: nada dispara antes do consentimento
Escute todas as requisições de rede desde o momento em que a página começa a carregar. Carregue a página, espere até que fique ociosa e não toque no banner. Depois compare as requisições com uma lista de domínios de rastreadores que você mantém, como análise, publicidade e pixels sociais. O teste falha se qualquer requisição for para um domínio da lista. Leia também a lista de cookies do contexto e falhe se existir qualquer cookie não essencial.
Teste 2: rejeitar mantém tudo desligado
- Carregue a página em um contexto novo.
- Clique no controle de rejeitar do banner.
- Navegue por mais duas ou três páginas, incluindo uma com mídia incorporada.
- Verifique que nenhuma requisição de rastreador foi feita e nenhum cookie não essencial foi definido.
- Recarregue e verifique que o banner continua oculto e que a escolha persiste.
Teste 3: aceitar ativa o que deve ativar
Clique em aceitar e verifique que as tags esperadas agora disparam, por exemplo a requisição da sua análise. Isso protege contra a falha oposta: um banner que registra o consentimento mas nunca libera os scripts, o que custa dados e receita silenciosamente.
Teste 4: escolhas granulares
Abra a camada de preferências, ative apenas uma finalidade e salve. Verifique que as tags ligadas a essa finalidade disparam e as ligadas às demais não. Mantenha um pequeno arquivo de mapeamento de finalidade para domínios esperados, para que o teste fique legível e fácil de atualizar.
Teste 5: retirada
Aceite, depois reabra as configurações pelo seu link persistente e retire o consentimento. Verifique que as requisições seguintes aos rastreadores cessam e que o estado de consentimento armazenado reflete a mudança. Observe que cookies já definidos podem precisar ser removidos explicitamente, então decida qual é a sua política e teste-a.
Teste 6: sinais
Se você usa o Google Consent Mode, leia o data layer no contexto da página antes e depois de cada escolha e verifique que os valores do estado de consentimento coincidem: negado por padrão, concedido para as categorias que o visitante aceitou. Se você usa uma string TCF, leia-a pela API do TCF e verifique que ela está presente após uma escolha e a reflete.
Como manter os testes confiáveis
- Use seletores estáveis, como atributos de teste ou papéis acessíveis, em vez de classes CSS que mudam com atualizações de design.
- Espere por condições explícitas, não por atrasos fixos.
- Execute os testes em uma cópia de staging com a mesma configuração de tags da produção.
- Execute uma versão reduzida da suíte de forma agendada, não só nos deploys, porque scripts de terceiros mudam sem o seu release.
- Teste as principais regiões que você atende definindo a geolocalização ou usando a substituição de região que sua CMP oferece.
Como o FlexyConsent se encaixa
O FlexyConsent oferece suporte ao IAB TCF 2.4, ao IAB GPP v1.1 e ao Google Consent Mode v2, então os sinais que você verifica nos testes são padrões que podem ser lidos na página. O banner está disponível em 58 idiomas; se você atende vários, inclua um teste que carregue pelo menos uma versão que não seja em inglês.
Principais conclusões
- Use um contexto de navegador novo por teste para simular um visitante de primeira viagem.
- Verifique requisições de rede e cookies, não apenas a aparência do banner.
- Cubra quatro caminhos: sem interação, rejeitar, aceitar e retirada.
- Confira também os sinais de consentimento no data layer ou na API do TCF.
- Execute a suíte a cada release e de forma agendada para detectar desvios causados por scripts de terceiros.