2016-07-25 10 views
0

Ich versuche Regex zu verwenden, um Antworttext in einem Webtest zu validieren. Mit der ValidationRuleFindText-Klasse haben Sie die Möglichkeit, Regex zu verwenden, um den Antworttext einer Webanforderung zu validieren. Beispiel:Visual Studio 2015: WebTest Validiere Antwort mit Regex

Antworttext: { "Erfolg": true, "Daten": "foo bar"}

ValidationRuleFindText validationRule = new ValidationRuleFindText(); 
validationRule.FindText = @"/(/""success/"":true)/ig"; 
validationRule.IgnoreCase = true; 
validationRule.UseRegularExpression = true; 
validationRule.PassIfTextFound = true; 
foobarRequest.ValidateResponse += new EventHandler<ValidationEventArgs> (validationRule3.Validate); 

Für jemanden Grund erkennen, es ist nicht, dass validationRule.FindText regex ist und es schlägt fehl, weil es buchstäblich kann/(/ "Erfolg /": wahr)/ig in der Antwort nicht finden. Wenn jemand damit vertraut ist, würde jede Hilfe sehr geschätzt werden :)

+0

Sind Sie sicher, dass es die JavaScript-Methode zum Definieren regulärer Ausdrücke verwendet? (das//). Versuchen Sie, die Schrägstriche und die Flaggen (ig) am Ende zu entfernen. – Wazner

+0

Hmm Ich bin mir nicht sicher, ich werde versuchen, die Schrägstriche zu entfernen und lassen Sie wissen, ob es funktioniert. Ich führe gerade einen Loadtest durch. Vielen Dank für Ihren Vorschlag !!! –

Antwort

1

Dies ist wirklich einfach mit Visual Studio zu erarbeiten. Nehmen Sie eine .webtest Datei, die als Sandbox-Datei verwendet werden kann. Fügen Sie eine Validierungsregel für die Suche nach Text mit den richtigen Einstellungen hinzu und führen Sie den Befehl "generate code" aus. Der korrekte Code für die Validierung wird in der generierten Datei .cs angezeigt.

Für die Beispielzeichenfolge in der Frage generiert die Suchzeichenfolge {"success":true, "data":"foo bar"} die folgende Zeile. Die anderen Überprüfungsregelzeilen sind die gleichen wie in der Frage.

validationRule1.FindText = "{\"success\":true, \"data\":\"foo bar\"}"; 

Schließlich gibt es nichts über diese Suchzeichenfolge, die einen regulären Ausdruck benötigt. Eine Validierungsregel für nicht reguläre Ausdrücke würde ausreichen.


Die Linie in der Frage hat validationRule.FindText = @"/(/""success/"":true)/ig"; die in einigen anderen Sprachen verwendet werden, reguläre Ausdrücke Berufung auf die Art und Weise zu sein scheint. Die umschließenden / Zeichen und die nachlaufende ig sollten nicht verwendet werden. Ihre Funktionalität wird auf andere Weise erreicht.

+0

Danke !! Für die Eingabe :) Ich habe Validierung jetzt arbeiten. Ich schätze Ihre Hilfe! –