TestAutomatisering & PerformanceTesten

Performance test in de pipeline

Om (ontwikkel)teams zo vroeg mogelijk van feedback te voorzien met betrekking tot performance voer ik regelmatig performance testen uit. Zo ook voor de verschillende projecten die ik bedien binnen mijn huidige opdracht. Dankzij de regelmatige testen bouw je meer historische data op waardoor je trends kan gaan ontdekken. Bovendien worden hierdoor ook (enigszins) de effecten van andere wijzigingen inzichtelijk (anders dan een nieuwe release van de applicatie). Denk hierbij bijvoorbeeld aan OS updates op de applicatie server of wijzigingen aan het netwerk of aan backend systemen.

In deze blog geef ik kort en bondig neer in welke opzet en met welke tooling ik dat in deze opdracht doe. Ik zou het leuk vinden te horen wat jij daarvan vindt en of en zo ja welke ervaring jij hebt met performancetesten in de pipeline.

Bij mijn opdracht gebruik ik de volgende tooling:

  • SVN (Subversion) – versiebeheer software
  • Bamboo – continuous integration software (pipeline)
  • Oracle ATS – performance test tooling
  • Splunk – software voor zoeken, monitoren en analyseren van data, gegenereerd door servers.

SVN

In deze context wordt SVN gebruikt om het powershell script te beheren die door de Bamboo plannen gebruikt wordt. Het gaat hier dan om een script die de test aftrapt in Oracle ATS.

Bamboo

In Bamboo heb ik per project een plan aangemaakt. Als er van te voren testdata aangemaakt moet worden heb ik 2 stages, anders 1. De eerste stage is dan natuurlijk voor het voorbereiden van testdata en de tweede is voor de uitvoer van de performance test. De stages bevatten zelf weer jobs die binnen die stage uitgevoerd worden. Ik focus me nu alleen op de uitvoer stage. 

Binnen de uitvoer stage hebben we 2 jobs; Source Code Checkout en een PowerShell Task.

De Source Code Checkout haalt uit SVN het powershell script waarmee we de test in Oracle ATS willen starten. De PowerShell Task gebruikt vervolgens dat script en geeft Arguments mee. Dit zijn gebruikersnaam/wachtwoord combinaties voor OLT (Oracle Load Testing; de Controller van Oracle ATS) en van de server waarop OLT draait en enkele project specifieke waardes zoals applicatie naam en naam van scenario file (.scn).

Om bovenstaande in te kunnen stellen, moet je bij de plan configuratie nog wel de SVN repository toevoegen onder Repositories. Ik heb bij Triggers een Scheduled trigger toegevoegd waarbij ik in kan stellen wanneer dit plan gerund moet worden (bijv. elke vrijdag om 20:00 uur).

Oracle ATS

Dit is de performance test tooling die bij mijn opdracht gebruikt wordt. Via OpenScript kan je scripts maken. Via Oracle Load Testing (OLT) kan je scenario’s maken en performance testen uitvoeren. Je kan deze ook via command line aftrappen. Op deze manier worden de testen ook gestart via de pipeline in Bamboo. Het commando ziet er als volgt uit:

 C:/OracleATS/jdk/bin/java -jar C:/OracleATS/lib/OLTCommandLine.jar
-run
-OLTServer=localhost:8088
-user=oats
-password=<oats password>
-scenarioFile=<path .scn file op OLT server>
-session=<unieke session name>

De resultaten van de performance test komen in een Oracle database terecht. Door middel van een scriptje gemaakt door een DBA’er wordt deze content weggeschreven in een log.

Splunk

De logging die gegenereerd wordt met de performance test resultaten wordt via een Splunk Forwarder opgepakt en wordt dus beschikbaar in Splunk.

In Splunk hebben we per project een scriptje dat elk uur draait om te kijken of er voor dat specifieke project een testrun is geweest met een eindtijd. Als dat het geval is, worden de gegevens waarmee die run te identificeren is toegevoegd aan een lookup waarin alle runs staan van dat project. Hierbij is vooral het sessie id belangrijk.

In een dashboard worden dan in een dropdown selectie velden de verschillende runs getoond uit die lookup. Hierbij kunnen dan 2 runs geselecteerd worden die met elkaar vergeleken kunnen worden. De data wordt dan opgehaald op basis van de sessie id’s die horen bij de geselecteerde runs.

