Performancetesting mit Microsoft Azure Load Testing

Azure

Agenda 📋

  • kurze Vorstellung
  • Performance-Testing
  • Apache JMeter
    • Web-Applikation testen
    • JMeter skalieren
  • Azure Load Testing
    • Architektur
    • Kosten
    • Hands-On
    • Azure DevOps Pipelines
  • Fazit

Der Sprecher 🙊

Matthias Eggert
Matthias Eggert

Performance-Testing ⏱️

  • Warum?
  • Wie?
  • Wann?

Super App 🦸

Demo: Qytera Homepage

Darum 😇

🎦

💩

Performance-Testing Arten 🏋️🧘🚣🏃

Performance-Testing Arten

Apache JMeter 🪶

  • Open Source
  • Java basiert
  • GUI und CLI
  • Skalierbar
  • Plugins

Web-Applikation testen 🌐

  • HTTP Request
  • Response Times
						
							from flask import Flask, request
							import time

							app = Flask(__name__)

							@app.route('/')
							def hello():
								# Retrieve the 'sleep' parameter from the URL
								sleep_time = float(request.args.get('sleep', 0))
								
								# Introduce a delay based on the sleep_time value
								time.sleep(sleep_time / 1000)

								return f"Slept for {sleep_time} milli seconds."


							if __name__ == '__main__':
								app.run(host='0.0.0.0', port=80)
						
					

Open App 🎁 🎦

JMeter skalieren ⚖️

JMeter

Azure Load Testing 🧪

❓❓❓

Quelle: Microsoft Azure Dokumentation ⛲️
"Azure Load Testing ist ein vollständig verwalteter Auslastungstestdienst, mit dem Sie eine hohe Auslastung generieren können. Der Dienst simuliert Datenverkehr für Ihre Anwendungen, unabhängig davon, wo sie gehostet werden. Fachkräfte in der Entwicklung und Qualitätssicherung sowie Tester*innen können damit die Leistung, Skalierbarkeit oder Kapazität einer Anwendung optimieren."
"Erstellen Sie schnell einen Auslastungstest für Ihre Webanwendung mithilfe einer URL und ohne vorherige Kenntnisse von Testtools. Azure Load Testing abstrahiert Komplexität und Infrastruktur, um Ihre Auslastungstests nach Maß durchzuführen."
"Für komplexere Auslastungstestszenarien können Sie einen Auslastungstest erstellen, indem Sie ein vorhandenes Apache JMeter-Testskript, ein beliebtes Open-Source-Tool für Auslastung und Leistung, wiederverwenden. Ihr Testplan kann beispielsweise aus mehreren Anwendungsanforderungen bestehen, Sie möchten Nicht-HTTP-Endpunkte aufrufen, oder Sie verwenden Eingabedaten und Parameter, um den Test dynamischer zu gestalten."
"Wenn Ihre Anwendung auf Azure gehostet wird, sammelt Azure Load Testing detaillierte Ressourcenmetriken, die Ihnen helfen, Leistungsengpässe bei Ihren Azure-Anwendungskomponenten zu erkennen."
"Um Regressionen in der Anwendungsleistung frühzeitig zu erfassen, fügen Sie Ihren Auslastungstest zu Ihrem Continuous Integration und Continuous Deployment (CI/CD)-Workflow hinzu. Nutzen Sie die Kriterien für das Scheitern von Tests, um die Qualitätsanforderungen Ihrer Anwendung zu definieren und zu validieren."

Vorteile 🚀

  • Cloud basiert: kein Know-How von Infrastruktur oder IaC benötigt (SaaS)
  • Einfache Tests ohne Tool-Know-How sind möglich
  • JMeter für komplexe Szenarien (skalierbar)
  • integrierte Analyse-Werkzeuge
  • Integration in Azure DevOps

Architektur 🏛️🛕

Azure Load Testing

Kosten 🤑

  • bis zu 100.000 virtuelle User sind möglich
  • $0,15 pro VUH (Virtual User Hour), ab 9950 VUH nur noch $0,075
    • 1.000 User * 1 Stunde = 150€
    • 10.000 User * 2 Stunde = 9950 * 0.15 + 10.050 * 0.075 = 2246,25

Hands-On 👐

  • Erstellung eines (einfachen) Tests
  • Skalierung
  • Monitoring
🎦

Einbindung in Azure DevOps Pipelines 🔗

Azure DevOps Pipeline 🎦

Aufräumen 🗑️

Fazit 🩻

  • Apache JMeter ist mächtig
  • Microsoft Azure Load Testing ist eine gute Ergänzung
  • Azure DevOps macht das Setup komplett

Vielen Dank! 🙏