在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 Manager

Thread 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

回到顶部