簡體   English   中英

在JSR223 Sampler Jmeter中添加前一個采樣器的Cookie

[英]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插件管理器安裝並行控制器

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM