Ich extrahiere eine URL in der Sub-Probe-Anfrage, mit dem Jmeter Regex. Die URL ist mit Escape versehen, zB: hat %3D
, %3F
. Um diese zu entfernen, habe ich den Beanshell Preprocessor benutzt und alle diese Sonderzeichen ersetzt. Aber wenn ich diese Variable verwenden (url
) in der HTTP-Anforderung seines mit eckigen Klammern analysiert zu werdenjmeter HTTP-Anfrage, Beanshell-Präprozessor-Ausgabe wird in eckigen Klammern angezeigt
Code Schnipsel von Bohnenschalen Präprozessor:
url = vars.get("escapedUri"); //get escaped url from the regular expression
url = url.replaceAll("%3A", ":"); //replace special characters with :,/,=,?
url = url.replaceAll("%2F", "/");
url = url.replaceAll("%3F", "?");
url = url.replaceAll("%3D", "=");
log.info ("escaped uri chng : " + url);
vars.put("URL", url);
Die URL, wenn sie in Protokolldatei gedruckt richtig angezeigt wird:
xyz?ID=Login-ID&goto=http://uri/?ReqID=abcdefghijklmnop
Wenn ich versuche, diese URL-Variable im HTTP-Request-Sampler zu verwenden, wird es wie folgt analysiert.
https://[xyz?ID=Login-ID&goto=http://uri/?ReqID=abcdefghijklmnop]
jmeter test plan ->
thread ->
http request
-> regex
http request
-> bean shell preprocessor
können Sie mir bitte helfen, dieses Problem zu lösen
auch dieses Problem zu sehen, wenn wir integrierte Funktionen verwenden "$ {__ urldecode ($ {escapedUri})}". – karthik