Entwicklung eines Bot-Netzes auf Raspberry Pi-Basis zur Durchführung von Lasttests auf Webanwendungen

30.03.2016

Titelbild_Dave_Thesis-Patrick-SchedlerIm Rahmen seiner Thesis hat sich Patrick mit der Entwicklung eines Bot-Netzes auf Raspberry Pi-Basis zur Durchführung von Lasttests auf Webanwendungen beschäftigt. Entstanden ist ein Prototyp namens „Dave“ Mit ihm ist es möglich, automatisierte Lasttests für Webanwendungen durchzuführen und damit realistische Tests zu simulieren. Im Interview erzählt Patrick über das Projekt.

doubleSlash: Wie kam es zu der Idee mit dem Prototyp auf Rasperry Pi-Basis „Dave“?

Software wird vor ihrer Auslieferung bzw. bereits bei der Entwicklung fortlaufend auf Funktionalität geprüft. Das automatisierte Testen der Benutzbarkeit liegt daher nahe und spart gegenüber manuellem Testen viel Zeit und Geld. Allerdings wird oftmals unterschätzt, dass sich Systeme unter Last anders verhalten, als bei reiner Funktionsüberprüfung. Will man gute, stabile Software entwickeln, benutzt man neben Funktionstests auch Lasttests, um unvorhergesehenem Verhalten vorzubeugen.

Meine Aufgabe war es also, einen Hardware-Cluster zu entwickeln, mit dem es möglich ist, parallel automatisierte Lasttests durchzuführen.

Die zur Umsetzung der Aufgabenstellung gegebene Hardware sollte nicht kaputt gehen und auch niemanden gefährden. Sei es Kurzschluss, Überhitzung oder das jemand über ein Kabel stolpert. Also lag es nahe, ein Gehäuse zu bauen, sodass die verwendeten Bauteile möglichst sicher und kompakt verstaut sind. An dieses Gehäuse gab es einige Anforderungen, beispielsweise, dass die Anschlüsse der fünf Raspberries gut erreichbar bleiben sollen. So kam der fünfeckige Grundriss zustande. Die Größe des Konstrukts wird von dem Switch und der Stromversorgung im Inneren bestimmt.

Raspberry Pi_Thesis_Patrick-Schedler

 

 

 

 

 

 

 

 

 

 

doubleSlash: Was ist Dave und was macht er?

Patrick: Das Projekt gliedert sich in zwei Bereiche: Den Softwareteil mit Testverteilung, Überwachung und Auswertung und den Hardwareteil – Dave.

Dave stellt die Rechenleistung zur Lasterzeugung für dieses Projekt zur Verfügung. Das macht er mit den fünf gegebenen Raspberry Pis, die seinen (sprichwörtlichen) Kern bilden. Dazu kommt noch ein kleiner Switch, ein USB-Ladegerät mit sechs Anschlüssen als Stromversorgung und das nötige Kabelmaterial. All das steckt in einem fünfeckigen Gehäuse, Marke Eigenbau.
In der Grid Console sieht man die fünf Raspberries und deren aktuelle Auslastung. Standardmäßig sind jeweils fünf Firefox-, fünf Chrome- und eine Internet Explorer-Instanz aufrufbar. Diese Konfiguration und die maximale Anzahl paralleler Agenten kann über Grid eingestellt werden.

Grid-Console_Thesis_Patrick-Schedler_Raspberry-Pi
Grid Console mit fünf Raspberries und fünf parallel laufender (Firefox-)Tests.
doubleSlash: Wie hast du das Projekt umgesetzt?

Patrick: Zuerst musste ich die Hardware fertig stellen, da die Software ja darauf basiert – also habe ich mich als Erstes mit Ergänzungen zur gegebenen Hardware beschäftigt und nachdem ich die nötigen Teile hatte, das Gehäuse dafür gebaut. Darauf folgte die Automatisierung des Startvorgangs der Raspberries und als das funktionierte, konnte ich mit der Entwicklung der zugehörigen Software beginnen. Die Aufgaben dieser Software umfassen die Zusammenstellung, Ausführung und Überwachung von Tests und die Auswertung der erzeugten Serverlast.

Umgesetzt habe ich die Testautomatisierung mit Selenium, dem Selenium Grid und TestNG. Alle diese Technologien kommen in der Entwicklung bereits zum Einsatz und leisten auch hierfür gute Dienste. In der Kurzfassung wird über die selbstgeschriebene Webanwendung, der Testsuite-Generator, ein Testablauf definiert, welcher programmatisch in eine TestNG-Suite umgewandelt wird. Die in dieser Suite enthaltenen Tests werden über einen Selenium Remote WebDriver auf den Raspberries ausgeführt. Die Zuweisung der Tests an die Raspberries übernimmt der Selenium Grid Hub, bei dem sie als Arbeiterknoten registriert sind.

doubleSlash: Wie wird Dave nun eingesetzt?
Patrick: Der entwickelte Prototyp ist so weit funktional, dass er die Test-Webanwendung unter Last setzen kann und mit ein paar Erweiterungen ist  die Anwendung gut für den Einsatz in der Praxis geeignet. Daves Rechenkapazität könnte natürlich auch anderweitig eingesetzt werden, beispielsweise zur Berechnung von Primzahlen, doch die planmäßige Weiterentwicklung ist bereits fix.

 

Bild_4_CPU_Thesis_Patrick-Schedler_Raspberry-Pi

 

Mehr zu moderner Softwareentwicklung erfahren Sie hier

 

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*