Publicado em: março 19, 2019
Como executar testes Selenium do Jenkins usando o pipeline
Jenkins é um sistema de software Java de código aberto projetado para auxiliar na integração contínua de software É um sistema baseado em servidor que roda em contêineres de servlet, como o Apache Tomcat. O Jenkins suporta ferramentas de controle de versão (por exemplo, Git) e pode executar seus projetos com base em Apache Ant, Apache Maven e sbt, bem como scripts e comandos arbitrários de shell/Windows. Durante o desenvolvimento de sistemas de grande porte, surge a necessidade de um processo contínuo de implantação e testar novas versões do seu produto. Para resolver esse problema, usaremos o Selenium Pipeline do Jenkins.
O Jenkins Selenium Pipeline é um conjunto de plugins que oferece suporte à integração de entrega contínua no Jenkins. Em outras palavras, é um script que contém várias tarefas e pode ser executado sempre que uma determinada condição for atendida. Vejamos um exemplo de como usar o Pipeline. Para saber mais, clique aqui. Digital.ai Continuous Testing Integrações, veja aqui..
Nossa tarefa é criar um Pipeline que será executado automaticamente a cada push para nosso repositório público de testes Maven. O repositório armazenará um projeto Maven com um autoteste de interface do usuário, escrito usando o Selenium WebDriver.
Nosso pipeline do Jenkins receberá as alterações de código, compilará um projeto e executará um teste automatizado simples.
Em etapas:
1) Baixar Jenkins.
2) Instale com os parâmetros recomendados seguindo as instruções do instalador. (Nota importante: recomenda-se instalar o Jenkins em uma máquina separada com acesso à internet, pois é necessário conectar sua instância ao repositório. No entanto, para a demonstração, podemos (e iremos neste artigo) usar um projeto Jenkins local com acesso através da ferramenta Ngrok).
3) Quando a instalação estiver concluída, clique no botão “criar novos trabalhos”.
4) Em seguida, selecione a seção Pipeline e insira o nome do seu trabalho. Clique em OK.
5) Em seguida, acesse a seção Pipeline e defina os seguintes parâmetros:
a) Definição = “script de pipeline do SCM”
b) SCM = “Git”
6) Defina um repositório. Aqui, o campo Caminho do Script tem como padrão o valor “Jenkinsfile” – este é o nome do arquivo de script que contém a descrição de todas as tarefas que nosso Pipeline do Jenkins executará. Este arquivo deve estar na raiz do repositório por padrão. Voltaremos à criação e configuração do Jenkinsfile mais tarde, então agora vamos preparar um repositório e um projeto para nosso teste Selenium. Por enquanto, basta clicar no botão Salvar.
7) O script do nosso teste automático visitará a página. https://experitest.com/free-trial/ e verifique o título desta página; em seguida, veremos as mensagens "TESTE APROVADO" ou "TESTE REPROVADO" como resultado. Portanto, usaremos Chromedriver e IntelliJ IDEA IDE, faça o download e instale-os, se necessário.
8) Crie um projeto Maven padrão em sua IDE e coloque o arquivo chromedriver.exe no mesmo diretório onde sua instância do Selenium no Jenkins está instalada. No meu caso, Clique aqui para ver o código..
[java] package com.test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class Selenium { public static void main(String[] args) { System.setProperty(“webdriver.chrome.driver”,”F:\Jenkins\workspace\chromedriver.exe”); // <– Altere este caminho WebDriver driver = new ChromeDriver(); String baseUrl = “https://experitest.com/free-trial/”; String expectedTitle = “Teste gratuito”; String actualTitle = “”; driver.get(baseUrl); actualTitle = driver.getTitle(); if (actualTitle.contentEquals(expectedTitle)){ System.out.println(“TESTE APROVADO!”); } else { System.out.println(“TESTE FALHOU”); } driver.close(); } } [/java]
9) Para garantir que nosso teste funcione, vamos executá-lo localmente. Abra o terminal integrado (você pode encontrá-lo no canto inferior direito da interface do IDEA) e digite os seguintes comandos:
a) mvn clean install – Como resultado deste comando, uma pasta /target será criada, e nela um arquivo com.test-1.0-SNAPSHOT.jar.
b) java -jar {caminho para o projeto local}comtesttargetcom.test-1.0-SNAPSHOT.jar – este comando executará nosso teste.
Veja os resultados na captura de tela:
10) Agora que nosso projeto está pronto, podemos colocá-lo na raiz do nosso repositório de testes. No mesmo local, criaremos um Jenkinsfile. Assim:
11) Agora podemos discutir o conteúdo do nosso Jenkinsfile. cujo código pode ser visualizado aqui..
Aqui:
a) node { } – uma espécie de invólucro para o nosso script. Dentro dele, o script é dividido em etapas.
b) etapa ('checkout do SCM') – etapa preparatória, durante a qual recebemos atualizações do nosso repositório.
c) estágio ('Build') – o estágio principal, durante o qual o Jenkins executará as mesmas etapas que realizamos localmente no console acima.
d) dir (“comtest”) – funciona em uma pasta específica.
e) sh “mvn clean install” – executa comandos do shell.
12) Nesta etapa, podemos iniciar manualmente nosso pipeline do Jenkins para garantir que ele funcione.
Você pode visualizar os resultados do funcionamento do pipeline na forma de um texto sólido ou passo a passo.
Opção “Saída do console”:
Opção “Etapas do pipeline”:
Mas nosso objetivo não é apenas criar um pipeline do Jenkins para testes automatizados, mas também automatizar sua execução. Vamos lá.
13) Instale os plugins para integração com o GitLab. Para isso, acesse a próxima seção: Jenkins => Gerenciar Jenkins => Gerenciar Plugins
Em seguida, selecione a aba Disponível e digite “gitlab” no campo de busca. Instale os plugins necessários e reinicie o Jenkins.
14) Quando a atualização estiver concluída, retornamos à configuração. Acesse Jenkins => Configurar Sistema.
a) Adicione o repositório Gitlab ao plugin:
Nota: Para os nossos propósitos, é necessário usar um repositório público, portanto não devemos especificar nenhuma credencial.
b) Verifique se temos um URL do Jenkins válido. Se você instalou sua instância do Jenkins Pipeline em uma máquina separada, esta etapa pode ser ignorada. Se você usou uma máquina local, como eu, verá a inscrição "localhost" no campo "URL do Jenkins".
Neste caso, precisamos obter uma URL que possa ser acessada pelo GitLab pela internet. Como mencionei anteriormente, existe uma maneira fácil de fazer isso – grok.
Seguindo as instruções simples desta ferramenta, obtenha o URL onde está localizado o nosso Jenkins de teste:
Vamos inserir esse endereço no campo URL do Jenkins e salvar todas as alterações.
15) Agora, acesse as configurações do GitLab: GitLab => Projeto => Configurações => Integrações. Precisamos configurar o webhook do Jenkins CI. Clique no link a seguir:
As configurações de integração com o Jenkins CI serão semelhantes às seguintes:
16) Atualize as configurações do nosso pipeline do Jenkins (pipeline_selenium1) para usar um webhook do GitLab.
17) É isso aí! Agora vamos enviar algo para o nosso repositório e ver o que acontece no Jenkins.
Finalizando o lançamento do pipeline do Jenkins
Como você pode ver, temos uma maneira fácil de criar um Pipeline do Jenkins, que executará testes automatizados do Selenium sem intervenção humana. O Pipeline também nos permite realizar quaisquer ações preparatórias automaticamente. Para saber mais sobre a sintaxe do Jenkinsfile, você pode acessar o link Sintaxe do Pipeline (que pode ser visto na última captura de tela).
Se este blog lhe interessou, visite Digital.ai Continuous Testing para ver como oferecer experiências impecáveis ao cliente com web escalável e teste móvel.
Também recomendamos
O lançamento de um novo Pixel sempre traz a mesma pergunta: seu aplicativo está pronto?
Toda vez que o Google coloca um novo Pixel nas mãos das pessoas,…
Primeiro no mercado com suporte para iOS 27 — mas significa mais do que ser o primeiro
Quando a versão oficial do iOS 27 foi lançada, Digital.ai Os testes foram…
Proteja e teste seu aplicativo no iOS 27 desde o primeiro dia.
Os aplicativos móveis são a chave para o seu sucesso. Eles conectam…





















