Configureer Jenkins om JMeter-tests uit te voeren en weer te geven

1. Overzicht

In dit artikel gaan we een pijplijn voor continue levering configureren met Jenkins en Apache JMeter.

We zullen vertrouwen op het JMeter-artikel als een goed startpunt om eerst de basisprincipes van JMeter te begrijpen, aangezien het al een aantal geconfigureerde prestatietests heeft die we kunnen uitvoeren. En we zullen de build-uitvoer van dat project gebruiken om het rapport te zien dat is gegenereerd door de Jenkins Performance-plug-in.

2. Jenkins opzetten

Allereerst moeten we de nieuwste stabiele versie van Jenkins downloaden, naar de map navigeren waar ons bestand zich bevindt en het uitvoeren met behulp van de java -jar jenkins.war opdracht.

Houd er rekening mee dat we Jenkins niet kunnen gebruiken zonder een eerste gebruikersconfiguratie.

3. De Performance Plugin installeren

Laten we het Prestatie plug-in, die nodig is voor het uitvoeren en weergeven van JMeter-tests:

Nu moeten we onthouden om de instantie opnieuw te starten.

4. Voer JMeter-tests uit met Jenkins

Laten we nu naar de startpagina van Jenkins gaan en klikken op "nieuwe banen maken", een naam specificeren en selecteren Freestyle-project en klik op "OK".

In de volgende stap, op de AlgemeenTab, kunnen we het configureren met deze algemene details: Laten we vervolgens de repository-URL en branches instellen om te bouwen: Ga nu naar de BouwenTab om te specificeren hoe we het project zullen bouwen. Hier in plaats van direct het Maven-commando op te geven om het hele project te bouwen, kunnen we een andere manier kiezen om de controle over onze pijplijn te verbeteren, aangezien het de bedoeling is om slechts één module te bouwen.

Op de Voer shell uitSubtabblad we schrijven een script om de nodige acties uit te voeren nadat de repository is gekloond:

  • Navigeer naar de gewenste submodule
  • We hebben het samengesteld
  • We hebben het geïmplementeerd, wetende dat het een project is gebaseerd op de lente
  • We wachten tot de app beschikbaar is op poort 8989
  • En aan het einde specificeren we gewoon het pad van ons JMeter-script (in de resource-map van het jmeter module) om te gebruiken voor prestatietests en het pad van het resulterende bestand (JMeter.jtl) ook in de bronnenmap

Hier is het kleine corresponderende shellscript:

cd jmeter ./mvnw schone installatie -DskipTests nohup ./mvnw spring-boot: run -Dserver.port = 8989 & while! HTTPping -qc1 // localhost: 8989; slaap 1; done jmeter -Jjmeter.save.saveservice.output_format = xml -n -t src / main / resources / JMeter.jmx -l src / main / resources / JMeter.jtl

Zoals weergegeven in de volgende afbeelding:

Nadat het project is gekloond vanuit GitHub, hebben we het gecompileerd, geopend op poort 8989 en de prestatietests verwerkt, we moeten de weergave van de prestatie-plug-in op een gebruiksvriendelijke manier laten zien.

We kunnen dat doen door een dedicated Acties na het bouwen. We moeten het bronbestand voor de resultaten verstrekken en de actie configureren:

We kiezen voor de Standaardmodus met de volgende configuraties:

Laten we slaan Sparen, klik in het linkermenu van het Jenkins-dashboard op de knop Bouw nuen wacht tot het de reeks bewerkingen heeft voltooid die we daarboven hebben geconfigureerd.

Als het klaar is, zien we alle outputs van ons project op de console. Aan het einde krijgen we beide Klaar: SUCCESof Voltooid: MISLUKT:

Laten we naar de ... gaan Prestaties rapportgebied toegankelijk via het menu aan de linkerkant.

Hier hebben we het rapport van alle eerdere builds, inclusief de huidige, om het verschil in prestatie te zien:

Laten we op de indicatie net boven de tabel klikken om alleen het resultaat te zien van de laatste build die we zojuist hebben gemaakt:

Van het dashboard van ons project kunnen we het Prestatietrend, dit zijn andere grafieken die de resultaten van de laatste build tonen:

Opmerking: hetzelfde toepassen op een Pijpleidingproject is ook eenvoudig als:

  1. Maak een ander project (item) vanuit het dashboard en geef het een naam JMeter-pijplijn bijvoorbeeld (Algemene info Tab)
  2. Selecteer Pijpleiding als projecttype
  3. Op de PijpleidingTab, op de definitie selecteren Pipeline-script en check Gebruik Groovy Sandbox
  4. In de script vult u gewoon de volgende regels:
knooppunt {stage 'Build, Test and Package' git '//github.com/eugenp/tutorials.git' dir ('jmeter') kill -KILL \ $ pid "} 

Dit script begint met het klonen van het project, gaat in de doelmodule, compileert en voert het uit om ervoor te zorgen dat de app toegankelijk is op // localhost: 8989

Vervolgens voeren we JMeter-tests uit die zich in de resource-map bevinden, slaan de resultaten op als de build-uitvoer en ten slotte wordt de toepassing gesloten.

5. Conclusie

In dit korte artikel hebben we een eenvoudige continue bezorgomgeving opgezet om Apache uit te voeren en weer te geven JMeter testen in Jenkins op twee manieren; eerst via een Freestyle-project en ten tweede met een Pijpleiding.

Zoals altijd is de broncode voor dit artikel te vinden op GitHub.