2017-02-01 3 views
1

Ich verwende Visual Studio 2015 Load Test und einen Webleistungstest, der eine Datenquelle verbunden ist. Die Datenquelle enthält Benutzeranmeldeinformationen für 250 Benutzer.Visual Studio Load Test - Verwenden der Datenquelle mit mehreren Agenten

Das Ausführen in sequentieller Reihenfolge auf einem einzelnen Agenten funktioniert einwandfrei. Ich versuche jedoch, 10 Testagenten hinzuzufügen, um die Last zu verteilen. Standardmäßig kopiert der Auslastungstest die Datenquelle zu jedem Agenten und führt den Test aus. Was passiert, ist, dass alle 10 Agenten den Test mit dem Benutzer der Zeile 1 aus der Datenquelle starten. Ich hoffe, dass es weg ist, um den Lasttest so einzurichten, dass er sequentiell über alle Agenten läuft (zB: Agent 1 benutzt Zeile 1, Agent 2 benutzt Zeile 2, Agent 3 benutzt Zeile 3 usw.)

Ich vermute Es gibt keine Möglichkeit, dies einzurichten, aber ich habe mich gefragt, ob jemand in das Problem geraten ist und Workarounds anbieten musste. Ich habe diese Informationen finden über http://vsptqrg.codeplex.com

Mehrere Maschinen als rig läuft

Sequential - Dies funktioniert das gleiche, als wenn Sie auf einer Maschine sind. Jeder Agent erhält eine vollständige Kopie der Daten und jeder beginnt mit Zeile 1 in der Datenquelle. Dann durchläuft jeder Agent jede Zeile in der Datenquelle und führt eine Schleife durch, bis der Auslastungstest abgeschlossen ist.

Random - Dies funktioniert auch genauso, als wenn Sie den Test auf einem Computer ausführen. Jeder Agent erhält eine vollständige Kopie der Datenquelle und wählt nach dem Zufallsprinzip Zeilen aus.

Eindeutig - Dies funktioniert ein wenig anders. Jede Zeile in der Datenquelle wird einmal verwendet. Wenn Sie also 3 Agenten haben, werden die Daten auf die 3 Agenten verteilt und keine Zeile wird mehr als einmal verwendet. Wie bei einem Computer wird der Webtest nach der Verwendung jeder Zeile nicht mehr ausgeführt.

Antwort

0

Das nächste, was Sie erreichen können, ist die unique Einstellung zu verwenden. Jede Datenquellenzeile wird jedoch nur einmal verwendet. Dann wird der Test beendet. Bei einer Datenquelle mit 250 Zeilen werden nur 250 Testausführungen durchgeführt. Ich kenne die genaue Verteilung von Datenquellenzeilen an Agenten nicht, wenn unique angegeben ist.

Wenn mehr als eine Ausführung pro Datenquellenzeile gewünscht ist, besteht eine andere Möglichkeit darin, pro Agent eine Datenquellenspalte zu haben. Verwenden Sie die agent_id, um die Spalte auszuwählen. Verwenden Sie den Datenquellenzugriff sequential. Eine Variante besteht darin, nur einen Datensatz in der Datenquelle zu haben, aber die agent_id an einige der Werte in den Datenquellen anzuhängen. This answer hat einige Variationen über diese Ideen und etwas Code.


andere Möglichkeit ist die MoveDataTableCursor Methode zu verwenden, um eine bestimmte Zeile für jede Testdurchführung einzustellen. Dies könnte in einer PreWebTest Methode einer WebTestPlugin aufgerufen werden. Der Code würde die Kontextparameter $AgentId und $WebTestIteration verwenden. Der Ruf basiert der folgenden würde:

MoveDataTableCursor(..., ..., $AgentId * NumberOfAgents + $WebTestIteration); 

Hinweise:

  • Die Werte von $AgentId und $WebTestIteration aus dem Kontext sind Strings, müssten sie in Zahlen umgewandelt werden, um die mehrfach zu tun und hinzuzufügen.
  • müsste auch überprüft werden, ob die beiden Werte nullbasiert oder einbasig sind.
  • Die documentation für MoveDataTableCursor ist nicht sehr informativ
+0

Dank AdrianHHH, ich denke, die zweite Option wahrscheinlich für mich funktionieren würde. Ich werde experimentieren und Bericht erstatten. – bigspank

+0

Nun, kommen Sie, um herauszufinden, dass jeder Agent seine eigene $ WebTestIteration verwendet :(Die "zufällige" Reihenfolge zu verwenden ist möglicherweise die beste Option für mich. – bigspank

0

Sie können das Daten-Set/CSV Split und zu jedem Agenten, das heißt in Ihrem Fall "25 Datensatz"/Agenten und führen Sie den Test verteilen.

Jeder Agent kann seinen eigenen Datensatz/CSV verwenden.

CSV Split: http://monchito.com/blog/autosplit-csv

+0

Können Sie bitte erklären, wie Sie innerhalb eines Visual Studio-Auslastungstests jedem Agenten geben würden die gleiche ".webtest" -Datei, aber verschiedene CSVs. – AdrianHHH

+0

Ich nehme an, in diesem Beispiel würde ich mit 10 Webtests enden, denen jeweils eine eigene CSV-Datei zugewiesen wurde. Kann der VS-Lasttest so konfiguriert werden, dass nur ein Agent getestet wird ? – bigspank

+1

@bigspank Ja, in einem Szenario für jeden Agenten die Eigenschaft "Agents to use" des Szenarios nach Bedarf festlegen. – AdrianHHH

Verwandte Themen