Testes entre navegadores: um teste para cada navegador e dispositivo

Testes entre navegadores explicados: o que quebra entre navegadores e dispositivos, como as equipes costumam cobrir isso, e como gravar um teste web e executá-lo em todo lugar.

10 min de leituraPela equipe do GUI Test Studio

O que são testes entre navegadores?

Definição

Testar entre navegadores é verificar que um site ou um aplicativo web funciona e aparece corretamente em cada navegador que seus usuários têm.

  • Testar entre dispositivos faz o mesmo entre telas e formas de entrada: celulares, tablets e tamanhos de desktop, toque e mouse, vertical e horizontal.
  • Juntos, eles respondem a uma pergunta.

A página que sua equipe construiu funciona para quem a abre em um celular, em outro navegador, em outro idioma?

A pergunta importa porque uma página web não é uma imagem fixa.Cada navegador desenha o mesmo HTML, CSS e JavaScript com o próprio motor.Cada dispositivo dá à página uma tela diferente para se ajustar.Uma finalização de compra que funciona em um monitor largo no Chrome pode empurrar o botão Pagar para baixo da dobra em um celular pequeno.

Finalizar compra
Pagar

Um monitor largo

A dobra
Pagar

Um celular pequeno

A mesma finalização de compra: o botão Pagar está visível em um monitor largo, e abaixo da dobra em um celular pequeno.
  • O teste web em dispositivos móveis é a parte que olha um site em celulares e tablets.
  • O teste responsivo é a parte que verifica se um layout se adapta a cada tamanho de tela.

O que muda entre navegadores e dispositivos

Um teste que passa em um navegador em uma tela prova pouco sobre os outros.Estas são as diferenças que mais quebram páginas.

O que mudaO que pode quebrar
O motor de renderizaçãoO Chrome e o Edge compartilham um motor, o Firefox tem outro, o Safari um terceiro.Fontes, controles de formulário, barras de rolagem e espaçamentos podem mudar.
A área de visualizaçãoUm celular na vertical tem algumas centenas de pixels de largura.Os menus se recolhem, as colunas se empilham e os elementos vão para baixo da dobra.
ToqueUm toque não é um clique.Menus de passar o mouse, arrastar e soltar e alvos pequenos se comportam de outro jeito.
A densidade de pixels do dispositivoUm celular desenha cada pixel da página com dois ou três pixels de tela.Linhas finas, ícones e imagens mudam.
Idioma e fuso horárioOs textos ficam mais longos, datas e preços mudam de formato, e um horário aparece em outro fuso.
Velocidade de redeEm uma conexão lenta, um indicador de carregamento fica mais tempo na tela e um clique pode chegar antes de a página estar pronta.
Zoom e movimento reduzidoQuem precisa de textos maiores aumenta o zoom, e algumas pessoas pedem menos animações.O layout ainda precisa se manter.

Como as equipes costumam fazer testes entre navegadores?

Os testes manuais vêm primeiro.Um testador abre a página em cada navegador e redimensiona a janela.Isso funciona para um lançamento e não acompanha cada build.

As suítes automatizadas vêm em seguida.O formato delas é parecido em todos os frameworks: um teste escrito em código, depois uma configuração que o executa de novo para cada navegador ou dispositivo.

Projects e devices do Playwright

O Playwright agrupa os testes em projects.Um project é um grupo de testes executado com uma configuração, como um navegador ou um dispositivo emulado.O Playwright executa todos os projects por padrão.O registro de dispositivos dele descreve celulares, tablets e desktops, com tamanho de tela, user agent e suporte a toque.

playwright.config.ts, como na documentação do Playwright
import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
  projects: [
    { name: 'chromium', use: { ...devices['Desktop Chrome'] } },
    { name: 'firefox', use: { ...devices['Desktop Firefox'] } },
    { name: 'webkit', use: { ...devices['Desktop Safari'] } },
    { name: 'Mobile Chrome', use: { ...devices['Pixel 5'] } },
    { name: 'Mobile Safari', use: { ...devices['iPhone 12'] } },
  ],
});

Navegadores e viewports do Cypress

