CASE STUDY LAST UND PERFORMANCE- TEST - profi.com ...
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Wozu Last- und Performance testen? »Der beste Test ist der Live-Test!«. Diesen Systemen und es ist folglich eine erhöhte Satz hören wir des Öfteren von Produktver- Last auf den Backendsystemen zu erwarten. antwortlichen während der Testaktivitäten. Diese Aussage mag auch an sich stimmig Exemplarisch nennen wir die folgenden sein, jedoch ist es von Vorteil, sein System Unternehmen: Amazon, Google, Ali Baba auch unter Last genau zu kennen. Denn und Cyberport. All diese Unternehmen ha- es ist zu beobachten, dass die Last auf IT- ben gemeinsam, dass sie im Internet Geld Systeme stetig zunimmt. Ein probates Mit- verdienen. Ein Ausfall derer IT-Systeme wirkt tel damit umzugehen, ist die Bandbreite sich unmittelbar auf das Tagesgeschäft der Netze zu erweitern.1 Dies allein genügt aus (kurzfristiger Schaden). Unsicherheit allerdings nicht. beim Kunden gepaart mit Kundenunzufrie- denheit münzen in einem weiteren Folge- Wir erkennen zwei Hauptursachen, für die schaden. Es können zukünftig potentielle zunehmende Last auf den Backendsyste- Käufer fernbleiben und einen anderen An- men. Die erste Ursache ist die weltweit im- bieter wählen (langfristige Folgen). Des mer höhere Anzahl an Geräten aller Art Weiteren wirken sich auch zu lange Ant- (mobil, PCs, Laptop, …), so gab es 2014 wortzeiten auf das Kauf- und Nutzverhalten 1.57 Mrd. Smartphone-Besitzer. Es wird für der Kunden aus4. Die unmittelbare Schluss- 2020 angenommen, dass diese Zahl auf folgerung ist, dass zukünftig Last- und Per- 2.87 steigen wird.2 Ebenso steigt die Anzahl formancetests eine immer größere Rolle im an Desktop Rechnern stetig, wenn auch Testprozess spielen werden, vor allem in den nicht so rasant wie die der mobilen Devices Bereichen des e-Commerce, Bankings, u.ä.. (Abbildung 1). In diesem Paper werden nach definierten Die zweite Ursache beruht auf der stetig zu- Kriterien ausgewählte Last- und Perfor- nehmenden Vernetzung von IT-Systemen mancetools verglichen. Anschließend wird und der damit verbunden Architekturände- eine Empfehlung je nach Einsatzart und An- rung hin zu Mikroservices.3 Beide Faktoren forderung für die Last- und Performance- erhöhen die Kommunikation zwischen den tools gegeben. Anzahl an Nutzern von mobilen Endgeräten und PCs in Millionen 2.000 1.800 1.600 1.400 1.200 1.000 800 600 400 Desktop 200 Mobile 0 2007 2008 2009 2010 2011 2012 2013 2014 2015 Abb. 1 (1) https://www.heise.de/newsticker/meldung/Studie-Daran-krankt-der-Glasfaserausbau-in-Deutschland- 3710057.html (2) Quelle ComScore (3) https://www.computerwoche.de/a/microservices-revolutionieren-die-it- organisation,3222474 (4) Todd DeCapua and Shane Evans, Effective Performance Testing, O‘Reilly Media Inc., 2016 (http://www.oreilly.com/webops-perf/free/effective-performance-engineering.csp
Kriterien Um eine möglichst objektive Bewertung der zu vergleichenden Tools vornehmen zu können, haben wir folgende Liste an Bewertungskriterien erstellt: 1. Technische Kriterien a. Architektur i. Skalierbarkeit ii. Flexibilität b. Funktionalität i. Unterstützte Technologien und Protokolle ii. Unterstützte Skriptsprachen oder graph. Programmierung iii. Entwicklungsumgebung iv. Möglichkeiten der Szenarioerstellung und -ausführung v. Möglichkeiten der Ergebnisaufbereitung und -analyse c. Schnittstellen i. In den CI/CD-Prozess ii. Zu Testmanagementwerkzeugen iii. Zu Monitoring-Tools iv. Zu anderen Lösungen 2. Nicht-technische Kriterien a. Installation b. Bedienbarkeit c. Reproduzierbarkeit d. Lizenzmodell Arten des Performance-Tests (Abb. 2) In der realen Welt des Softwaretest wird gehend von einem kleinen Startwert wird »Last- und Performancetest« am häufigsten die Last stetig erhöht, bis das System als allgemeiner Oberbegriff für verschie Fehler ausweist und der Last nicht mehr dene Performance-Test-Arten verwendet. Stand hält. Während die Beanspruchung Wir unterscheiden i. Allg.: linear steigt, flacht die Leistung irgendwann meist ab. Gesucht wird nun der Punkt, an • Der Performancetest wird oft als Ober- dem die Antwortleistung des Systems begriff für Testarten verwendet, bei denen exponentiell sinkt, wenn die Arbeitslast es um Zeitverhalten geht. Nach ISTQB erhöht wird. An diesem Punkt ist die maxi- würden wir es Performanztest oder Effi- male Kapazität des Systems erreicht. zienztest nennen. • Der Dauerlasttest prüft die Stabilität, • Der Lasttest ist nach ISTQB eine Art des den Ressourcenbedarf und das Antwort- Performance-Tests. Nach ISO 9126 ist zeitverhalten über eine längere Zeit (12 h Effizienz auch eines der sechs überge ord- bis hin zu mehreren Tagen). Hierbei lassen neten Qualitäts-Merkmale, unter welchen sich z. B. Memory-Leaks gut identifizieren. auch der Performance-Test fällt. Außer- dem kann ein Lasttest an verschiedenen • Der Skalierbarkeitstest erlaubt es, zu Schnittstellen ansetzen, per GUI, per API bestimmen, wie intensiv ein System ge- (HTTP, Webservices, REST) oder beispiels- nutzt werden kann und ob es mit Erwei- weise per SQL direkt auf der Datenbank. terung der Hardware »skaliert«, d.h. ob mit mehr Hardware auch mehr Arbeits- • Der Stresstest versucht die Kapazitäts- last bei weiterhin guten Antwortzeiten grenze des Systems zu bestimmen. Aus- verarbeitet wird. Im Folgenden stellen wir die ausgewählten Tools vor.
Performancetest Lasttest Stresstest Dauerlasttest Skalierbarkeitstest Effizienz Kapazitätsgrenze Stabilität Hardware messen bestimmen prüfen skalieren Abb. 2 Tools Die Auswahl eines geeigneten Testwerkzeugs hängt sowohl von der Art des Performance- Tests als auch von den Technologien und Architekturen ab, die genutzt werden – z. B. Flex, Flash, Push und Pull Verfahren, Cloud, dynamisches HTML5, AJAX, Web 2.0, Indus- trie 4.0, das Internet-of-Things, Wearables, Mobile Apps und Mobile Devices, ... sie alle haben enormen Einfluss auf das geforderte Knowhow und die Anforderungen an das Lastest-Tool. Aufgrund der Vielzahl der Lasttest-Tools kann es schwer sein, sich für das richtige Tool zu entscheiden. Ein großer Anteil von Performance kritischen IT-Anwendungen findet sich immer noch im Web-Umfeld. Und sie basieren dementsprechend auf Webtechnologien. Daher wollen wir im Folgenden nur Lasttest-Tools vergleichen, welche auch in der Lage sind mit diesen Technologien umzugehen. Wir wollen an dieser Stelle die bekanntesten Tools kurz aufführen. Dazu haben wir uns entschlossen, zwischen umfassenden General-Purpose-Tools und Web-Tools zu unter- scheiden. Während General-Purpose-Tools nur als rein kommerzielle Tools angeboten werden, lassen sich Web-Tools in kommerzielle und Open-Source-Tools differenzieren. General-Purpose-Tools decken ein breites Spektrum an Technologien ab. Auch seltenere Protokolle und Interfaces werden unterstützt. Sie besitzen i. Allg. eine umfangreiche Ent- wicklungsumgebung zur Erstellung der Testskripte sowie zum Design der Testszenarien. Sie bieten eine umfassende Protokollierung während der Testausführung und die Einbin- dung externer Monitoring-Tools. Weiterhin werden Probleme, wie Proxys, Firewalls und Netzwerkmonitoring gelöst und bereits vordefinierte Analyseprozesse sowie Schnittstel- len zu gängigen Testmanagementwerkzeugen angeboten.
General-Purpose-Tools • LoadRunner von Microfocus (vormals HPE) ist eine kommerzielle und sehr umfangrei- che Tool-Suite. Sie deckt von den in Betracht gezogenen Tools die meisten Technologien und Protokolle ab über Web-, Desktop- und Mobile-Apps bis hin zu diversen API-Schnitt- stellen und AJAX-Anwendungen. LoadRunner ist in das optionale Performance Center eingebunden, welches eine Verteilung von Controllern und Lastgeneratoren über ver- schiedene Projekte und Regionen erlaubt. Des Weiteren erlaubt es LoadRunner, Last- generatoren als SaaS aus der Cloud einzubinden. Eine Schnittstelle zum weitverbreiteten Testmanagementwerkzeug ALM von Microfocus ist selbstverständlich vorhanden. (Abb. 3) Abb. 3: LoadRunner von Microfocus • Silk Performer von Microfocus (vormals Borland) ist eine weitere, sehr umfangreiche Tool-Suite und ähnlich vielfältig wie LoadRunner. Es werden Web-, Desktop- und Mobile- Apps sowie Citrix und diverse API-Schnittstellen unterstützt. Das Monitoring ist sehr umfangreich. • Rational Performance Tester von IBM ist als Tool-Suite nicht ganz so umfangreich und ausgereift wie LoadRunner oder Silk Performer. Es werden Web- und Desktop-Apps sowie Citrix und SAP unterstützt. Die GUI ist einheitlich aufgebaut und identisch zum Rational Functional Tester für funktionale Tests oder zum Rational Test Virtualization Server für Service-Virtualisierung. Zusätzlich wird Nutzern mit wenig Programmierer- fahrung der Einstieg in das Tool durch die graphische Darstellung der Testskripte in Form einer Baumstruktur erleichtert.
Web-Tools sind auf Web-Technologien und -Protokolle beschränkt. Es lassen sich kom- merzielle von Open-Source-Tools unterscheiden. Beide Kategorien bieten Skript-Auf- zeichnung und verteilte Lastgeneratoren. Kommerzielle Tools unterstützen auch Online- Monitoring und bieten i.Allg. ausreichende Analyse- und Reporting-Möglichkeiten. Diese sind jedoch bei Open-Source-Tools weniger umfangreich als bei General-Purpose-Tools. Schnittstellen zu externen Monitoring-Tools oder Testmanagementwerkzeugen sind bei kommerziellen Tools meist ebenso vorhanden, bei Open-Source-Tool jedoch nur einge- schränkt oder gar nicht verfügbar. Kommerzielle Web-Tools • Neoload von Neotys ist eine auf Web- und Mobile-Apps fokussierte Tool-Suite. Entsprechend werden hauptsächlich das HTTP(S)-Protokoll mit den zugehörigen Technologien sowie Webservices unterstützt. Ansonsten ist Neoload eine vollwer- tige und übersichtliche Tool-Suite, welche auch Auswertungs- und Reporting-Mög- lichkeiten bietet. (Abb. 4) Abb. 4: Neoload von Neotys • WebLOAD von Radview ist ein Lasttestwerkzeug mit Schwerpunkt auf Web-Apps mit Technologien wie HTML5, AJAX, Flex, .NET, Oracle Forms, Webservices (SOAP, REST). Es arbeitet auf http/https-Protokolllevel, bietet DOM-basiertes »Capture and Replay«, Datenkorrelation und Reporting. • LoadUI, LoadUI Web und LoadUIComplete von SmartBear Software ist ein weite- res, auf Web-Apps und Webservices fokussiertes Tool. Es lässt sich sehr gut mit SoapUI als funktionalem Testwerkzeug kombinieren. Auch LoadUI bietet Unter- stützung für Auswertung und Reporting.
Abb. 5: JMeter von Apache Open-Source-Web-Tools • JMeter von Apache ist das Open Source Lasttestwerkzeug. Da es in Java ge- schrieben ist, ist es nicht nur plattformunabhängig, sondern bietet über Plugins auch viele Möglichkeiten für Customizing. JMeter unterstützt Standard-Web-Apps und Webservices und über Plugins auch Flash, Flex und Air. Auswertung und Re- porting sind sehr schlicht und einfach gehalten. (Abb. 5) • The Grinder ist ein weiteres Open Source Lasttestwerkzeug. Es wurde in Jython / Clojure geschrieben. Als besonderes Feature beherrscht The Grinder dynamische Skripte. Der Fokus liegt auf den Technologien: Java API, HTTP und Webservices sowie Applikationsserver mit Cobra, RMI, JMS und EJB. • Gatling von Gatling Corp ist ein auf Scala basierendes Open Source Lasttestwerk- zeug. Seit 2016 existiert zusätzlich zur freien Version die Enterprise Version Gatling FrontLine. Gatling bringt eine eigene domänenspezifische Sprache (DSL) für die Testskriptentwicklung mit. Es unterstützt standardmäßig die Web-Protokolle: HTTP, Websockets und JMS. Mit Hilfe von Community- und Custom-Plugins lassen sich weitere Protokolle z.B. MQTT, AMQP, ZeroMQ nutzen und Schnittstellen für IDEs und Datenbanken entwickeln. Bewertung und Einordnung Aus dem Portfolio umfassender oder spezialisierter Tools haben wir Rahmen dieser Veröffentlichung übersteigen würde, beschränken folgende Tools einer intensiveren Betrachtung unterzogen: wir uns hier auf die Key-Facts. Die untersuchten Tools wurden für unterschiedliche Testzwecke LoadRunner l NeoLoad l JMeter und -szenarien im Performance-Test-Bereich entworfen. Sie wenden sich an unterschiedliche Zielgruppen. Dies erklärt Unterschiede in Die Auswahl der drei Tools erfolgte anhand einer Umfrage, welche Architektur, Skalierbarkeit, Flexibilität, Funktionalität, Schnittstellen, Lasttestwerkzeuge im aktuellen Projekt- und Marktumfeld (bei Kun- Bedienbarkeit und Kosten. den der profi.com AG) im deutschsprachigen Raum am häufigsten Verwendung finden. Da ein detaillierter Vergleich der Tools den Tabelle 1 fasst die wesentlichen Punkte zusammen.
Gegenüberstellung wesentlicher Eigenschaften der Lasttest-Tools LoadRunner, NeoLoad und JMeter. Tools LoadRunner NeoLoad JMeter Kurzbeschreibung Bietet als General-Purpose-Tool Ist als kommerzielles Web-Tool Frei verfügbarer Opensource-Spe- eine sehr skalierbare Architektur, auf Web-Protokolle, Services- und zialist nur für Web-Protokolle. Ska- die größte Funktionalität und Frameworks eingeschränkt. Trotz- lierbarkeit ist über viele (manuelle) höchste Flexibilität. Entsprechend dem bietet es eine sehr skalierbare Konfigurationen möglich. Funktio- ist es eines der kostenintensiven Architektur, viel Funktionalität und nalitäten, die nicht nativ unterstützt Tools am Markt. hohe Flexibilität. Kostenmäßig werden, können über Plugins nach- ist es entsprechend günstiger als träglich installiert werden. Analyse LoadRunner. und Reporting Möglichkeiten nur rudimentär vorhanden. Pro • Fast jedes Protokoll und jede • Unterstützt alle gängigen • Open-Source Technologie auf Applikationsseite Web-Protokolle, Services- und • Unterstützt alle klassischen wird unterstützt (insbesondere Frameworks (auch SAP Web und Web-Protokolle und Web-Services SAP Web und GUI sowie Oracle- Oracle E-Business-Suite und sowie einige Nicht-Web-basierte E-Business-Suite) Forms) Protokolle wie JDBC, LDAP, Java • Durch Unterstützung von • Bietet einheitliche UI/IDE für Objects, Mail-Protokolle Legacy-Protokollen wie .NET, #C, Scripting, Scenariodesign, Testaus- • Setzt auf graph. Programmierung Java und SDK ist es möglich auch führung und Analyse • Bietet umfangreiche API und exotische Technologien über die • Setzt auf graph. Programmierung unterstützt Testentwicklung mit APIs und selbst entwickelten Test- • Integriert in die gängigen CI/CD- Java code anzusprechen Werkzeuge • Erweiterung von Funktionen durch • Erlaubt mit TruClient auch • Integriert viele Monitoring- eigene Plugins GUI-basierte, graphische Program- Werkzeuge • Integriert in die gängigen CI/CD- mierung • Flexibel in unterschiedlichen Test- Werkzeuge • Bietet umfangreiche IDE und Applikationslandschaften • Plattformübergreifend • Integriert in die gängigen CI/CD- einsetzbar (On-Premise, SaaS, Werkzeuge durch Firewalls und in Subnetzen) • Integriert viele Monitoring- • Bietet ein gutes und einfach Werkzeuge konfigurierbares Online-Monitoring • Flexibel in unterschiedlichen Test- • Bietet ein gutes Analyse- und und Applikationslandschaften Reportingwerkzeug einsetzbar (On-Premise, SaaS, • Plattformübergreifender Client durch Firewalls und in Subnetzen) • Bietet umfangreiches Controller- Werkzeug mit Online-Monitoring • Bietet umfangreiches Analyse- und Reportingwerkzeug • Integriert in viele andere (ehemalige HPE) Tools z.B. dem Testmanagementwerkzeug ALM, der HPE Service Virtualization oder den Monitoring-Lösungen HPE Application Performance Management und HPE AppPulse. • JMeter-Scripte können aus dem LoadRunner Controller heraus gestartet werden (eine separate JMeter-Installation bleibt nötig)
Tools LoadRunner NeoLoad JMeter Contra • Setzt für viele Protokolle Grund- • Auf Web-Protokolle beschränkt • Kein Enterprise-Support kenntnisse der Programmierung • Unterstützt keine speziellen • Kein integriertes Online-Monitoring in C oder Java voraus Protokolle • Nur rudimentäre Analyse- • Benötigt Eingewöhnung und • Keine Möglichkeit, externe APIs Werkzeuge Einarbeitungszeit aufgrund des anzusprechen Funktionsumfangs (IDE, Protokolle, • Möglichkeiten für eigene Funktio- Analyse) nen und Custom-Code auf kleinere Java-Script-Schnipsel begrenzt Fazit Eignet sich besonders für komplexe Eignet sich eher für mittlere bis Eignet sich eher für entwicklungs- Testumfelder mit wechselnden große Lasttests auch in komplexeren nahe Lasttests im CI/CD-Umfeld, in Protokollen und häufigen Test- Umgebungen, die nur auf Web- dem kein detailliertes Reporting ge- ausführungen. In diesem Umfeld Protokolle und Web-Technologien wünscht wird. Da das Tool an sich überzeugt LoadRunner mit seiner abzielen. Ist bei den reinen Lizenz- kostenlos ist, ist es auch für Projekte Vielseitigkeit an Protokollen und und Tool-Kosten LoadRunner interessant, die nur wenige bis seiner hohen Flexibilität. Eventuell überlegen. seltene Lasttests durchführen und höhere Lizenz- und Tool-Kosten klare Grenzen bzgl. der Toolkosten fallen dadurch weniger ins Gewicht. besitzen. Allerdings müssen hier die Toolkosten mit den Kosten für mehr Zeit an Konfiguration und Analyse mit externen Tools in die Berechnung mit einbezogen werden. Resümee Für anstehende Last- und Performancetests gibt es eine Vielzahl einfach zu bedienende Anbindungen der Lastgeneratoren in beste- an unterschiedlichen Tools, die Sie in Ihrem Unternehmen ein hende Cloudlösungen (z.B. Amazon, Microsoft Azure, etc.) besitzen. setzen können. Es gibt die spezialisierten Nischenplayer (JMeter), welche nur einzelne Technologien und Protokolle nativ unterstützen, Eine Integration von Last- und Performancetests in CI/CD-Pipelines dafür allerdings im Preismodell punkten. Allerdings bieten diese ist erstrebenswert, jedoch in naher Zukunft – anders als bei funktio Tools keinen Ansatz für eine sehr heterogene Systemlandschaft. nalen Tests – nicht flächendeckend zu erwarten. Wir sehen dennoch Hier kommen die Generalisten wie LoadRunner ins Spiel. Diese zwei Anwendungsfälle, bei denen die Integration sehr sinnvoll ist. bieten nativ mehr Unterstützung für die zu testenden Technologien Zum einen bei Tests von Anwendungen auf die maßgeblich von und Protokolle, sind allerdings auch mit höheren Preisen ausge mobilen Endgeräten zugegriffen wird und zum Anderen bei Tests stattet. Wir sehen auf dem Markt, dass es für spezifische Anforde- von IoT-Lösungen, welche in besonderem Maße von Microservices rungen mit bspw. NeoLoad nun etablierte Mitbewerber zu Load- abhängig sind. Runner gibt. Welches Tool schlussendlich das Beste für Ihr Unternehmen ist, Neben den klassischen Auswahlkriterien für ein Lasttesttool, welches hängt von Ihren konkreten Anforderungen und abzubildenden Ein- die unterstützten Technologien- und Protokolle neben Preismodell satzzwecken ab. Wenn Sie vor der Herausforderung stehen, das beinhaltet, werden zukünftig auch andere Kriterien hervortreten. So am besten geeignete Tool für Ihr Unternehmen zu finden, wenden ist zu erkennen, dass die Nachfrage im Bereich des Cloudtests für Sie sich an uns. Wir helfen Ihnen gerne bei der Einführung und Nut- Last- und Performancetests zunimmt. Das heißt, die Tools müssen zung eines Last- und Performance-Test-Tools in Ihrem Unternehmen.
Sie können auch lesen