Lasttests mit Visual Studio 2010 Ultimate – Einrichtung

Dieser Artikel wurde von Mohr, Steven am Donnerstag, 23. August 2012 verfasst. Aktualisiert: 01.12.2013 10:20:28

Für die Serverkomponenten unser beiden Spieleserver sollen Lasttests erstellt werden. So als Facebook-Social-Game wäre es sicherlich sehr vorteilhaft, wenn das ganze nicht schon bei 10 gleichzeitigen Spielern zusammenbricht :-). Zwar wird das ganze später auf der Windows Azure-Plattform laufen, aber trotzdem ist das keine Ausrede für inperformanten Code. Also gucken wir mal, was VS 2010 so zum Thema Lasttests bietet.

Für unser Gebiet sind vor allem zwei der angebotenen Testtypen interessant, der Webtest und der normale Komponententest.

Web-Test

WebTests funktionieren, ähnlich wie von Testtools wie Selenium bekannt, mit Hilfe eines Recorders. Dabei werden die Anfragen an den Server aufgezeichnet und im späteren Test wieder abgespielt. Hierbei können die einzelnen Abfragen mit Hilfe von Datenbankabfragen, CSV- oder XML-Dateien parametrisiert werden.

Komponententests

Komponententests können auch einfach eingebunden werden. Dabei ist natürlich darauf zu achten, dass es sich nicht um klassische Unit-Tests handelt, sondern welche, die schon die Web-Schnittstelle (in unserem Fall die REST-API) über Netzwerk testen.

Wie legt man es nun einen Lasttest an?

Das ist erstaunlich einfach. Man wählt einfach im Test-Menü den "Neuer Test …"-Punkt aus und wählt dann den Lasttest:

add_new_load_test.png

Nach der Auswahl des Auslastungstests, Angabe eines griffigen Namens und des richtigen Testprojekts kommt man auf die nächste Konfigurationsseite, auf der der Lasttest konfiguriert wird.

szenario_main.png

Hier können wir direkt zum Punkt "Szenario" gehen und dem ganzen einen aussagekräftigen Titel geben.

szenario_load_pattern.png

Nun geht es langsam zum interessanten Teil des Lasttests über, in dem die Konfiguration auch Einfluss auf die Ergebnisse hat. Der nächste Schritt ist die Einstellung, ob die Applikation mit einer konstanten Anzahl von Benutzern belastet werden soll oder ob es eine kontinuierlichen Anstieg der Nutzer gibt. Der erste Teil ist also eher dafür geeignet, um die Grundlast der Applikation zu testen, während der zweite Teil sich um Spitzenlasten kümmert.

szenario_test_mix.png

Im nächsten Schritt werden die Tests ausgewählt, die im aktuellen Test bzw. Szenario ausgeführt werden sollen. Zudem wird hier noch die Verteilung der Tests angegeben, also wie häufig wird der entsprechende Test innerhalb der Testdauer aufgerufen.

szenario_bandwidth.png

Im Punkt "Netzwerkmischung" können verschiedene Bandbreiten der Testclients eingestellt werden. So kann z.B. eine langsame GSM-Verbidnung emuliert werden, die den Server länger beschäftigt als performante Verbindungen.

szenario_duration.png

Der letzte Punkt erlaubt festzulegen, wie lange der Lasttest ausgeführt wird. Hierzu kann man entweder die Zeit in Minuten bzw. Stunden angeben oder die Anzahl der Testiterationen.

Hiernach ist der Lasttest fertig konfiguriert und kann gestarten werden. Unsere Erfahrungen mit den Lasttest werden nächste Woche folgen.

Literatur

 
blog comments powered by Disqus

Google Anzeigen

Neusten Blogeinträgen

  • CSS: Animationen

    CSS3 bietet von Haus aus Möglichkeiten zur Definition von Animationen über die Property animation. Wie es funktioniert zeigen wir in diesem Artikel.

  • CSS: Alternierende Tabellenzeilen

    Um die Lesbarkeit von Tabellen zu steigern, bietet die CSS die Möglichkeit Tabellenzeilen alternierend zu färben. Wie das funktioniert zeigen, wir ...

  • Unity3D: Konsolenausgabe formatieren

    Die Unitykonsole ist einer der meistgenutzten Feature wenn es bei Unity um Fehlersuche und -behandlung geht. Sie wird dabei schnell voll und verli ...

  • Unity3D: Singleton für langsame Operationen

    Operationen wie Object.FindObjectOfType werden in der Dokumentation von Unity3D Entwickler selbst als sehr langsam beschrieben. Aus dem Grund wird ...

  • Unity3D: Optionale Parameter

    Unity3D (4.3.1) unterstützt keine optionale Parameter, wenn die betroffene Skriptdatei in einem Namespace definiert wird.

Popular Threads

Share it on your network