O Cypress oferece navegadores da família Chrome, Firefox e WebKit, escolhidos com a flag --browser.O comando cy.viewport dele define o tamanho e a orientação da tela, com predefinições como iphone-6 e ipad-2.A documentação dele observa que a densidade de pixels do dispositivo não é simulada.Ela também sugere executar alguns navegadores com menos frequência, como o Firefox toda noite em vez de a cada commit, para economizar tempo e custo de CI.

Selenium Grid

O Selenium Grid executa scripts WebDriver em máquinas remotas, em paralelo, em várias versões de navegadores e plataformas.É a forma clássica de fazer testes multiplataforma com o Selenium.Sua equipe configura essas máquinas e mantém os navegadores delas atualizados.

Nuvens de dispositivos

Nuvens de dispositivos como BrowserStack, TestMu AI (antigo LambdaTest) e Sauce Labs hospedam os navegadores e dispositivos para você.O BrowserStack e o TestMu AI listam, cada um, milhares de combinações de navegador e sistema operacional.O Sauce Labs oferece emuladores, simuladores e dispositivos reais.Seus testes programados rodam nas máquinas deles, e o BrowserStack Automate conta os planos em testes paralelos.

Para uma visão mais ampla dessas ferramentas, veja o estudo comparativo.

Quanto custa uma suíte programada para vários dispositivos

O que você mantémPor quê
Um seletor para cada elementoUm id, um seletor CSS ou um nome de papel, e cada redesenho quebra alguns deles.
Código para cada layoutNo celular, os links ficam escondidos atrás de um menu, então o teste precisa de um desvio no código para isso.
A lista de dispositivosQuais celulares, tamanhos e navegadores cobrir, mantidos atualizados em um arquivo de configuração.
Esperas para páginas lentasUma conexão lenta precisa de esperas que uma rápida nunca mostra.
Os minutosCada teste roda uma vez por navegador ou dispositivo, então dez deles executam a suíte dez vezes.
Um exemplo: um teste programado que precisa abrir o menu no celular
test('open the checkout', async ({ page, isMobile }) => {
  if (isMobile)
    await page.getByRole('button', { name: 'Menu' }).click();
  await page.getByRole('link', { name: 'Checkout' }).click();
});
Multiplique isso por cada elemento que se move em uma tela pequena.A parte entre dispositivos de uma suíte logo vira uma segunda suíte, com a própria manutenção.

Testes entre navegadores a partir de uma gravação

O GUI Test Studio, que automatiza testes de ponta a ponta no Windows, segue outro caminho.Você grava um teste web uma vez, fazendo o fluxo você mesmo no navegador que usa todos os dias.Você marca os navegadores, dispositivos e condições que ele deve cobrir.O GUI Test Runner-Recorder então gera uma versão do teste para cada um, chamada ramificação.

Gravar

Uma vez, em um navegador

Escolher

Navegadores, dispositivos, condições

Gerar

Uma ramificação para cada

Executar

Sem janela, lado a lado

Relatório

Um Relatório de confiança para cada

Ao gravar um aplicativo web, marque Gerar também este teste para outros navegadores e dispositivos abaixo do endereço dele.Os navegadores são os instalados no seu computador: Chrome, Edge e Firefox.Os dispositivos são mais de 80 celulares, tablets e tamanhos de tela de desktop, agrupados por fabricante.Cada celular e tablet pode ficar na vertical, na horizontal ou nas duas.

Marque os navegadores e dispositivos abaixo do endereço do aplicativo web antes de gravar.

A janela diz quantos testes sua escolha cria, quanto tempo levam para ser gerados e quanto espaço em disco ocupam.Depois que o teste é salvo, as ramificações são geradas em segundo plano.Nada fica fixo no momento da gravação: você pode adicionar navegadores e dispositivos depois.

A gravação

Checkout.GTS

Chrome · Desktop 1920 × 1080

Ramificações geradas

Edge · iPhone 15 · Vertical
Firefox · iPad Air · Horizontal
Chrome · Desktop 1366 × 768
Chrome · Pixel 7 · Français (France) · Slow 4G
Uma gravação, e uma ramificação para cada navegador, dispositivo e condição que você marcar: cada uma é um teste com o próprio relatório.

