首页 文章

处理多个cookie并在jmeter的下一个线程中使用

提问于
浏览
0

在我的JMeter测试计划中,我的应用程序生成了两个cookie“XSRF-Token”和“laravel_session” . 在一个线程中,我有登录请求,另一个线程有内部页面 . 我已经在测试计划级别定义了HTTP COOKIES Manager但没有工作 . 然后我尝试使用BeanShell预处理器和后处理器这里是我的代码:Beanshell post processor in login thread:

props.put("MyCookie","${COOKIE_XSRF-TOKEN}");
props.put("MyCookie1","${COOKIE_laravel_session}");

Beanshell pre-processor in another thread:

import org.apache.jmeter.protocol.http.control.CookieManager;

import org.apache.jmeter.protocol.http.control.Cookie;

CookieManager manager = sampler.getCookieManager();

Cookie cookie = new Cookie("XSRF-TOKEN",props.get("MyCookie"),"mydomain","/",true,0);
manager.add(cookie);

Cookie cookie1 = new Cookie("laravel_session",props.get("MyCookie1"),"mydomain",/",true,0);
manager.add(cookie1);

任何想法我如何管理多个cookie并设置它们,以便我的下一个线程可以正常运行?

1 回答

  • 0

    首先,使用Cookie管理器检查是否使用第一个请求设置了cookie . 如果您的登录请求在视图结果树监听器中显示cookie . 如果不是这种情况,那么应用程序可能存在一些问题 . 检查底部的第二个链接 .

    解决方法: - 将以下行添加到bin文件夹下可用的user.properties文件中

    CookieManager.save.cookies=true
    

    重新启动JMeter以选择属性

    现在,您应该能够在需要时将cookie值引用为$ ,例如,将另一个HTTP Cookie Manager添加为第二个请求的子级,并定义XSRF_TOKEN和laravel会话 .

    您不需要使用两个线程组来从一个线程组向其他线程组提供cookie . 在单个线程组中执行此操作,因为您要获取Cookie并将其提供给下一个请求 .

    有关在JMeter测试中处理cookie的更多信息,请参阅下面的JMeter文章 . https://www.blazemeter.com/blog/using-http-cookie-manager-jmeter-not-cookie-jar https://www.blazemeter.com/blog/http-cookie-manager-advanced-usage-a-guide

    希望能帮助到你 .

相关问题