在JMeter中的线程组之间共享cookie值
我有以下设置:
Thread A - Http Cookie Manager
- Login Page
Thread B
- Http Cookie Manager
- Page to hit
- Another page to hit
我一直在尝试将登录页面中设置的cookie设置为全局属性,然后将其设置为线程B中的Http
Cookie管理器。但是,我一直无法正确使用它。我已经尝试了BeanShell PostProcessors之类的方法,但无法正确设置它。
===添加以澄清===
我无法在线程B中拥有登录页面和cookie管理器的原因是由于所需的行为。目标是登录并获取Cookie,然后一遍又一遍地打出一堆页面。这使我们能够登录一次,然后模拟该用户的大量点击。通过将cookie管理器和登录页面置于同一线程中,用户将登录,一次打一堆页面,然后登录并再次执行。
回答:
我的问题应该更清楚一些,但我们已解决此问题。这是我们的解决方案:
Http Cookie ManagerThread A - 1 Thread - 1 Loop Count
- Login Page
- BeanShell PostProcessor
- props.put("MyCookie","${COOKIE_<INSERT ACTUAL COOKIE NAME>}");
Thread B - 50 Threads - Infinite Loop Count
- BeanShell PreProcessor
- import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.Cookie;
CookieManager manager = sampler.getCookieManager();
Cookie cookie = new Cookie("<INSERT ACTUAL COOKIE NAME>",props.get("MyCookie"),"<INSERT DOMAIN NAME>","<INSERT COOKIE PATH>",false,0);
manager.add(cookie);
- Page to hit
- Another page to hit, repeat as needed
然后需要对JMeter进行配置更改:
打开jmeter.properties文件,然后转到“ CookieManager.save.cookies = false”行,并将其设置为true。
这将允许第一个线程中的登录cookie在第二个线程中使用。
以上是 在JMeter中的线程组之间共享cookie值 的全部内容, 来源链接: utcz.com/qa/415134.html