0

Ich bin in der Lage einen Wert aus einem bestimmten Ausdruck zu extrahieren, indem die linken und rechte Grenze in WebLOAD, aber ich bin nicht in der Lage, einen bestimmten Wert (zB index) aus dem folgenden Ausdruck unter Verwendung von regulären Ausdrücken Extraktor zu extrahieren:Verwendung von Regular Expression Extractor beim Korrelieren mit Javascript in Webload PT Tool?

index=2&Roll_ID=95372&NAME=ANDY&LastName=MURRAY&birthday 

Wenn wir erhielten folgende 3 Antwort auf einer Seite:

index = 2 & Roll_ID = 9572 & NAME = ANDY & Name = MURRAY & einen mp & index = 1 & Roll_ID = 7875 & NAME = TOM & Name = SHAW & amp & Index = 7 & Roll_ID = 8343 & NAME = EMA & Name VZ = WINSTON & a mp & Geburtstag

Also, was muss unser regulärer Ausdruck sein, um den Indexwert (7) von der letzten Antwort abzufangen, da er ein zusätzliches Tag hat Geburtstag Wie ich glaube, müssen wir in diesem Fall die regulären Ausdrücke für Rollen-ID, Name und Nachname übergeben wissen, welcher Geburtstag enthält .... obwohl wir den Wert von Index extrahieren.

Wie in Loadrunner schreiben wir den regulären Ausdruck, den Index wie folgt zu erfassen:

index=(.*?)&Roll_ID=.*?&NAME=.*?&LastName=.*?&Birthday 

In WebLOAD wie können wir diesen Wert schreiben extrahieren?

Gibt es in Webload eine integrierte Funktion zur Verwendung des regulären Ausdrucksextraktors?

Oder wie können wir diesen Wert mit JavaScript-Code extrahieren?

+0

sorry, aber weder LoadUIWeb noch WebLoad haben nichts mit JMeter korrigieren die Tags –

Antwort

1

Hier ist eine schnelle JavaScript-Beispiel:

var str = "index=2&Roll_ID=95372&NAME=ANDY&LastName=MURRAY&" 
var match_result = str.match(/index=([^&]*?)/); 
var index_val = match_result[1]; 

In diesem Beispiel gehe ich davon aus, dass dies eine Standard-URI Query-String sein wird. Also, in der match() Regex ich bin auf der Suche nach index= explizit und dann greifen den Wert (alles nicht ein "&" Zeichen, die *? stoppt beim ersten Auftreten von "&" Übereinstimmungen).

Für HTML-codierte Abfragezeichenfolgen sollten Sie einen Lookahead für "&" durchführen, um das Ende Ihrer Wertübereinstimmung zu bestimmen.

+0

Dank Karl bitte, aber wenn wir die folgenden 3 Antwort auf einer Seite erhalten: index = 2 & Roll_ID = 9572 & NAME = ANDY & Name VZ = MURRAY & amp & Index = 1 & Roll_ID = 7875 & NAME = TOM & Name = SHAW & amp & Index = 7 & Roll_ID = 8343 & NAME = EMA & Name VZ = WINSTON & amp & Geburtstag Also, was unsere regulären Ausdruck, den Index zu fangen sein müssen Wert (7) von der letzten Antwort, da es ein zusätzliches Tag hat ** Geburtstag ** Wie ich in diesem Fall glaube, müssen wir die regulären Ausdrücke für Roll ID, Name und Nachname übergeben, da wir nicht wissen, welche enthält Geburtstag .... obwohl wir den Wert von Index extrahieren. –

+0

Ah, ich verstehe. Nun, die Regex, die ich oben geschrieben habe, wird immer noch "index" ohne Änderung aufnehmen. Wenn Sie jedoch Werte erfassen müssen, die '&' enthalten und alle Schlüsselwert-Trennzeichen immer als '&' codiert werden, dann sollten Sie eine Lookahead-Assertion für '&' anstatt eines Zeichens verwenden Klasse '[^ &]'. Ihre Regex würde aussehen: '/KeyName=(.*?(?= & | $)) /' –

+0

Danke ... habe es ...... Aber der folgende Code hat auch den Job für mich .. var str = „Index = 2 & Roll_ID = 9572 & NAME = ANDY & Name VZ = MURRAY & a mp & index = 1 & Roll_ID = 7875 & NAME = TOM & Name VZ = Shaw & amp & index = 7 & Roll_ID = 8343 & NAME = EMA & Name VZ = WINSTON & a mp & Birthday "; var re = /index=(.*?) & Roll_ID =. *? & NAME =. *? & Nachname =. *? & Geburtstag/g; var match_result = re.exec (str); var index_val = match_result [1]; InfoMessage (index_val); Ausgabe: 7 –