Playwright - uma framework sensação, porquê?

O Que é o Playwright?

O Playwright é uma ferramenta de automação de testes para aplicações web, desenvolvida pela Microsoft.

Permite realizar testes end-to-end (E2E), oferecendo suporte para interações com o browser, incluindo os cliques, a digitação de texto e a navegação entre páginas, de uma maneira confiável e robusta.

 

Onde, Como e Porquê Surgiu o Playwright?

O Playwright foi lançado pela Microsoft em janeiro de 2020.

A ferramenta surgiu da necessidade de existir uma solução moderna e eficiente para testes em browsers, que fosse capaz de lidar com a complexidade crescente das aplicações web.

O objetivo era portanto criar uma ferramenta que pudesse ser utilizada para testar aplicações de forma consistente e confiável, em diferentes browsers e plataformas.

Os principais motivos para o desenvolvimento do Playwright foram:

  • Compatibilidade Multinavegador: o suporte nativo para Chrome, Firefox e WebKit.

  • Robustez e Confiabilidade: a capacidade de lidar com testes complexos em aplicações web.

  • Facilidade de Utilização: as APIs intuitivas e a documentação abrangente facilitaram a adopção da ferramenta por programadores e QAs.

 

Qual é o Objectivo e Foco do Playwright?

O principal objetivo do Playwright é fornecer uma ferramenta de testes de automação que permita:

  • testar aplicações web em múltiplos browsers (Chrome, Firefox, WebKit) sem a necessidade de configurações adicionais.

  • executar testes em cenários complexos, de maneira confiável.

  • integrar facilmente com pipelines de CI/CD.

  • suportar testes a funcionalidades de acessibilidade, garantindo que as aplicações são utilizáveis por todos.

 

A Quem é Direccionado?

O Playwright é direccionado a:

  • Programadores, que queiram integrar testes automatizados no seu fluxo de trabalho de desenvolvimento.

  • Engenheiros de QA, que precisam de uma ferramenta robusta e confiável para testes end-to-end.

  • Equipas de DevOps, que procuram soluções para automação de testes em pipelines de integração e entrega contínua (CI/CD).

  • Empresas de desenvolvimento de software, que precisam de garantir a qualidade e a confiabilidade das suas aplicações web, em diferentes browsers.


Como Começar a Aprender Playwright?

Pré-requisitos:

  • Conhecimentos básicos de JavaScript ou TypeScript.

  • Familiaridade com Node.js e npm/yarn.

Instalação:

  • Instala o Playwright via npm: npm install playwright

Primeiros Passos:

  • Consulta a documentação oficial para teres exemplos básicos e acederes aos guias de configuração.

    • Dica: executa um exemplo simples para abrir um browser e interagir com uma página web.

Recursos:

  • Documentação Oficial: A documentação do Playwright é abrangente e inclui tutoriais e exemplos práticos.

  • Cursos Online: Plataformas como Udemy, Coursera e Pluralsight oferecem cursos focados em Playwright.

  • Comunidade e Fóruns: Participa nos fóruns e comunidades online, para trocar experiências e obteres ajuda.

Tempo Médio de Estudo

O tempo médio necessário para te familiarizares com o Playwright varia conforme a tua experiência prévia:

  • Iniciante: Cerca de 2 a 4 semanas, considerando uma dedicação regular para aprender os conceitos básicos e realizar testes simples.

  • Intermediário: Entre 1 a 2 semanas para te adaptares às funcionalidades e começares a criar testes mais complexos.

  • Avançado: com base na experiência prévia noutras ferramentas de automação de testes, podes levar apenas alguns dias para te tornares produtivo com o Playwright.

Exemplos Práticos


Funcionalidades Avançadas do Playwright

1. Captura de Ecrã e Gravação de Vídeo

