Teste sem cabeça em um navegador. Prós e contras

Olá novamente. Esta publicação é dedicada ao lançamento do curso Automação de testes na Web , que começa nesta semana. Boa leitura!

O que é teste sem cabeça?

O teste sem cabeça é um lançamento no navegador de um teste para o desempenho de qualquer componente da interface do usuário sem exibir a própria interface do usuário. Esse teste inicia scripts no navegador, mas não é iniciado e não mostra a interface do usuário por si só.



Por que você pode precisar usar os navegadores Headless? Essa abordagem tem muitos prós e contras. Usar um navegador sem cabeça pode não ser muito útil para navegar na rede, mas é indispensável para automatizar tarefas e testes.

Por que usar o navegador sem cabeça?

Seguir o dinheiro é um clichê, no entanto, ainda acho que este é um indicador-chave do surgimento de tendências e, portanto, no que você definitivamente deve prestar atenção. Por exemplo, a Sauce Labs acaba de lançar um novo serviço chamado Sauce Headless, uma solução baseada em nuvem para testar sem solução suas soluções.

Eu sei que as pessoas em Sause são pessoas inteligentes. Eles não desenvolverão nada por nada. Eles precisam receber feedback dos usuários para entender que qualquer funcionalidade é necessária.

Estou certo de que eles não estarão sozinhos em sua busca para desenvolver testes sem cabeça.
À medida que avançamos no ciclo de vida de desenvolvimento de software, os testadores precisam fornecer feedback aos desenvolvedores cada vez mais rápido. Uma maneira de conseguir isso é realizar verificações rápidas com um navegador sem cabeça.

Automação no desenvolvimento de software

Sou a favor da automação com todas as mãos, mas a automação não se resume apenas a testes.
Esta é uma história sobre todos os aspectos que você pode automatizar para economizar tempo ou esforço no ciclo de vida de desenvolvimento de software, controle ou teste de qualidade, DevOps ou instalação. Navegadores sem cabeça são uma das poderosas ferramentas de automação.

Navegadores sem cabeça são mais rápidos que os navegadores comuns

Uma das diferenças mais importantes entre navegadores sem cabeça e navegadores regulares é a velocidade deles. O fato é que, quando você carrega uma página em um navegador sem uma GUI, não é necessário perder tempo carregando CSS, JavaScript e renderizando HTML.

Eu não diria que a diferença será enorme, mas, em alguns casos, é possível rastrear o aumento da velocidade pela metade ou até 15. Portanto, se o desempenho for importante para você, um navegador sem cabeça será uma boa escolha.

Raspando com um navegador sem cabeça

Outra vantagem dos navegadores sem cabeça é sua capacidade de coletar dados de sites . Para fazer isso, você não precisa iniciar manualmente o navegador. Você pode usar a tecnologia decapitada para simplesmente descartar o HTML. E renderizar o navegador inteiro é completamente opcional.

Digamos que seu caso exija estatísticas esportivas ou comparações de preços em vários sites.

Como você só precisa de dados, não faz sentido iniciar uma essência completa do navegador e carregar desnecessariamente a máquina, porque quanto menos carga, mais rápido você obtém o resultado. Pode não ser necessariamente um teste, você só precisa usar a ferramenta certa para funcionar. Em geral, acredito que os testadores em vão subestimam os navegadores sem cabeça em seu campo.

Portanto, se você precisar obter dados de uma página da web, não será necessário abri-lo e fornecer carga extra ao abrir um navegador, toda a funcionalidade necessária poderá fornecer um navegador sem cabeça.

Economize tempo do desenvolvedor

Eu sei que muitos desenvolvedores usam navegadores sem cabeça para testar seus sites e aplicativos. A capacidade de usá-lo na linha de comando sem atualizar ou iniciar manualmente o navegador economiza muito tempo e esforço. Por exemplo, Rob Frizzel , autor do PhantomJS CookBook em uma entrevista ao TestTalks, explicou por que seus desenvolvedores usam o navegador sem cabeça do PhantomJS:
“Embora o próprio PhantomJS não seja uma estrutura de teste, é um“ raio de luz útil em uma mina de carvão ”que dá confiança; se todos os testes forem aprovados, você ficará muito mais confiante de que seu código é realmente bom. ”
Monitoramento de desempenho com scripts de navegador sem cabeçalho

