3
respostas

Em que fase o Selenium se encaixa?

Bom dia, pessoal.

Tenho implementado testes com o Selenium em um dos meus projetos, mas estou com uma dúvida em relação a melhor maneira de encaixá-lo em um processo de Integração Contínua, por exemplo.

Atualmente, utilizo o Jenkins para gerar release dos meus projetos. Como o Selenium se encaixaria nos meus pipelines?

3 respostas

Opa Wh, tudo bem? Acho essa uma ótima pergunta. Não existe certo e errado neste caso, mas existem boas recomendações. Considerando que cada parte do pipeline de testes é independente, claro.

Geralmente vejo dois fluxos que parecem ser mais populares, ou o Selenium está já no começo da stack de testes, sendo os primeiros a serem executados ou então no final depois dos testes de unidade e integração. Lembrando que é um teste de interface e comportamento, ele estará afetando todo o comportamento do sistema em si, de forma guiada claro.

Popularmente eu conheço essas duas opções. Você tem alguma outra sugestão de como ele pode estar no pipeline.

Acho que até o próprio Jenkins dá uma dica na página inicial do seu site mostrando que o primeiro teste é o de browser antes de passar para a análise estática:

jenkins pipeline

Olá, Wanderson.

Obrigado pela disposição em ajudar.

O que não ficou muito claro para mim (e que é uma dúvida que não estou conseguindo sanar em lugar nenhum) é como esse(s) teste(s) de automação com o Selenium serão executados dentro do pipeline. Porque, por exemplo, para rodar meus testes (manualmente), eu preciso que o projeto esteja sendo executado em um servidor de aplicação. Caso contrário, os testes nem são executados.

Isso mesmo Wh, você precisa de um servidor para isso, é por isso que na maioria dos casos você não vai trabalhar apenas com o servidor de produção (acessado pelos usuários reais), mas também um servidor de testes, com um banco de testes, etc.

É nesse ponto onde você pode encontrar uma baita vantagem no devops. Automatizar uma máquina de testes para executar tudo, para só depois o deploy ser encaminhado para o servidor de produção.