Frage

Ich versuche, einen Web-Service zu laden.

Ich habe eine einfache Methode, die 2 Parameter benötigt, die an den Webdienst gesendet werden und die Antwort zurückgibt, und ich habe einen Einheitstest von dieser Methode erstellt.

weil ich will brauche , um verschiedene andere Eingänge zu testen, um den Dienst effektiv zu testen, ich setze einen CSV mit ~ 1000 Zeilen als DataSource für den Gerätest-Test ein.

Ich kann diesen Einheitstest ausführen, und es dreht sich durch alle Zeilen, um den Webdienst mit unterschiedlichen Werten nacheinander aufzurufen.

Jedoch , das ist nicht das, was ich brauche. Ich muss jede Zeile benötigen, um einem anderen Benutzer in einem anderen Thread zu entsprechen, mithilfe der Ladeprüfkonfiguration, um Think-Times aufzunehmen, Benutzer mit Schrittlast, Testmix-Konfiguration usw. aufzunehmen.

Ich kann dies erreichen, indem ich meine Datenquelle aus dem Gerätestest und den Hardcodierungswerten entfernen kann. Dies ist jedoch ein grundsätzlich fehlerhafter Test: in der Reihenfolge Wirklich den Web-Service testen, ich brauche jeden user , um verschiedene Werte zu senden und verschiedene Ergebnisse zu erhalten.

...

Wie kann ich also eine Datenquelle an einen Lasttest anhaken und den Lasttest jeder Benutzerinstanz eines Geräts mit unterschiedlichen Werten starten?

War es hilfreich?

Lösung

Ich habe mit dieser Antwort als Guide beendet: https://stackoverflow.com/a/7813465/237723

Anstatt einen Einheitstest aus der Konsolen-App-Methode zu erstellen, und Lasttest diesen -In-Test, habe ich ein einfaches ASP.NET-Webformular erstellt, das die Eingänge angenommen und den Web-Service angerufen hat. .

Ich habe einen Web-Performance-Test mit diesem neuen Formular aufgenommen und einen Lasttest erstellt, um diese WPTEST auszuführen.


    .
  1. Nach dem Aufnehmen des Tests fügte ich den CSV als DataSource an diesen Test hinzu.

  2. Es gab 2 'Anfragen' aufgezeichnet: den ersten GET & ARBENT-POST. Stellen Sie sicher, dass Sie beide verlassen! Ich habe die Favicon.ico-Anfrage entfernt, weil es nicht existierte. (Diese Vorsichtsmaßnahmen können vermeidbar sein)

  3. Durch Erweiterung der Nachwuchsweise habe ich die Eigenschaften der Textfeldparameter geändert, die meinen 2 Web-Service-Eingängen entsprechen, um ihre Werte aus der entsprechenden Spalte in der CSV zu erhalten.

  4. Ich habe die DataSource-Zugriffsmethode geändert, um "Cursor nicht automatisch verschieben" (Sie müssen die DataSource auf der Tabelle erweitern und seine Eigenschaften über den rechten Maustellen / f4 bearbeiten.)

  5. Ich erstellte dann den WebTestplugin (von der verknüpften Antwort), der den Cursor manuell entsprechend der verwendeten Benutzer (ein int) bewegt. Dadurch entspricht der Benutzerinstanz, die der Lasttest gemäß dem STEP-Plan spinnt. Nachdem Sie diese Klasse erstellt haben, erstellen Sie das Projekt und fügen Sie sie dann Ihrem Web-Performance-Test hinzu.


  6. generasacodicetagpre.

Andere Tipps

Um Ihre Frage zu beantworten, bin ich mir ziemlich sicher, dass dies nicht aus der Box von MSTEST und Nunit ausgeführt werden kann ( Dieser Ansatz haftet nicht in diesem Szenario).


aber, imho, einfach nicht dorthin ... Von meiner Erfahrung, simulieren von ~ 1000-Benutzern aus einem einzigen Maschine, erzeugt böse Ergebnisse, da der Test auf alle Arten von Client stoßen wird Grenzwerte - Thread-Pool-Probleme, ausgehende und eingehende Verkehrsprobleme usw. Ich sage nicht, dass dies nicht überwunden werden kann, aber es ist verdreht, um einen anderen Ansatz zu berücksichtigen.

Ich empfehle eigentlich nicht, Lasttest-Tools zu verwenden (es gibt viele davon dort draußen) in diesem Fall, da es einfach genug ist, ein kleines Werkzeugwerkzeug zu schreiben und die Konfigurationsprobleme zu überspringen und Kurven von einem 3. Party.

was ich empfehle, schreibt ein eigenes Werkzeug und läuft sie von separaten Maschinen. Es muss nicht von einem Testrahmen ausgeführt werden (ich kann es nicht dazu bringen, es einen Einheitstest anzurufen, da es nicht ist), eine Konsolen-App leistet den Trick. Hier ist ein bisheriger Code, um Sie zu beginnen:

generasacodicetagpre.

Das Bild zeigt an, wo er die Modifikation vornehmen soll.

 Geben Sie hier eingeben Beschreibung hier eingeben

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