如何访问 beanshell 中的 cookie 管理器?
How can I access the cookie manager in beanshell?
我看过很多例子,但 none 似乎可行。
这是我的设置:
我正在使用 foreach 循环遍历我的变量并让 Cookie 管理器使用它们:
我希望 beanshell 在每个循环中清除 cookie 管理器中的 cookie,以便从我的变量中重新添加它们,但我似乎无法访问它。
我尝试了以下方法:
import org.apache.jmeter.protocol.http.control.Cookie;
import org.apache.jmeter.protocol.http.control.CookieManager;
manager = sampler.getCookieManager();
这给了我这个错误:
Attempt to resolve method: getCookieManager() on undefined variable or class name: sampler
我试过这样做:
CookieManager cManager = ctx.getCurrentSampler().getCookieManager();
但这给了我这个错误:
Typed variable declaration : Error in method invocation: Method getCookieManager() not found in class'org.apache.jmeter.protocol.java.sampler.BeanShellSampler'
编辑:
因此,根据建议的解决方案,我尝试了这个:
然后是这个:
但这给了我这个错误:
2017/10/13 12:26:31 ERROR - jmeter.extractor.JSR223PostProcessor: Problem in JSR223 script JSR223 PostProcessor javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method clear() on null object
由于性能原因请勿使用 Beanshell,它将在以后的版本中删除。
- 在第一个 HTTP 请求上添加 JSR223 PreProcessor
- Select Groovy
- 勾选"Cache compiled script if available"
- 添加以下代码:
import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.Cookie;
CookieManager cm = sampler.getCookieManager();
cm.clear();
这是它应该的样子
您需要从 JMeter 上下文中获取 Cookie 管理:
CookieManager cm= ctx.getCurrentSampler().getCookieManager();
目前您正在从 sampler
获取它,这是无关紧要的。
我看过很多例子,但 none 似乎可行。
这是我的设置:
我正在使用 foreach 循环遍历我的变量并让 Cookie 管理器使用它们:
我希望 beanshell 在每个循环中清除 cookie 管理器中的 cookie,以便从我的变量中重新添加它们,但我似乎无法访问它。
我尝试了以下方法:
import org.apache.jmeter.protocol.http.control.Cookie;
import org.apache.jmeter.protocol.http.control.CookieManager;
manager = sampler.getCookieManager();
这给了我这个错误:
Attempt to resolve method: getCookieManager() on undefined variable or class name: sampler
我试过这样做:
CookieManager cManager = ctx.getCurrentSampler().getCookieManager();
但这给了我这个错误:
Typed variable declaration : Error in method invocation: Method getCookieManager() not found in class'org.apache.jmeter.protocol.java.sampler.BeanShellSampler'
编辑: 因此,根据建议的解决方案,我尝试了这个:
然后是这个:
但这给了我这个错误:
2017/10/13 12:26:31 ERROR - jmeter.extractor.JSR223PostProcessor: Problem in JSR223 script JSR223 PostProcessor javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method clear() on null object
由于性能原因请勿使用 Beanshell,它将在以后的版本中删除。
- 在第一个 HTTP 请求上添加 JSR223 PreProcessor
- Select Groovy
- 勾选"Cache compiled script if available"
- 添加以下代码:
import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.Cookie;
CookieManager cm = sampler.getCookieManager();
cm.clear();
这是它应该的样子
您需要从 JMeter 上下文中获取 Cookie 管理:
CookieManager cm= ctx.getCurrentSampler().getCookieManager();
目前您正在从 sampler
获取它,这是无关紧要的。