NeoLoad für Tests von Microservices, API und Komponenten

DevOps-Cycle-Build-Test-Deploy
Neotys verfolgt seit jeher den Ansatz, alles zu automatisieren was automatisiert werden kann, um auf diese Weise kürzere Performance-Testzyklen zu erreichen; aus diesem Grund optimieren wir die Performance-Test-Plattform NeoLoad ständig. Der nächste logische Schritt beim ständigen Streben nach verbesserter Perfomance von Applikationen führt Unternehmen dazu, weitere strategische Veränderungen in Betracht zu ziehen, beispielsweise die Einführung von Microservice-Architekturen, API-Tests und Komponententests.
Microservices architectures vs monolitic architecture

Microservice-Architekturen verstehen

Eine Microservice-Architektur (häufig einfach nur „Microservices“ genannt) ist ein Architekturmuster, bei dem komplexe Aufgaben aus kleinen, unabhängigen Prozessen komponiert werden, die untereinander mit sprachunabhängigen APIs kommunizieren. Diese unabhängig einsetzbaren, modularen Dienste erledigen jeweils eine bestimmte Aufgabe. Microservices kommunizieren über eine klar definierte Methode oder eine Reihe von Methoden, um eine bestimmte Leistung zu erzielen oder ein Geschäftsziel zu erreichen.

  • Microservices können in mehrere Komponentendienste unterteilt werden, damit jeder einzelne dieser Dienste unabhängig aufgebaut, getestet, implementiert und wiederverwendet werden kann – ohne die Integrität der Anwendung zu beeinträchtigen
  • Microservices sind in der Regel so aufgebaut, um die Aktivitäten und Prioritäten von Unternehmen umzusetzen. Sie werden dabei meist von funktionsübergreifenden Teams anstelle von Expertenteams (z. B. Datenbank, Netzwerkinfrastruktur, Server) betreut

NeoLoad geht die Herausforderungen der Performance-Tests von Microservice-Architekturen an

Wegen des Aufbaus von Microservice-Architekturen geht mit einem robusten Lasttestplan ein gewisser Aufwand einher, um die tatsächlichen Nutzungsszenarien zu charakterisieren und auf diese Weise den ordnungsgemäßen Betrieb und eine dauerhafte Verfügbarkeit bei hohen Auslastungen oder im Falle eines Ressourcenausfalls zu prüfen. Das bedingt die Durchführung frühestmöglicher Tests im Softwareentwicklungsprozess – noch bevor eine GUI überhaupt existiert.

  • Auf ihrer grundlegendsten Ebene empfangen Microservices Anfragen, verarbeiten sie und erzeugen eine Antwort; und genau hier kann NeoLoad überzeugen
  • Mit NeoLoad können Sie benutzerdefinierte Protokolle und Aktionen definieren, Transaktionen und Benutzerpfade aufzeichnen und wiedergeben und Skripte im Rahmen einer umfassenden Leistungsanalyse des gesamten Softwareentwicklungsprozesses erneut verwenden
  • NeoLoad ist flexibel genug, um Datenverkehr mit spezifischen Protokollen zu generieren, wie dies für getestete Microservices erforderlich ist
    • Da für interne Microservices nicht immer Web-APIs verfügbar sind, bietet NeoLoad die Möglichkeit, benutzerdefinierte Aktionen und Protokolle nach Bedarf anzulegen
    • Spezifische Messaging-Protokolle (z. B. JMS, MQTT, KAFKA, MQ Series, ProtoBuf) oder Datenbankprotokolle (z. B. SQL-Lastgenerierung) können für die Tests spezieller Microservices definiert werden
API and Component tests created in Minutes with NeoLoad
A Swagger view of the NeoLoad API

Lastverhalten und Skalierbarkeit von APIs verstehen

