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

处理多个cookie并在jmeter的下一个线程中使用,jmeter,beanshell,Jmeter,Beanshell,在我的JMeter测试计划中,我的应用程序正在生成两个cookie“XSRF令牌”和“laravel_会话”。在一个线程中,我有登录请求,另一个线程有内部页面。我已经在测试计划级别定义了HTTP COOKIES管理器,但它不起作用。 然后,我尝试了BeanShell前置处理器和后置处理器,以下是我的代码: 登录线程中的Beanshell后处理器: props.put("MyCookie","${COOKIE_XSRF-TOKEN}"); props.put("MyCookie1","${COOK

在我的JMeter测试计划中,我的应用程序正在生成两个cookie“XSRF令牌”和“laravel_会话”。在一个线程中,我有登录请求,另一个线程有内部页面。我已经在测试计划级别定义了HTTP COOKIES管理器,但它不起作用。 然后,我尝试了BeanShell前置处理器和后置处理器,以下是我的代码: 登录线程中的Beanshell后处理器:

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并设置它们,以便下一个线程可以正常运行吗?

首先,使用cookie管理器检查cookie是否与第一个请求一起设置。如果您的登录请求在查看结果树侦听器中显示cookie。如果不是这样,那么应用程序可能会出现一些问题。检查底部的第二个连杆

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

CookieManager.save.cookies=true
重新启动JMeter以获取属性

现在,您应该能够在需要时将cookie值引用为${cookie_XSRF-TOKEN},例如,添加另一个HTTP cookie管理器作为第二个请求的子级,并定义XSRF_TOKEN和laravel会话

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

有关在JMeter测试中处理cookie的更多信息,请参阅下面的JMeter文章。


希望有帮助。

我的测试计划层次结构如下:-测试计划-线程组1-登录到应用程序-Beanshell后处理器(用于cookies)-线程组2 Beanshell前处理器(用于cookies)-搜索参数1-搜索参数2-结果摘要表-摘要报告感谢您的建议,但我必须将cookie从一个线程传递到另一个线程。如果我必须在同一个线程中使用它,那么我的脚本在cookies管理器中运行良好。但我有两条线。我如何管理这个场景。提前感谢您现在已经在一个线程中设置了属性中的cookies。现在,使用${uuu P(mycokie)}调用第二个线程中的cookie。这需要传入头管理器。所以,如果所有请求都需要,则在顶部添加头管理器;如果仅针对特定请求,则在特定请求下添加头管理器。添加名称为“XSRF-TOKEN”,值为${{uu P(mycokie)}。我将头管理器设置为顶级,因为它可以通过请求访问,并尝试使用${uu P{mycokie}进行访问正如你所建议的,在header manager中,但仍然不起作用。我正在使用beanshell post和预处理器来管理cookies。但它仍然不适用于我@sunny_teo@Sanjeev..UseCookie manager.save=true以启用Cookie保存。然后,使用${Cookie_XSRF-TOKEN}捕获它们然后使用道具将它们放入属性中,并在下一个线程中使用${{uu P(mycokie)}获取它们。使用调试控制器检查每个步骤中定义的变量中的所有值。还有一件事,您提到的获取属性的语法不正确。它不是${uu P{mycokie},它类似于${uu P(mycokie)}.请检查它是否解决了问题。