Nunca gravou?Gravar um teste mostra o caminho inteiro.Você também pode descrever o teste em um prompt e citar os navegadores e dispositivos na mesma frase: veja Criar um teste a partir de um prompt.

O que faz cada versão por navegador e dispositivo

Uma ramificação não é a gravação reproduzida nas mesmas coordenadas.Ela é criada reproduzindo o teste naquele navegador e dispositivo, etapa por etapa, pelos próprios elementos da página.

Naquele navegador e dispositivoO que a ramificação faz
Um botão fica em outro lugarEla clica no botão onde a página diz que ele está.
Um elemento está abaixo da dobraEla adiciona uma etapa que rola até ele.
Os links ficam escondidos atrás de um menuEla adiciona a etapa que abre o menu antes.
O elemento de uma asserção tem outra aparênciaEla recorta de novo a imagem da asserção a partir da tela daquele dispositivo.
Um desenho em um canvasEla desenha o mesmo traço no mesmo lugar dentro do canvas, no tamanho que o canvas tem naquele dispositivo.
Um arrastar e soltarEla solta o item no mesmo lugar entre os outros, depois verifica onde ele caiu.
Um elemento não aparece neste dispositivoUma asserção dele fica de fora, com o motivo.
Gravado em um desktop
InícioLojaFinalizar compra1
1Clicar em Finalizar compra
1
Início
Loja
Finalizar compra2

Gerado para um celular

1Abrir o menuadicionado pela ramificação
2Clicar em Finalizar compra

Cada asserção de uma ramificação é recortada do que aquele dispositivo mostra de verdade, então o layout próprio de um celular nunca é lido como falha, enquanto uma regressão real nesse celular continua sendo.

Quando uma etapa não pode ser feita em um dispositivo, a ramificação diz isso.Ela precisa da sua atenção, e o GUI Test Studio marca a etapa e diz por quê.

Testes responsivos, de localização e de rede lenta

Navegadores e telas são metade do que os usuários trazem.A outra metade é como o navegador deles está configurado.Uma ramificação pode rodar sob condições, e cada condição que você marca é combinada com os navegadores e dispositivos que você escolheu.

CondiçãoO que a página recebe
Idioma e fuso horárioO idioma do navegador e o relógio de uma cidade, em 26 idiomas.Uma página que se traduz sozinha mostra esse idioma, e as asserções textuais esperam as palavras que ela mostra ali.
Velocidade de redeFast 4G, Slow 4G ou 3G, no Chrome e no Edge.A página carrega tão devagar quanto nessa conexão.
ZoomA página ampliada de 100% a 200%, como a vê quem precisa de textos maiores.
Movimento reduzidoA configuração que pede às páginas menos animações.
As condições são marcadas como os dispositivos, e combinadas com eles.
ExemploUma loja em francês, em um celular lento

Marque Français (France) e Slow 4G com um iPhone, no Chrome.A ramificação verifica a página em francês, na velocidade de uma conexão fraca, na tela do celular.Isso é teste de localização e limitação de rede, sem nenhum código de configuração.

Sem janela e lado a lado

Uma ramificação pode rodar sem janela (headless): o navegador trabalha sem janela, então sua tela e seu computador continuam livres para você.

  • Celulares, tablets e ramificações com uma condição sempre rodam assim.
  • As ramificações de desktop também, quando o teste permite, o que é o padrão.
  • O próprio teste gravado roda em uma janela, do jeito que foi gravado.

Clique em Executar teste em um teste assim, e o GUI Test Runner-Recorder pergunta quais versões esta execução cobre.Todas as ramificações geradas vêm marcadas, e o tempo esperado aparece abaixo da lista.Ele vem de quanto tempo cada uma levou da última vez: um valor típico, não um limite.

Escolha as versões que esta execução cobre, e veja quanto tempo devem levar.

No final, uma janela lista o veredito de cada execução, cada um com seu relatório.Veja Executar um teste para a execução em si.

Testes entre navegadores em CI/CD

O gtr-cli, a linha de comando do GUI Test Studio, executa as mesmas ramificações em qualquer pipeline.--branch all executa o teste gravado e cada ramificação, cada um com sua própria entrada no arquivo JUnit e seu próprio histórico.gtr-cli generate cria as ramificações que faltam ou estão desatualizadas.

