Configurar o Jenkins para executar e mostrar testes JMeter

Configurar o Jenkins para executar e mostrar testes JMeter

1. Visão geral

Neste artigo, vamos configurar um pipeline de entrega contínua usandoJenkinseApache JMeter.

Contaremos com o artigoJMeter como um ótimo ponto de partida para primeiro entender os fundamentos do JMeter, pois ele já tem alguns testes de desempenho configurados que podemos executar. E usaremos a saída de compilação desse projeto para ver o relatório gerado pelo plugin JenkinsPerformance.

2. Configurando o Jenkins

Em primeiro lugar, precisamos baixar a última versão estável deJenkins, navegar até a pasta onde está nosso arquivo e executá-lo usando o comandojava -jar jenkins.war.

Lembre-se de que não podemos usar o Jenkins sem uma configuração inicial do usuário.

3. Instalando o plug-in de desempenho

Vamos instalar o pluginPerformance, que é necessário para executar e exibir os testes JMeter:

image

Agora, precisamos lembrar de reiniciar a instância.

4. Execute testes JMeter com Jenkins

Agora, vamos para a página inicial do Jenkins e clique em “criar novos empregos”, especifique um nome, selecioneFreestyle projecte clique em “OK”.

Na próxima etapa, emGeneralTab, podemos configurá-lo com estes detalhes gerais:

image

A seguir, vamos definir o URL do repositório e os branches para construir:

image

Agora vá paraBuildTab para especificar como iremos construir o projeto. Aqui, em vez de especificar diretamente o comando Maven para construir todo o projeto, podemos tomar outra maneira de controlar melhor nosso pipeline, pois a intenção é apenas construir um módulo.

EmExecute shell **Sub-tab, escrevemos um script para realizar as ações necessárias após o repositório ser clonado:

  • Navegue até o submódulo desejado

  • Nós compilamos

  • Nós o implantamos, sabendo que é um projeto baseado em botas de mola

  • Esperamos até que o aplicativo esteja disponível na porta 8989

  • E no final, nós apenas especificamos o caminho de nosso script JMeter (localizado dentro da pasta de recursos do módulojmeter) para usar para teste de desempenho e o caminho do arquivo resultante (JMeter.jtl) também na pasta de recursos

Aqui está o pequeno script de shell correspondente:

cd jmeter
./mvnw clean install -DskipTests
nohup ./mvnw spring-boot:run -Dserver.port=8989 &

while ! httping -qc1 http://localhost:8989 ; do sleep 1 ; done

jmeter -Jjmeter.save.saveservice.output_format=xml
  -n -t src/main/resources/JMeter.jmx
    -l src/main/resources/JMeter.jtl

Conforme mostrado na imagem a seguir:

image

Depois que o projeto foi clonado no GitHub, nós o compilamos, abrimos na porta 8989 e processamos os testes de desempenho, precisamos fazer com que o plug-in de desempenho mostre o resultado de uma maneira amigável.

Podemos fazer isso adicionandoPost-build Actions dedicado. Precisamos fornecer o arquivo de origem dos resultados e configurar a ação:

image

EscolhemosStandard Mode com as configurações subsequentes:

image

Vamos clicar emSave, no menu esquerdo do painel do Jenkins, clicar no botãoBuild Now ** e esperar que termine o conjunto de operações que configuramos lá.

Depois que terminar, veremos no console todas as saídas do nosso projeto. No final, obteremosFinished: SUCCESS ** ouFinished: FAILURE:

image

Vamos para a áreaPerformance Report ** acessível através do menu do lado esquerdo.

Aqui, teremos o relatório de todas as construções anteriores, incluindo a atual, para ver a diferença em termos de desempenho:

image

Vamos clicar na indicação logo acima da tabela para ter apenas o resultado da última construção que acabamos de fazer:

image

No painel de nosso projeto, podemos obter osPerformance Trend, que são outros gráficos que mostram os resultados das últimas compilações:

image

Nota: Aplicar a mesma coisa a umPipeline project também é simples como:

  1. Crie outro projeto (item) a partir do painel e nomeie-oJMeter-pipeline, por exemplo (General info Tab)

  2. SelecionePipeline como tipo de projeto

  3. EmPipelineTab, na definição, selecionePipeline script ** e marqueUse Groovy Sandbox

  4. Na áreascript basta preencher as seguintes linhas:

node {
    stage 'Build, Test and Package'
    git 'https://github.com/eugenp/tutorials.git'

    dir('jmeter') {
        sh "./mvnw clean install -DskipTests"
        sh 'nohup ./mvnw spring-boot:run -Dserver.port=8989 &'
        sh "while ! httping -qc1
          http://localhost:8989 ; do sleep 1 ; done"

        sh "jmeter -Jjmeter.save.saveservice.output_format=xml
          -n -t src/main/resources/JMeter.jmx
            -l src/main/resources/JMeter.jtl"
        step([$class: 'ArtifactArchiver', artifacts: 'JMeter.jtl'])
        sh "pid=\$(lsof -i:8989 -t); kill -TERM \$pid || kill -KILL \$pid"
    }
}

Este script começa clonando o projeto, vai no módulo de destino, compila e executa para garantir que o aplicativo esteja acessível emhttp://localhost:8989

Em seguida, executamos os testes do JMeter localizados na pasta de recursos, salvamos os resultados como saída da compilação e, finalmente, o aplicativo é fechado.

5. Conclusão

Neste artigo rápido, estabelecemos um ambiente simples de entrega contínua para executar e mostrar os testesJMeter do Apache emJenkins de duas maneiras; primeiro por meio de umFreestyle projecte segundo com umPipeline.

Como sempre, o código-fonte deste artigo pode ser encontradoover on GitHub.