![](/img/trans.png)
[英]Accessing HttpServletRequest and Response from JSR223 sampler within Jmeter
[英]Adding Cookie from previous sampler in JSR223 Sampler Jmeter
我正在嘗試使用JSR223 Sampler(Jmeter)從JSR223 Sampler執行ajax調用,就像在並行請求中一樣 。
我能夠從不需要登錄身份驗證cookie的ajax調用中獲得響應。 但是,沒有得到需要通過登錄生成的auth cookie的ajax調用的響應。
我在JSR223采樣器之前添加了登錄http調用,但cookie未在請求中傳遞。 嘗試添加代碼:
HTTPSamplerProxy previousSampler = ctx.getPreviousSampler();
CookieManager cookieManager = previousSampler.getCookieManager();
HTTPSampleResult previousResult = (HTTPSampleResult)ctx.getPreviousResult();
log.info("Cookie Count is : "+ cookieManager.getCookieCount());
它拋出異常:
2017-11-28 10:44:51,195錯誤oajpjsJSR223Sampler:JSR223腳本中的問題JSR223 Sampler,消息:javax.script.ScriptException:java.lang.NullPointerException:無法在null對象上調用方法getCookieCount()javax.script.ScriptException:java .lang.NullPointerException:無法在null對象上調用方法getCookieCount()
您收到的錯誤表明您沒有添加/啟用HTTP Cookie管理器 。
作為Groovy腳本的替代方法,您可以使用“普通”JMeter HTTP請求采樣器,它自然支持cookie,緩存,標頭,授權等。
為了能夠以類似AJAX的並行方式執行它們,將采樣器置於並行控制器下 。 您可以使用JMeter插件管理器安裝並行控制器
檢查您是否在測試pkan中添加了CookieManager。
也可以使用JSR223預處理器代替JsR223采樣器。
如前所述,您有HTTP cookie管理器嗎? 這是將cookie添加到cookie管理器的代碼
import org.apache.jmeter.protocol.http.control.Cookie;
try {
String params = vars.get("getCookieValue");
ctx.getCurrentSampler().getCookieManager().add(new Cookie("COOKIENAME", params, "domain", "/url", true, Long.MAX_VALUE));
}
catch (Throwable ex) {
log.error("Error in Beanshell", ex);
throw ex;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.