Dat was hem weer. Zoals gezegd ben ik benieuwd hoe jullie dit doen. Is de opzet vergelijkbaar of helemaal anders? Ik hoor het graag!

Dit bericht is geplaatst in CI/CD Performancetesten en getagd in CI/CD Performance Pipeline

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Nieuws

Blijf op de hoogte

Ervaringen Performance.Now() 2019

13/12/2019

Ervaringen conferentie PerfNow

Performance test in de pipeline

25/10/2019

In deze blog geef ik kort en bondig neer in welke opzet en met welke tooling ik performancetesten heb geïntegreerd in de pijplijn bij mijn huidige opdracht.

Circle-CI, van code naar webserver met één klik.

13/09/2019

Wanneer je ‘vroeger’ een website had, waren er altijd flink wat handelingen nodig om files via een FTP client op een webserver te krijgen. Vandaag de dag, met behulp van een verscheidenheid aan tooltjes, is dat een fluitje van een cent. Daarnaast krijg je een arsenaal aan mogelijkheden mee als builden, testen, etc.. In deze […]

Een korte intro in data-analyse met R

10/07/2019

Een blog over hoe je met behulp van R grote hoeveelheden data kan analyseren. Een tool dat je helpt bij de analyse van bijvoorbeeld load- en stresstestresultaten.

Installatie Oracle ATS op Windows

28/03/2019

Handleiding over hoe je Oracle ATS installeert op Windows (Versie 13.x of hoger)

Postman API testen in CI

01/02/2019

beschrijving van hoe je jouw Postman collectie laat draaien vanuit Jenkins en hoe je hierbij een praktisch JUnit test report krijgt.

Workshop ‘Stop de Magie!’ bij Qquest

04/12/2018

In het kader van de 4e techday van Qquest heeft Chris met ondersteuning van HenkJaap een workshop gegeven. Basis was de presentatie en demo ‘No more magic’ van Bas en Chris, welke al een groot succes was op de TestAutomationDay en TestNet. Centraal bij het onderwerp ‘No more Magic’ staat het idee dat er bij […]

Visual Regression Testing – Wat is het en wat heb je eraan?

07/11/2018

Visual Regression Testing, of visuele regressie testen, is een categorie van testen die zich focust op het identificeren van visuele wijzigingen tussen iteraties of versies van een website. Dit kan handmatig door schermen of schermafdrukken te vergelijken, maar het is beter herhaalbaar en sneller te testen door dit automatisch te doen. Het mooiste is om deze testen als een […]

Meer efficiency en flexibiliteit in API’s

04/10/2018

Er wordt steeds meer gebruik gemaakt van GraphQL API. Tijdens mijn laatste opdracht heb ik hier dan ook mee gewerkt.. Graag deel ik mijn ervaringen hierover in een aantal blogs. In deze eerste blog wil ik het graag hebben over de uitdagingen met REST API en hoe GraphQL deze oplost. Maar eerst even een korte […]

Impact tooling op performance: Dynatrace

21/09/2018

In deze blog geef ik kort de resultaten weer van een onderzoekje dat ik bij één van mijn laatste opdrachten heb gedaan naar de impact van het gebruik van de tool Dynatrace op de infrastructuur waar het op draait. Mocht je gebruik maken van tooling als Dynatrace of op een andere manier geïnteresseerd zijn in […]

Tips en tricks voor Protractor

06/09/2018

Vanuit PerformanceArchitecten doen we graag aan kennisdeling. Van tool reviews tot aan complete best practices maar ook van een aantal simpele tips en tricks die je kan gebruiken in je dagelijkse werk. Vandaag in die laatste categorie voor gebruikers van Protractor: (Javascript) timing issues en het managen van de volgorde van uitvoeren van actions. Inleiding […]

PerformanceArchitecten @The Next Web conferentie

04/07/2018

Was het een interessante conferentie? Beslist. Heeft TNW PerformanceArchitecten op nieuwe ideeën gebracht? Zeker. Heb jij TNW gemist, maar wil je je wel in vijf minuten op de hoogte laten brengen? Lees dan snel verder! En mocht je er wel zijn geweest.. We zijn benieuwd naar jouw beeld! Wat is de Next Web? Voor hen […]