Frage

Wir entwickeln automatisierte Regressionstests mit VMWare und NUnit. Wir haben Tests in einzelnen Schritte unterteilt und jetzt würde Ich mag jeder Schritt sehen, für die Leistung Regression untersucht werden. Einfach die Tests Timing, wie NUnit der Fall ist, nicht zuverlässig scheint. Ich habe in einem Akzeptanzfaktor von etwa 15% rechne aber unsere Schritte können manchmal mehr als 35% voneinander abweichen. In einem solchen Ressource abhängiger Testumgebung ist es eine konsistente Art und Weise Leistung zu testen? Ist ein "intelligentes" Timing-System meiner einzige Option?

War es hilfreich?

Lösung

Für diese Art von Performance-Tests, gibt es nicht so etwas wie ein System, das Ihnen einen einfachen Pass / Fail-Ergebnis geben wird. Im wirklichen Leben, Ihr System zu ändern ist wahrscheinlich einige Dinge schneller und einige anderen Dinge, langsamer zu machen, so ist es in der Regel nicht eine Wahl zwischen „besser“ und „nicht besser“, ist es eine Wahl zwischen verschiedenen Arten von besser. (Natürlich wollen Sie Fälle zu vermeiden, wo es unbedingt schlechter.)

Was habe ich für diese in der Vergangenheit getan ist, nur Statistiken über die Zeit zu halten. Jedes Mal, wenn Sie Ihre Tests laufen, fällt die Ergebnisse in einer SQL-Datenbank mit der Revisionsnummer und dem Test Timings. Dann können Sie sie grafisch darzustellen wann und wie Sie wollen (im Idealfall in einem kleinen Web-Applet, so dass jeder im Team kann sie überprüfen) und sehen, ob Ihre Leistung tendiert nach oben oder unten, oder wenn der Leistung seit einer bestimmten Revision saugt immer ist.

Das Wichtigste hier ist jedoch, dass es sich um eine sein muss Graph . Auf diese Weise menschliche Auge kann es auch dreht und die Trends finden. Sie könnten die ganze Woche damit verbringen, mit einem KI-Algorithmus zu kommen, die Daten numerisch zu analysieren, aber es würde nie ein menschliche Mustererkennung Fähigkeit schlagen.

Andere Tipps

Sie können die Funktionen zur Verfügung mit einem Werkzeug wie Ameisen Profiler schauen in wie es dieser Methode nicht geben Ausführung / Laufzeiten, aber ich bin nicht sicher, was es in Bezug auf den wiederholten Tests bietet.

Im Hinblick auf Performance-Tests Ich bin seit der Verwendung von vmware oder anderen Virtualisierungsprozessen sehr skeptisch. Die Art, wie wir dies in der Vergangenheit behandelt haben, ist Teil des Build haben die neueste Version auf einer statischen Maschine installieren und die Tests ausführen. Sie sollten außerhalb der Virtualisierung konsistentere Ergebnisse sehen.

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