Tutorial: in 10 stappen Loadtesten met SoapUI

2 augustus 2021 | Martijn Postma

Soms heb je als tester, ontwikkelaar of infrastructuur specialist de mogelijkheid nodig om te zien hoeveel een systeem aan kan. Met een loadtest is het mogelijk om artificiële belasting te simuleren op een applicatie. SoapUI is een gratis tool wat dit in een handje vol stappen mogelijk maakt.

Hier is SoapUI gratis te downloaden:

Download REST & SOAP Automated API Testing Tool | Open Source | SoapUI

De interface van SoapUI ziet er als volgt uit. Met bovenin een taakbalk, links jouw projecten met hun inhoud, en in het midden ruimte voor de tests en requests. Vandaag gaan we een loadtest uitvoeren middels een REST call naar een hypothetische website.

1. We beginnen door linksboven een lege folder aan te maken onder ‘Empty’. Dit wordt de plek waar ons project en de inhoud onder valt. Deze folder hernoemen we vervolgens naar Tutorial-LoadTest. Vergeet niet vaak te saven. SoapUI geeft weinig waarschuwing voordat het iets weg gooit dus lees waarschuwingen zorgvuldig.

2. Door vervolgens rechtermuisknop op de folder te klikken kunnen we kiezen voor de optie ‘New REST service from URI’. Hier geven we de URI van onze te testen website op. De pop-up toont al een voorbeeld:

3. In het projectoverzicht worden nu een Resource, Method en Request aangemaakt. In het midden van je scherm word het Request alvast klaar gezet. Door op de ‘Play’ knop te drukken kan een verzoek afgeschoten worden naar het endpoint. Later kunnen in het request ook parameters meegegeven worden, voor nu houden we het simpel. Zelf vind ik het erg waardevol om een test suite aan te maken van verschillende methodes wanneer ik start bij een nieuwe klant.

4. Nu we een Request hebben gaan we een TestSuite aanmaken door rechtermuisknop te drukken op onze project folder en dan te klikken op ‘Create TestSuite’. Hier verzamelen we onze tests. Ik noem mijn TestSuite voor nu simpelweg ‘TestSuite’.

5. Nu maken we de testcase aan door rechtermuisknop op onze TestSuite te klikken en dan te gaan naar ‘New TestCase’. Zoals je ziet begint het aantal items in je project overzicht aardig toe te nemen. Om deze reden is het belangrijk dat je alles duidelijk identificeerbare en unieke namen geeft. Mijn TestCase noem ik ‘Load Test – testrequest’.

6. Nu gaan we de loadtest aanmaken met rechtermuisknop op Loadtest en dan te klikken op ‘New LoadTest’.

7. Hier zien we onze Loadtest verschijnen. Deze moet vervolgens gevuld worden met teststappen. In ons simpele geval doen we enkel een GET request naar een bepaald endpoint maar het is ook mogelijk om stapsgewijs meerdere aanroepen te doen op verschillende API’s gedurende een langere tijd. We maken een teststap aan door ons ‘GET testrequest’ te slepen op de header ‘Test Steps’ onder onze TestSuite.

8. Na het accepteren zien we de Test Step meteen verschijnen in onze ‘testrequest’ Load test.

9. Nu stellen we de parameters in van onze loadtest. De hoeveelheid Threads bepaald hoeveel tests parallel aan elkaar afgevuurd worden. Het Test Delay is het interval in miliseconde tussen afgeronde tests. En met het Limit kan bepaald worden hoelang door gegaan moet worden. Druk nu op Play en de Load Test wordt afgetrapt.

10. En hier is het resultaat van je test! De meest belangrijke kolommen zijn de volgende:
Min       snelste tijd in milliseconde van alle gedraaide requests.
Max      langzaamste tijd in milliseconde van alle gedraaide requests.
Avg        het gemiddelde van alle requests in milliseconde.
Last        De duur van het laatst uitgevoerde request in milliseconde.
Cnt         De hoeveelheid uitgevoerde requests

En dat is in 10 stappen hoe je een loadtest opzet en uitvoert in SoapUI. We hebben nu natuurlijk enkel het topje van de ijsberg gezien in termen van wat er mogelijk is dus duik er vooral zelf nog dieper in.

Veel succes met testen en zet hem op!

Martijn Postma
Business Unit Manager Software Development

Veraartlaan 12 
2288 GM Rijswijk (ZH)
t. +31 (0)85 13 00 730
e. info@pong.nl
w. www.pong.nl

kvk 63374641
btw nr. NL855208958B.01
bank nr. NL 25 ABNA 0596 7045 34