2012-08-27 3 views
6

Wie kann ich ein Feld/Wert übergibt, dass wird Teil der Antwort der aktuellen Anforderung als Parameter für die nächste Anfrage empfangen werden?Web-Test Gebrauchswerte als Reaktion als Parameter für die nächste Anforderung

Ich kann nur statische Form POST-Parameter festlegen. Gibt es eine Möglichkeit, dies in der verfügbaren Benutzeroberfläche zum Konfigurieren des Webtests zu tun?

enter image description here

Ich habe um gesucht, aber diese scheinen möglich mit jMeter und anderen Web-Test-Frameworks. Und diese zu sehen, führt mich dazu, aufzugeben (vorerst) und in der Zwischenzeit den Coded Web Test-Ansatz zu erkunden.

Alle Vorschläge/Hinweise geschätzt.

Antwort

4

Ich war in der Lage, dies nach ziemlich viel herum zu tun. Stellt sich heraus, es ist ziemlich einfach (d. H. Mit Coded Test).

. 
. 
. 
var request1 = new WebTestRequest("http://localhost/Home/Index"); 
var sessionId = ""; 
request1.ExtractValues += (s, e) => { 
sessionId = 
    e.Response.HtmlDocument.HtmlTags.SingleOrDefault(tag => 
    tag.Name == "somename" 
    && tag.Attributes.Any(a => a.Name == "attrName" 
    && a.Value == "attrValue"));  
}; 

yield return request1; 

Dann

var request2 = new WebTestRequest("http://localhost/SomeController/Index/"); 
var request2Body = new FormPostHttpBody(); 
request2Body.FormPostParameters.Add("sessionId", sessionId); 
request2.Body = request2Body; 

yield return request2; 

Wenn jemand eines besseren Ansatz kennt bitte eine Antwort schreiben.

1

Ich weiß, dass dies eine alte Frage zu Visual Studio 2012 ist, aber vielleicht hilft dies jemandem, der versucht, dies für Visual Studio 2015 zu erreichen. Es gibt wahrscheinlich viele Möglichkeiten, dies zu erreichen; hier ist, wie ich es behandelt haben:

  1. Für die Login Request, Setup einer Extraktionsregel: direkt am und wählen Request klicken Add Extraction Rule.... Auf diese Weise können Sie Daten aus der Antwort speichern, um sie in späteren Anfragen zu verwenden. Es gibt mehrere Möglichkeiten, die Daten zu extrahieren, z. B. aus einem POST-Feld. Die Daten werden in einer benannten Variablen, der Context Parameter Name gespeichert. Nehmen wir an, Sie haben dies auf sessionid eingestellt.
  2. Ich habe alle zusätzlichen URLs der ursprünglichen Anfrage mit Add Dependent Request hinzugefügt. Sie können die Kontextvariable überall hinzufügen, indem Sie sie mit doppelten geschweiften Klammern umgeben: {{sessionid}}.
Verwandte Themen