O Playwright permite capturar o ecrã e gravar vídeos das sessões de teste, o que pode ser extremamente útil para o debugging e documentação.

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const context = await browser.newContext({ video: { dir: 'videos/' } });
  const page = await context.newPage();
  await page.goto('https://example.com');
  await page.screenshot({ path: 'example.png' });
  await browser.close();
})();

2. Teste em Dispositivos Móveis

O Playwright pode emular dispositivos móveis, permitindo testar a responsividade e o comportamento das aplicações web em diferentes tamanhos de ecrã e diferentes dispositivos.

const { webkit, devices } = require('playwright');
const iPhone11 = devices['iPhone 11'];

(async () => {
  const browser = await webkit.launch();
  const context = await browser.newContext({ ...iPhone11 });
  const page = await context.newPage();
  await page.goto('https://example.com');
  // Executar testes em modo emulado
  await browser.close();
})();

3. Suporte a Localização e Geolocalização

O Playwright suporta testes com diferentes configurações de localização e geolocalização, bastante útil para testar funcionalidades baseadas em localização.

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const context = await browser.newContext({ geolocation: { latitude: 37.7749, longitude: -122.4194 }, permissions: ['geolocation'] });
  const page = await context.newPage();
  await page.goto('https://example.com');
  // Realizar testes com geolocalização simulada
  await browser.close();
})();

Integração com Outras Ferramentas

1. Jest

Playwright pode ser integrado com o Jest, uma framework de teste popular, que pode fornecer uma estrutura de testes mais rica e funcionalidades adicionais como snapshots e relatórios de teste.

// jest-playwright.config.js
module.exports = {
  browsers: ['chromium', 'firefox', 'webkit'],
  launchOptions: {
    headless: true,
  },
};

// Example.test.js
const { chromium } = require('playwright');

describe('My Playwright Tests', () => {
  it('should load the page', async () => {
    const browser = await chromium.launch();
    const page = await browser.newPage();
    await page.goto('https://example.com');
    expect(await page.title()).toBe('Example Domain');
    await browser.close();
  });
});

2. CI/CD

A integração com sistemas de CI/CD é fundamental para garantir a execução contínua dos testes automáticos. O Playwright integra-se bem com ferramentas como o Jenkins, o GitHub Actions e o GitLab CI.

name: Playwright Tests

on: [push, pull_request]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Setup Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'
    - run: npm install
    - run: npx playwright install
    - run: npm test

Vantagens e Desvantagens

Vantagens

  1. Multi-Browser, com suporte robusto para Chrome, Firefox e WebKit.

  2. APIs intuitivas, bem documentadas e fáceis de usar.

  3. Funcionalidades avançadas, com suporte para emulação de dispositivos, geolocalização, ...

  4. Actualizações regulares e manutenção garantida pela Microsoft e suporte da comunidade.

  5. Integração com pipelines de CI/CD, comovo Jenkins, GitHub Actions, e GitLab CI, permitindo a automação contínua de testes.

  6. Testes de acessibilidade através do suporte para verificar a acessibilidade, utilizando ferramentas como o Axe.

  7. Suporte multiplataforma, podendo ser utilizado em Windows, macOS e Linux, proporcionando maior flexibilidade na escolha do ambiente de desenvolvimento e execução.

Desvantagens

  1. Curva de aprendizagem, pois pode ser desafiador para iniciantes sem experiência prévia com automação de testes.

  2. Recursos computacionais dado que o processo de automação de testes pode ser exigente em termos de recursos dos computadores, especialmente quando executados em múltiplos browsers simultaneamente.

Comunidade e Suporte

O Playwright tem uma comunidade ativa e um suporte robusto, como:

  • Fórum Oficial: Playwright GitHub Discussions

  • Stack Overflow: Identifica com a tag playwright para perguntas e respostas.

  • Documentação oficial do Playwright, abrangente e bem organizada, que facilita a aprendizagem e a resolução de problemas.

 
Anterior
Anterior

Mockups no Contexto de Testes de Software

Próximo
Próximo

Livro “Acelerador de Carreiras”