2015-01-07 3 views
6

Ich plane, vorhandene Specflow-Szenarien (derzeit für Annahme und automatisierten Test) auch für VS-Auslastungstest zu verwenden, um Doppelarbeit und zusätzliche Arbeit zu vermeiden. Specflow funktioniert gut für diese Tests, da sie einmal ausgeführt werden, aber im Kontext von Load-Test, wenn es jedes Specflow-Szenario mehr als einmal ausführt und parallel Probleme und Fehler verursacht und mit einer höheren Anzahl von Benutzern mehrKann Specflow-Szenario mit Visual Studio 2013 Auslastungstest verwenden

Diese Fehler kann einen Teil des Tests nicht bestehen, der am Ende ein falsches Testergebnis erzeugt, beispielsweise wenn ein Specflow-Szenario als Testszenario mit einem Lasttest von 20 Benutzern und einem Zeitraum von 2 Minuten 50 Fehler ähnlich wie unten verursacht. Das Testergebnis zeigt also an, dass ein bestimmtes Szenario 200 Mal ausgeführt wurde, wobei 150 bestanden und 50 fehlgeschlagene Tests und Fehler durch Specflow-Fehler verursacht wurden. Im Zusammenhang mit dem Belastungstest ist dieses Ergebnis völlig falsch und falsch, da der Test selbst Probleme hat.

Fehlermeldung:

ScenarioTearDown threw exception. System.NullReferenceException: System.NullReferenceException: Object reference not set to an instance of an object. 
TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.HandleBlockSwitch(ScenarioBlock block) 
TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance) TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.Step(StepDefinitionKeyword stepDefinitionKeyword, String keyword, String text, String multilineTextArg, Table tableArg) 
TechTalk.SpecFlow.TestRunner.Then(String text, String multilineTextArg, Table tableArg, String keyword) 

Nach einigen Untersuchungen es Specflow scheint nicht erzeugen und gleiches Szenario parallel laufen, die diesen Konflikt verursacht und nicht einigen Test, aber ich habe auch einige Zweifel darüber, und suchen, um zu sehen, ob es Irgendeine Problemumgehung darüber oder wenn ich etwas vermisse und mich frage, ob Specflow-Szenarien überhaupt für den Belastungstest verwendet werden können?

+2

Der Titel Ihrer Frage macht nicht viel Sinn. Was meinst du mit "ohne Klassierung?" Können Sie auch die Fehlermeldung und den vollständigen Stack-Trace veröffentlichen? Können Sie mehr beschreiben, wie Ihre SpecFlow-Tests ausgeführt werden? –

+0

@GregBurghardt, Entschuldigung für Verwirrung. Ich habe versucht, das Problem einzugrenzen. auch habe ich alle informationen bezüglich fehler und stack gesetzt. Leider gibt es mir keine weiteren Informationen. Prost – arfo

+0

Ich sehe, der Titel wurde korrigiert. Ich denke ich verstehe, was du jetzt fragst. Vielen Dank. –

Antwort

4

Ich verstehe, dass Sie Ihre Tests für Lasttests (Do not Repeat Yourself) wiederverwenden möchten, jedoch hat ein Belastungstest einen ganz anderen Zweck als Akzeptanztests. Lasttests sollten realistische alltägliche Nutzungsszenarien berücksichtigen und immer mehr Nutzer ansprechen. Aus diesem Grund fordere ich Sie auf, Ihre Belastungstests getrennt von Ihren Akzeptanz- und automatisierten Tests zu halten. Sie testen wirklich verschiedene Dinge.

Belastungstests sollten die Leistung der Anwendung bei hoher Auslastung für jeden Tag testen, und die Akzeptanz und automatisierte Tests stellen sicher, dass die Anwendung gemäß Spezifikation funktioniert.

Belastungstest ist der Prozess Bedarf an einem System oder ein Gerät des Setzens und ihre Reaktion gemessen wird. Belastungstests werden durchgeführt, um das Systemverhalten sowohl unter normalen als auch unter erwarteten Spitzenlastbedingungen zu bestimmen. Es hilft, die maximale Betriebskapazität einer Anwendung sowie etwaige Engpässe zu identifizieren und festzustellen, welches Element eine Verschlechterung verursacht.

Quelle: Wikipedia: Load testing

Eine Abnahmeprüfung ist eine formale Beschreibung des Verhaltens eines Softwareprodukts, in der Regel als Beispiel ausgedrückt oder ein Nutzungsszenario. ... Für viele agile Teams sind Akzeptanztests die Hauptform der funktionalen Spezifikation; manchmal der einzige formale Ausdruck von Geschäftsanforderungen. In anderen Fällen ergänzen sie lediglich ein Spezifikationsdokument, das sich aus einer weniger spezifischen Agile-Technik oder einem Formalismus ergibt, wie etwa Anwendungsfälle oder mehr narrative Dokumente.

Quelle: Agile Aliance: Acceptance Testing

Sie sind verschiedene Dinge, so dass die Tests und die Testrahmen, sollten auch unterschiedlich sein. Sie wiederholen sich nicht wirklich, indem Sie eine separate Suite für Belastungstests aufbewahren.

Aus dem technischen Grund, warum dies scheitert?Wenn SpecFlow mit dem normalen Visual Studio-Test-Runner ausgeführt wurde, wurden keine Tests parallel ausgeführt. Es gibt parallele Testläufer, aber die meisten sind bezahlte Software.

+0

Ich denke, er fragt dies, weil ein VS-Belastungstest besteht aus .Webtest-Typen, die im Grunde eine HTTP-Anfrage fließen (ähnlich wie SOAPUI), die als funktionale/Akzeptanztests verwendet werden kann dann verwendet Lasttests aufzubauen direkt von der funktionalen Suite. – DawnFreeze

Verwandte Themen