Programmierschnittstellen bzw. APIs (englisch für application programming interface) sind für moderne datengesteuerte Anwendungen ausschlaggebend und ihre Bedeutung nimmt weiter zu. Gleichzeitig ist Representational State Transfer (REST) beliebter denn je, das gilt vor allem für populäre webbasierte Anwendungen (Twitter, Google, Flickr und viele weitere), die REST-APIs verwenden. Mit der Entstehung von RESTful API Frameworks wie Swagger, die mit NeoLoad integriert werden können, werden API-Tests mit NeoLoad schneller denn je durchgeführt.

  • Tests von Webdiensten und APIs sind ausschlaggebend für die Entwicklung hochwertiger Softwares, die in tatsächlichen Belastungsszenarien mit Stabilität und Leistung überzeugen sollen
  • Viele Aspekte von API-Tests sind mit traditionellen durchgängigen Lasttests vergleichbar
  • Da es jedoch keine GUI gibt, müssen einige besondere Aspekte in Betracht gezogen werden

API-Tests – wichtiger denn je für Ihr Unternehmen

Durch die Einbindung von API-Tests werden Gesamtqualität und Abdeckung der Performance-Tests verbessert.

  • NeoLoad kann dazu beitragen, das API-Lastverhalten bereits früh im Softwareentwicklungsprozess zu charakterisieren – zu einem Zeitpunkt, zu dem die Behebung von Performance-Problemen noch wesentlich einfacher und günstiger ist
  • Erhalten Sie einen Überblick über die Benutzererfahrung – noch bevor die GUI entwickelt ist
  • Simulieren Sie Datenverkehrsströme von der Neotys-Cloud, um realistische Lastszenarien zu erstellen und die Auswirkungen einer kompletten Auslastung unter Einsatz virtueller Benutzer zu visualisieren. Zur Auswahl stehen mehr als 50 On-Demand-Standorte von sechs unterschiedlichen Anbietern

Die Rolle von Automatisierung der Tests in CI (kontinuierlichen Integration)

DevOps-Test- und Entwicklungsteams setzen immer mehr auf die Automatisierung von API-Tests und integrieren ihre Test-Tools mit CI-Frameworks wie Jenkins. NeoLoad unterstützt Entwickler und Tester bei der Integration der gängigsten CI-Tools unter Einsatz gebrauchsfertiger CI-Plugins (erhältlich im Download Center) für Jenkins, Team City und Bamboo.

Automatisierung für kontinuierliche Integrationstests

    • Automatische Ausführung über Continuous-Integration-Systeme
    • Ausführung über Befehlszeilenschnittstelle
NeoLoad Integrates with Popular Continuous Integration Platforms
A Swagger view of the NeoLoad API

API-Tests mit NeoLoad

NeoLoad unterstützt SOAP/Web Services mit Optionen für REST- und API-Tests und kann zum Testen von beliebigen mobilen und Web-Anwendungen genutzt werden. Das bedeutet, Sie können NeoLoad während des Entwicklungslebenszyklus einsetzen, noch bevor Sie über eine Benutzeroberfläche verfügen, und die entsprechenden Ressourcen später wiederverwenden, wenn die Anwendung stabiler ist.
Sie können SOAP-Anfragen mit WSDL-Dateien generieren. So haben Sie die Möglichkeit, den Server zu testen, noch bevor der Client bereit ist, denn der wiederzugebende Datenverkehr muss nicht aufgezeichnet werden.

Test der RESTful Web Services

Mit NeoLoad können Sie die RESTful Web Services testen. Vorteile:

  • Native Unterstützung aller HTTP-Anfragemethoden: GET, POST, PUT, DELETE HEAD, OPTIONS
  • Native Unterstützung für XML- und JSON-Anfragen und Antworten zum Extrahieren von Daten aus Antworten, zur Datenvalidierung oder Werteeinspeisung

Die Aufgabe von Komponententests

