Azure Load Testing
Mit Load Testing bietet Microsoft auf Azure einen Service zur Durchführung von Lasttests und Durchführungen von Simulation bezüglich App-Leistung, Skalierbarkeit und Kapazität.
Aufgesetzt ist das Ganze durch Apache JMeter, so dass auch bereits vorhandene Scripts problemlos migriert und ausgeführt werden können.
Setup
Wie in Azure bekannt kann die Ressource als „Azure Load Testing (Preview)“ ausgewählt und angelegt werden. Im Menü hat man nun die Möglichkeit einen Test auszuführen oder über JMeter Scripts Tests anzulegen
Quick Test
Wählt man einen schnellen Test aus kann die Anzahl der virtuellen Nutzer (=Anzahl Zugriffe) und die Länge des Tests ausgewählt werden
Anschließend wird der Test gestartet und man bekommt direkt eine Übersicht über den Testlauf.
Nach der Durchführung des Tests erhält man eine Übersicht über die Last und entsprechenden Response Zeiten:
In diesem Fall wurden für den Test 5 virtuelle Nutzer 2 Minuten lang mit 10 Requests konfiguriert
JMeter Script
Nutzt man die JMeter-konfiguration können vorhandene JMeter scripts (xml) hochgeladen werden. Nach dem Upload der Testkonfiguration kann die Last zusätzlich über das Menü konfiguriert werden.
Im nächsten Schritt lassen sich die Kriterien für die Tests definieren. So kann zum Beispiel die Maximale Response time oder ein Schwellwert für fehlerhafte Requests festgelegt werden.
Zusätzlich zu den definierten Tests lassen sich noch Services verknüpfen um die von Application Insights bekannten Parameter zur Service Prüfung zu überwachen.
CI/CI Integration
Über yaml Konfigurationen lassen sich die JMeter Scripts auch aus einer Azure DevOps Pipeline oder über GitHub Actions triggern. Vereinfacht gesagt wird hier die Verbindung über ein Service Principal hergestellt und über entsprechende Task werden die Konfiguration und Parameter übergeben.
Kosten
Ausgeschrieben sind die kosten aktuell mit 9,81€ pro Monat. Bei diesem Preis sind 50 Virtual User Hours (VUH), welche für die meisten UseCases kleinerer Anwendungen ausreichen.
Mit dem Basispreis lässt sich zum Beispiel ein täglicher Test mit 10 Benutzern und 1 Minute paralleler Zugriff simulieren.
Für umfangreichere Tests werden bis 9950 Stunden €0,149 pro zusätzlicher VUH fällig. Darüber hinaus fallen €0,075 je zusätzlicher VUH an.
So werden zum Beispiel für tägliche Test mit 1000 Benutzern und 1 Minute paralleler Zugriff knapp 80 € fällig.
Fazit
Mit Azure Load Testing stellt Microsoft einen wirklich einfachen Cloud Service für Lasttests zur Verfügung. Über die Oberfläche lassen sich aktuell noch keine parametrisierten Requests abbilden, weshalb für spezifische und detaillierte Tests auf JMeter Scripts zurückgegriffen werden muss. Ein Datum, wann der Service von Preview auf Release umgestellt wird wurde von Microsoft bisher noch nicht veröffentlicht.
Quellen:
https://docs.microsoft.com/en-us/azure/load-testing/overview-what-is-azure-load-testing
https://azure.microsoft.com/en-us/pricing/calculator/
https://zimmergren.net/using-the-azure-load-testing-service/