Frage

ich zur Zeit mache Leistung und Lasttests eines komplexen Systems viel Tier die Wirkung verschiedener Änderungen zu untersuchen, aber ich habe Probleme den Überblick über alles zu halten:

  • Es gibt viele Kopien verschiedenen Baugruppen
    • Orignally freigegeben Baugruppen
    • Officially veröffentlichte Hotfixes
    • Baugruppen, die ich enthalten habe gebaut weitere zusätzliche Fixes
    • Baugruppen, die ich bauen, die zusätzliche Diagnoseprotokollierung oder Tracing
  • Es gibt viele Datenbank-Patches , einige der oben genannten Baugruppen sind abhängig von bestimmten Datenbank-Patches angewendet werden
  • Viele verschiedene Protokollebenen existieren , in verschiedenen Ebenen (Application Logging, Anwendungsleistungsstatistik, SQL Server Profilierungs)
  • Es gibt viele verschiedene Szenarien , manchmal ist es sinnvoll, nur 1-Szenario, ein anderes Mal zu testen, ich Kombinationen von verschiedenen Szenarien testen müssen.
  • Last kann auf mehrere Rechner aufgeteilt werden oder nur eine einzige Maschine
  • Die Daten in der Datenbank kann ändern, zum Beispiel einiger Tests könnten mit erzeugten Daten durchgeführt werden, und dann später mit den Daten aus einem Live-System übernommen.
  • Es gibt eine enorme Menge an potentiellen Leistungsdaten nach jedem Test gesammelt wird , zum Beispiel:
    • Viele verschiedene Arten von anwendungsspezifischen Protokollierung
    • SQL Profiler Spuren
    • Ereignisprotokolle
    • DMVs
    • Perfmon Zähler
  • Die Datenbank (en) ist mehrere GB groß so, wo ich Sicherungen hätte verwendet, um einen früheren Zustand zurückzukehren Ich neige dazu, Änderungen zu übernehmen, was auch immer Datenbank vorhanden nach dem letzten Test ist, mich zu verursachen um schnell den Überblick verlieren Dinge.

Ich sammle so viele Informationen wie ich über jeden Test kann ich (das Szenario getestet, die Patches angewandt werden, welche Daten in der Datenbank) zu tun, aber ich finde ich immer noch Tests wegen inkonsistenter Ergebnisse wiederholen zu müssen. Zum Beispiel habe ich gerade einen Test, den ich eine exakte Kopie einen Test ich vor ein paar Monaten lief erachtet werden, jedoch mit aktualisierten Daten in der Datenbank. Ich weiß für eine Tatsache, dass die neuen Daten sollten eine Leistung degregation verursachen, aber die Ergebnisse zeigen das Gegenteil!

Zur gleichen Zeit befinde ich mich sepdning unverhältnismäßig viel Zeit diese all diese Details der Aufnahme.

Eine Sache, die ich in Betracht gezogen wurde mit Hilfe von Skripten die Sammlung von Performance-Daten usw. zu automatisieren ..., aber ich bin nicht sicher, das war so eine gute Idee - es ist nicht nur Zeit damit verbracht Skripte statt Tests zu entwickeln, aber Fehler in meinen Skripten könnte dazu führen, mir den Überblick über die Dinge noch schneller zu verlieren.

Ich bin nach ein paar Ratschläge / Hinweise auf besser, wie die Testumgebung zu verwalten, insbesondere, wie eine Balance zu finden zwischen Sammeln alles und eigentlich immer etwas auf die Gefahr hin getan Prüfung wichtiger etwas fehlt ?

War es hilfreich?

Lösung

Scripting die Sammlung der Prüfparameter + Umgebung ist eine sehr gute Idee zu überprüfen. Wenn Sie über mehrere Tage sind zu testen, und das Scripting dauert einen Tag, es ist gut investierte Zeit. Wenn nach einem Tag sehen Sie es nicht bald beenden, neu zu bewerten und gegebenenfalls in diese Richtung aufhören zu verfolgen.

Aber Sie schulden es sich selbst, es zu versuchen.

Andere Tipps

Ich würde dazu neigen, mit @orip, Skripting zumindest einen Teil Ihrer Arbeitsbelastung zu vereinbaren ist wahrscheinlich, dass Ihnen Zeit sparen. Sie betrachten könnte einen Moment Zeit zu fragen, unter welchen Aufgaben sind die meiste Zeit in Bezug auf Ihre arbeitsaufwendig und wie zugänglich sind sie zur Automatisierung? Skripte sind besonders gut zu sammeln und Zusammenfassung von Daten - viel besser als Menschen, in der Regel. Wenn die Leistungsdaten viel Interpretation von Ihrer Seite erfordert, können Sie Probleme haben.

Ein Vorteil einige dieser Aufgaben zu scripting ist, dass man sie dann an der Seite in überprüfen können die Source / Patches / Filialen und Sie können profitieren Sie von Organisationsstruktur Ihrer Systeme Komplexität finden, anstatt zu kämpfen, es zu jagen, wie Sie jetzt tun .

Wenn Sie mit dem Testen wegkommen nur gegen ein paar Set-Konfigurationen, die das Admin einfach halten. Es kann es auch einfacher macht einen auf jedem von mehreren virtuellen Maschinen zu setzen, die schnell sauber Basislinien geben umgeschichtet werden können.

Wenn Sie wirklich die Komplexität benötigen Sie beschreiben, würde ich empfehlen, eine einfache Datenbank bauen, damit Sie die multivariate Ergebnisse, die Sie haben abzufragen. eine Spalte für jede der wichtigen Faktoren zu haben werden Sie ein erlauben Fragen wie die Abfrage in „was Test Config hatte die niedrigste Varianz der Latenzzeit?“ und „die Testdatenbank erlaubt die Anhebung der meisten Fehler?“. Ich benutze sqlite3 (wahrscheinlich durch den Python-Wrapper oder die Firefox-Plug-in) für diese Art von leichter Sammlung, weil es relativ geringen Wartungsaufwand hält und ermöglicht es Ihnen, zu weit Stören des zu testenden System zu vermeiden, auch wenn Sie ausführen müssen, um auf das gleiche Feld.

die Tests Scripting wird sie schneller ausgeführt werden und ermöglichen Ergebnisse in eine bereits bestellten Art und Weise gesammelt werden, aber es klingt wie Ihr System zu komplex sein kann, dies einfach zu machen zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top