Wir bei Neotys verfolgen die Devise: „früh testen … und oft testen“. Damit meinen wir, dass Lasttests im Softwareentwicklungsprozess idealerweise so früh wie möglich und häufiger, d. h. auf unterschiedlichen Granularitätsebenen umgesetzt werden sollen. Im Ansatz sind Komponententests mit API-Tests vergleichbar, doch sind oftmals spezielle Methoden erforderlich, um eine komplette Testabdeckung aller Komponenten und Anwendungsebenen zu gewährleisten

Das Testen einer einzelnen Komponente und der anschließende Test integrierter Komponentengruppen (z. B. für eine Benutzeroberfläche) sorgen dafür, dass diese Komponenten auch dann noch ordnungsgemäß funktionieren, wenn zu einem späteren Zeitpunkt des Softwareentwicklungsprozesses komplexere Test- und Lastszenarien dazukommen. Daraufhin können Sie zuversichtlich zu üblichen systemweiten Performance-Tests in der Vorproduktionsumgebung übergehen.

Komponententests werden immer häufiger in CI- und CD-Umgebungen (Continuous Integration und Continuous Delivery) umgesetzt. Die kontinuierliche Integration (CI) verfolgt vornehmlich defensive Ziele; Performance-Tester und Entwickler führen Tests regelmäßig und automatisiert durch und versuchen Performance-Entwicklungen zu dokumentieren und die Ergebnisse mit einem Referenztest zu vergleichen. Dabei möchten sie in der Regel herausfinden, ob aktuelle Änderungen am Code eine Verschlechterung oder Verbesserung der Performance zur Folge haben.

Component Testing Cycles

Fokus auf Anwendungsleistung

Setzen Sie auf die derzeit bewährte Methode der „Shift Left“-Tests (frühzeitige und häufige Tests im Softwareentwicklungsprozess). Mehr und mehr agile und DevOps-Teams setzen diesen Ansatz um. Dabei geht es vor allem um eine Änderung der Granularität des Testobjekts in den verschiedenen Phasen des Softwareentwicklungsprozesses hin zu einer Implementierung der Anwendung in eine Vorproduktionsumgebung. Darüber hinaus sollten Sie darüber nachdenken, wie und zu welchem Zeitpunkt der Test von APIs, Microservices und Komponenten Teil eines umfassenden Performance-Testplans sein sollte, um eine zufriedenstellende Endbenutzererfahrung ohne Frustration oder Ausfälle zu garantieren.

Make Performance Testing a Competitive Edge

Wettbewerbsvorteile durch Performance-Tests

Um in einer DevOps-Umgebung die benötigte Geschwindigkeit und Qualität für Performance-Tests zu erreichen, müssen Unternehmen den Testern und Entwicklern die Verantwortung für die Anwendungsleistung übertragen. In diesem Kontext muss das Ziel darin liegen, ansprechendere Anwendungen zu entwickeln, den Testprozess wo möglich zu automatisieren und die Art und Weise der Anwendungsgestaltung und Performance-Prüfung zu optimieren.

Ein Wettbewerbsvorteil kann erzielt werden, wenn Entwickler und Tester als Team zusammenarbeiten und dabei Akteure der Transformation eines Geschäftsmodells oder der Schöpfung neuer Möglichkeiten sind, indem sie schnellere und bessere Vorgehensweisen ausarbeiten. Durch die Bereitstellung besserer und schnellerer Einblicke im Rahmen der Entwicklung und Tests von Anwendungen spielen DevOps-Teams eine Vorreiterrolle, um die Konkurrenz zu übertreffen.

  • Testen Sie mit Zuversicht: Decken Sie mehr Testfälle ab, sorgen Sie für professionelle Qualität und machen Sie aus Testern zuverlässige Partner
  • Setzen Sie auf Agilität: Rücken Sie Performance-Tests in den Mittelpunkt Ihrer agilen Softwarebereitstellung
  • Erreichen Sie Erfolge mit DevOps: Sorgen Sie dafür, dass Performance-Tests zu einem dauerhaften Prozess in den Bereichen Entwicklung, Qualitätssicherung und operativ tätigen Abteilungen

Mehr über Microservices, API & Component Performance Testing