# 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...

- URL: https://iagofrota.com.br/blog/minha-breve-experiencia-e-impressoes-com-o-playwright-com-java/
- Data: 2024-03-20
- Tags: automacao-de-navegador, automacao-web, desenvolvimento-web, experiencia-com-playwright, javascript, playwright, playwright-para-iniciantes, qualidade-de-software, teste-de-automacao, testes-end-to-end

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](https://iagofrota.com.br/images/blog/2024/08/image.png)](https://playwright.dev/java/)

## 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.

[](https://playwright.dev/java/docs/intro)


### 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 😄.

[](https://playwright.dev/java/docs/codegen)


### 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.

[](https://playwright.dev/java/docs/auth)


## 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.

3. 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.

5. 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.
