2009-06-30 17 views
5

Ich mache eine Art von Integration/Stresstest an einem sehr großen Produkt (denke an die Größe des Betriebssystems) und kürzlich haben mein Team und ich darüber diskutiert, wie wir unsere Test-Workloads besser organisieren können. Bis jetzt haben wir uns damit zufrieden gegeben, alle unsere (benutzerdefinierten) Workload-Anwendungen in einer Reihe von Batch-Jobs zu haben, die jeweils einen einzigen Stresstest-Lauf darstellen. Jetzt, wo der durchschnittliche Testlauf mehr als 100 Workloads auf 13 Systemen umfasst, denken wir, dass es an der Zeit ist, etwas fortgeschritteneres zu entwickeln.Entwerfen eines Stresstest-Frameworks

Ich habe viel über Unit-Test-Frameworks gesehen, aber sehr wenig für Tests auf Stresstypen auf höherer Ebene. Kennt jemand eine übliche (oder ungewöhnliche) Art und Weise, dass das Problem der Verwaltung einer großen Anzahl von Arbeitslasten gelöst ist?

Momentan möchten wir eine Datenbank mit jeder einzelnen Arbeitslast erstellen und ein Front-End bereitstellen, um sie zu Testpaketen zu kombinieren, abhängig davon, welche Art von Stress wir an einem bestimmten Tag benötigen, aber nicht haben Beispiele dafür, wie Sie am besten fortgeschrittene Aufgaben erledigen können, wie z. B. das Ranking der Belastung, die jede einzelne Arbeitslast auf ein System ausübt.

Was machen meine Stresstester bei großen Produkten? Für uns werden ein paar handgeschriebene Skripte einfach nicht mehr ausreichen.

+0

Ich kann Ihnen nicht wirklich helfen, aber hier sind zwei Links zu verfügbaren Tools zur Auswertung. http://www.opensourcedesting.org/performance.php http://www.testingfaqs.org/t-load.html – jitter

Antwort

1

Meine eigene Erfahrung war ursprünglich auf IIS-Plattform mit WCAT und zuletzt mit JMeter und Selenium.

Mit WCAT und JMeter können Sie eine Website als Route durchlaufen, Formulare ausfüllen usw. und den Vorgang als Skript aufzeichnen. Das Skript kann dann einzeln wiedergegeben oder mehrere Clients und mehrere Threads simuliert werden. Randomisierung der Wiedergabe, um klumpige und unvorhersehbare Verwendung usw. zu simulieren.

Die Skripte können bearbeitet werden oder können von Hand geschrieben werden, sobald Sie wissen, wohin Sie gehen. Mit WCAT können Sie auch die Log-Dateien wiedergeben und die reale Nutzung simulieren.

Beide der oben genannten sind auf einem PC oder Server installiert.

Selenium ist ein FireFox-Add-In, funktioniert aber in ähnlicher Weise, indem es Scripts aufzeichnet und wiedergibt und Skalierungen ermöglicht.

Etwas schwieriger ist es, die Szenarien zu entwickeln, für die Sie testen, und dann die Tests so zu entwerfen, dass sie zu ihnen passen. Auch die Interaktion mit der Datenbank und anderen externen Ressourcen muss berücksichtigt werden. Es ist wichtig, viel Zeit mit dem Durchsuchen von Protokolldateien zu verbringen. Daher ist eine gute grafische Ausgabe unerlässlich.

0

Die schwierigste Sache für mich war, Leistungsmetriken von Servern unter Last zu sammeln und zu organisieren. Performance Monitor war mein Hauptwerkzeug. Als die Visual Studio Tester-Version aufkam, war ich erstaunt, wie einfach es war, mit Leistungsindikatoren zu arbeiten. Sie haben eine Liste mit Zählern für einen Webserver, einen SQL-Server, eine ASP.NET-Anwendung usw. gepackt. Ich habe von einer Reihe von Leistungsindikatoren erfahren, von denen ich nicht einmal wusste, dass sie existieren. Zusätzlich können Sie Ihre eigenen Zähler auch sammeln. Sie können Messwerte nach jedem Lauf speichern. Sie können sich auch mit Produktionsservern verbinden und sehen, wie sie sich heute fühlen. Dann sehe ich all diese Grafiken in Echtzeit und fühle mich ermächtigt! :) Wenn Sie mehr Last benötigen, können Sie VS Load Agents bekommen und lastgenerierende Rigs erstellen (oder sollte ich es Botnet nennen). Im Vergleich zu Produkten auf dem Markt ist es relativ günstig. Die MS-Lizenz gilt pro Prozessor, aber nicht pro gleichzeitige Anfrage. Das bedeutet, dass Sie so viel Ladung produzieren können, wie Ihre Hardware verarbeiten kann. Im Durchschnitt konnte ich ungefähr 3.000 konkurrierende Webanfragen auf Dual-Core, 2 GB Speicher-Computer bekommen. Zusätzlich können Sie Leistungstests in Ihre Builds integrieren.

Natürlich geht es für Windows. Neben dem Preis von ca. $ 6K für das Tool könnte ein bisschen hoch sein, plus die gleiche Menge an Geld pro zusätzliche Ladung Agent.

Verwandte Themen