Outra opção para usar um navegador sem cabeça é monitorar o desempenho dos aplicativos de rede.

Alguns até os usam para automatizar a renderização e tirar capturas de tela da tela de um site para testar layouts em um estilo automatizado.

Penso que esta é uma das razões pelas quais o Google desenvolveu uma nova API do Chrome sem cabeça chamada Puppeteer . Seu objetivo principal é ajudar os desenvolvedores.

Ideias-chave Teste de navegador sem cabeça

Além da ideia anterior, há também outras opções para o uso de navegadores sem cabeça, sobre os quais vou falar agora:

  1. Execute testes em uma máquina sem monitor;
  2. Configuração de dados;
  3. Teste SSL;
  4. Simulação de vários navegadores em uma máquina;
  5. Executando testes em um sistema sem cabeça, como Linux sem uma GUI;
  6. Recepção e visualização de arquivos PDF;
  7. Teste de marcação, já que os navegadores sem cabeça podem renderizar HTML e CSS como navegadores completos, para que você possa testá-los com estilos.

Casos em que você não deseja usar um navegador sem cabeça

Claro, há momentos em que você pode querer usar um navegador completo em vez de um navegador sem cabeça. Por exemplo:

  1. Você precisa simular usuários reais;
  2. Você precisa ver como o teste funciona;
  3. Se você precisar depurar, isso pode ser complicado com um navegador sem cabeça.

Navegadores sem cabeça populares

  1. Google Puppeteer - Puppeteer de navegador sem cabeça é uma biblioteca de Nós. Ele fornece uma API de alto nível para controlar o Chrome ou o Chromium sem cabeça usando o protocolo DevTools. Também pode ser configurado para usar Chrome ou Chromium completo (sem cabeça).
  2. Google Chrome da versão 59;
  3. Firefox versões 55 e 56;
  4. PhantomJS - webkit sem cabeça na API JavaScript. Possui suporte rápido e nativo a vários padrões da web: processamento em árvore DOM, seletores CSS, formato JSON, Canvas e SVG. * Agora não é suportado. Por isso, você pode não querer usá-lo.
  5. HtmlUnit é um navegador sem uma GUI para código Java. Ele modela documentos HTML e fornece uma API que permite abrir páginas, preencher formulários, clicar em links etc. Bem como no seu navegador "normal".
  6. Splinter - Splinter é um navegador sem cabeça orientado para Python. É de código aberto e é usado para testar aplicativos da Web usando Python. Por exemplo, você pode usá-lo para automatizar ações do navegador, como visitar páginas da web e interagir com seus elementos.
  7. jBrowserDriver - Um driver de navegador da Web incorporado e programável compatível com o Selenium WebDriver sem cabeçalho, baseado no WebKit, em Java puro.

Quando você deve usar um navegador sem cabeça para testar?

A resposta a esta pergunta depende do objetivo do seu teste.

Por um lado, as pessoas costumam dizer: “Nunca use navegadores sem cabeça. Um usuário real nunca o utilizará, então por que você deveria? ” Embora, por outro lado, ouvimos: "Você sempre deve usar um navegador sem cabeça, porque é mais rápido e mais rápido em questões de teste, significa melhor"

Como sabemos, cada posição terá apoiadores e oposição, mas aqui é apenas uma questão de escolher as ferramentas certas para resolver certos problemas.

Lembre-se de que você deve usar a ferramenta ideal para o trabalho e sempre se perguntar como isso afetará o usuário final. Você deve se perguntar qual é o objetivo de testar toda vez que escolher entre esses dois pontos de vista.

De acordo com a tradição estabelecida, aguardamos seus comentários e lembre-se também que em poucas horas haverá um dia aberto , onde você poderá aprender em detalhes sobre o nosso curso.

Source: https://habr.com/ru/post/pt444248/


All Articles