Iago Frota

Desenvolvedor Web

Freelancer

QA

Sunset Lover

Iago Frota

Desenvolvedor Web

Freelancer

QA

Sunset Lover

Postagens

Minha breve experiência e impressões com o Playwright com Java

Minha breve experiência e impressões com o Playwright com Java

Há cerca de 6 meses atrás resolvi utilizar o Playwright com Java para me auxiliar nos testes automatizados. Já adianto que estou muito satisfeito de ter feito essa escolha devido os recursos que o Playwright tem e por achar o Javascript puro (sem Typescript) com excesso de flexibilidade 😁.

Minha experiência está sendo tanto na automação dos testes de API como em testes de tela. Além disso, estou gostando demais de utilizar Java devido a sua consistência e seu padrão opininativo em como as coisas devem ser.

Logo abaixo irei falar alguns outros detalhes

Logo do framework de testes automatizados Playwright

Minha experiência e impressões

Documentação

A documentação tanto com os guias como o da API do Playwright é muito boa e bem descritiva. Foi muito fácil fazer uma POC no início. Os guias mostram como desenvolver testes tanto de API como de telas, lomo funciona os locators, reúso de autenticação, assertions e entre outros assuntos interessantes para entender como funciona a ferramenta, tudo isso com exemplos práticos.

Curva de aprendizado

Acredito que esse tópico é muito pessoal, então irei falar minha opinião. Já utilizei Selenium (Java e Python) e Cypress (JS puro). O Cypress foi o que mais me agradou devido seus recursos de auto-wait e sua fluência para escrever cenários de testes.

Com o Cypress, achei muito natural escrever cenários de testes, pesquisar resolução de problemas e fazer adaptações para o framework se encaixar no meu cenário. Com o Playwright tive essa mesma sensação. Não senti dificudade alguma para entender como funciona o desenvolvimento dos cenários de testes, fazer adaptações e pesquisar resolução de problemas.

Hoje, para fazer as assertions estamos utilizando o jUnit (com recomendação do nosso Tech Lead) e acredito que foi uma escolha muito acertada devido os recursos do jUnit. Inclusive, recomedo você utilizar o jUnit.

Teste generator (codegen)

Esse recurso não é tão inovador assim, mas vale comentar sobre ele. Quando comecei a desenvolver testes automatizados, utilizei o gravador de ações de tela do Selenium. Eu lembro que era uma mão na roda. No Playwright, isso ainda continua me ajudando a pegar a localização dos objetos HTML na tela 😄.

Trace Viewer

O Trace viewer também não é algo particular do Playwright, porém vale comentar. Esse recurso é bem interessante quando a regressão pega um erro e você precisa reproduzir e analisar o que está dando errado. Basicamente ele grava praticamente todos os comportamentos da tela como, click do botão, preenchimento dos campos, a aba network do chrome (❤️) e entre outros detalhes. Você consegue analisar step by step. Isso também é particulamente interessante para você ver junto com o desenvolvedor 😎.

Reúso da autenticação

Esse recurso é bem importante quando estamos desenvolvendo uma regressão de um sistema WEB: guardar o estado da autenticação para utilizar nos testes e a aplicação não ficar pedindo login. No Playwright foi bem simples e não tive maiores problemas. Consegui integrar perfeitamente ao meu projeto.

Coisas que deixam a desejar

  1. Noto que a documentação para Javascript tem bem mais recursos que o de Java. Claro, não são recursos que irão limitar o meu uso do Playwright com Java, porém eu notei diferença.
  2. Como o Playwright é relativamente novo, sinto que alguns problemas são mais trabalhosos de serem pesquisados e solucionados. No meu uso, não fiquei impossibilitado com nada.
  3. Como o Playwright é relativamente novo, pode ser que você não encontre suporte para a sua biblioteca favorita. Novamente, não fiquei impossibilitado com nada.

Conclusão

Hoje eu vejo que a escolha do Playwright com Java foi muito acertiva para o meu contexto atual. Tem muitas coisas a serem exploradas ainda no Playwright. Ainda quero criar uma trilha para ajudar a comunidade.

Enfim, espero que este artigo tenha sido claro e que lhe ajude a tomar uma decisão de qual framework utilizar.

Taggs:
Write a comment

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.