![](/img/trans.png)
[英]How to know iteration value of a loop controller in an if controller in jmeter?
[英]Cookies won't reset on iteration in JMeter 'Loop Controller'?
使用Jmeter 2.12,什么可能導致cookie在JMeter循環控制器期間無法重置? 我已經嘗試了所有我能想到的東西,但每次循環時,之前登錄的其中一個cookie仍然存在。 它似乎並沒有真正清除cookie。
以下是我將循環放在一起的方法:
Thread Group 1
-- Loop Controller (3x)
-- Simple Controller
-- HTTP Header Manager
-- HTTP Cookie Manger (with 'Clear cookies each iteration?' enabled)
-- BeanShell sampler - with code that tries to clear all cookies
-- HTTP /login (gets cookies and auth headers)
-- ... various HTTP Samplers ...
-- HTTP /logout
我嘗試使用此代碼添加Beanshell采樣器(如上所示)但它似乎沒有做任何事情:
import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.HeaderManager;
CookieManager cManager = sampler.getCookieManager();
cManager.clear();
HeaderManager hManager = sampler.getHeaderManager();
hManager.clear();
好的,我發現了問題。 即使'HTTP Cookie Manager'有一個名為'每次迭代清除cookie'的選項,它所說的'迭代'也不包括循環控制器。 它所指的只是'Thread Group'迭代/循環。 這不清楚,我浪費了半天,直到我想出來。 如果復選框說“清除每個線程組迭代的cookie”,則不會令人困惑。 非常失望。
用於清除cookie的Beanshell代碼實際上沒有任何作用,因為cManager
實例未被傳遞回采樣器。 您需要修改代碼,如下所示:
CookieManager cManager = sampler.getCookieManager(); cManager.clear(); sampler.setCookieManager(cManager);
因此, sampler
可能具有已清除cookie的“cManager”實例
有關Apache JMeter中Beanshell腳本的更多信息,請參見如何使用BeanShell:JMeter最喜歡的內置組件指南。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.