Crie o que falta, depois execute todos os navegadores e dispositivos
gtr-cli generate Checkout.GTS --branch missing
gtr-cli run Checkout.GTS --branch all --junit results\junit.xml

Executar testes no seu pipeline lista todas as opções.O exemplo com o TeamCity percorre um pipeline real, etapa por etapa, e funciona do mesmo jeito com qualquer ferramenta de CI/CD.

Um relatório por navegador e dispositivo

No Relatório de confiança, o botão Navegadores e dispositivos lista a gravação e cada ramificação com o último veredito.Ele abre o relatório da que você escolher.

As edições seguem a mesma ideia.Quando você salva uma ramificação depois de mudar o que uma etapa faz, o GUI Test Studio pergunta se a mudança vale para todos os navegadores e dispositivos ou só para este.Quando você muda o teste gravado, ele oferece atualizar todos os navegadores e dispositivos a partir dele.

O que saber antes de começar

Alguns limites, para você escolher de olhos abertos.

LimiteO que significa
Chrome, Edge e FirefoxO Safari e o motor dele não são oferecidos.O GUI Test Studio roda no Windows, e gera as ramificações nos navegadores instalados ali.
Dispositivos emuladosUma ramificação de iPhone tem o tamanho de tela, a densidade de pixels, a entrada por toque e a identidade de navegador de um iPhone, dentro do Chrome, do Edge ou do Firefox.Ela não executa o motor de navegador do próprio celular.
Velocidade de redeSó o Chrome e o Edge conseguem deixar a rede mais lenta, então o Firefox não tem ramificações de velocidade de rede.
Somente aplicativos webAs ramificações precisam de uma página web, porque a página diz onde está cada elemento.Um aplicativo de desktop ou um jogo fica com um único teste.

Quer o panorama completo do que o GUI Test Studio cobre além do navegador?Veja testes de ponta a ponta.

Perguntas

O que são testes entre navegadores?

Os testes entre navegadores verificam que um site ou aplicativo web funciona e aparece corretamente em cada navegador que seus usuários têm.A mesma página pode ser desenhada de formas diferentes pelo Chrome, pelo Edge, pelo Firefox e pelo Safari, então cada um precisa da própria checagem.

Qual é a diferença entre testes entre navegadores e entre dispositivos?

Os testes entre navegadores comparam navegadores, que desenham a mesma página com motores diferentes.Os testes entre dispositivos comparam telas e formas de entrada: celulares, tablets e tamanhos de desktop, toque e mouse, vertical e horizontal.A maioria das equipes web precisa dos dois.

Dá para automatizar testes entre navegadores sem código?

Sim.No GUI Test Studio você grava um teste web uma vez, e o GUI Test Runner-Recorder gera o mesmo teste para Chrome, Edge, Firefox e para celulares, tablets e tamanhos de desktop emulados.Cada versão encontra os próprios elementos da página, então não há seletor para escrever.

A emulação de dispositivos substitui os testes em celulares reais?

Não completamente.A emulação verifica sua página no tamanho de tela, na densidade de pixels, na entrada por toque e na identidade de navegador de um dispositivo, dentro de um navegador de desktop.Ela não executa o motor de navegador do próprio celular, então um dispositivo real continua sendo a referência para esse motor.

Posso executar testes entre navegadores em um pipeline de CI/CD?

Sim.O comando gtr-cli run com --branch all executa o teste gravado e cada navegador e dispositivo gerado, cada um com sua própria entrada no JUnit e seu próprio histórico.As versões que não precisam de janela de navegador rodam lado a lado.

O GUI Test Studio testa o Safari?

Não.Ele gera testes para Chrome, Edge e Firefox, e emula iPhones e iPads dentro desses navegadores.O motor próprio do Safari não está entre eles.

Selenium, Playwright, Cypress, BrowserStack, TestMu AI, LambdaTest, Sauce Labs, Chrome, Edge, Firefox, Safari e iPhone são marcas registradas de seus respectivos proprietários.

Pronto para gravar o seu primeiro teste?

Todos os recursos, por 15 dias.

Prefere ver no tipo de aplicativo que você testa?Agende uma chamada gratuita de 30 minutos com a nossa equipe.

Agendar uma demonstração