2016-06-08 294 views
1

我使用jmeter正則表達式提取位於子示例請求中的URL。該URL被轉義,例如:具有%3D%3F。爲了避免這些,我使用了beanshell預處理器並替換了所有這些特殊字符。但是當我使用在HTTP請求該變量(url)其得到解析用方括號豆殼預處理器的jmeter http請求,beanshell預處理器輸出顯示在方括號中

代碼剪斷:

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); 

在日誌文件中打印時的URL被適當地顯示:

xyz?ID=Login-ID&goto=http://uri/?ReqID=abcdefghijklmnop 

當我嘗試在HTTP請求採樣器中使用此URL變量時,解析它如下。

https://[xyz?ID=Login-ID&goto=http://uri/?ReqID=abcdefghijklmnop] 

jmeter test plan -> 
thread -> 
http request 
    -> regex 
http request 
    -> bean shell preprocessor 

可以請你幫我解決這個問題

+0

也看到這個問題,當我們使用內置函數 「$ {__ urldecode($ {} escapedUri)}」。 – karthik

回答

1

我的期望是,你正在使用,在「服務器名稱或IP」字段${URL}變量時,它需要去「路徑」

URL in PATH

此外,我很確定可以從正則表達式提取器獲得更多「乾淨」的URL。檢查下列材料:

+0

感謝您的幫助。主要問題是我們需要拆分完整的URL。所以一旦我們分成服務器名稱和路徑,只有它的工作。 – karthik

相關問題