首页 > 解决方案 > 删除 jmeter 中的 cookie

问题描述

有没有办法重置(删除当前的 cookie 并允许 JMeter 生成新的)cookie?我正在使用下面的代码来清除我的要求的 cookie。现在,这段代码正在清除整个 cookie。但是当我的脚本进入下一个循环(我在循环控制器中控制迭代)时,它不会生成新的 cookie。可能这个 clear() 方法会删除整个 cookie 管理器本身。你能建议吗?

JSSR223 Sampler
    import org.apache.jmeter.protocol.http.control.CookieManager;
    CookieManager manager = sampler.getCookieManager();
    manager.clear()

要在下一个循环中重新生成 cookie,我想要这样的东西?

import org.apache.jmeter.protocol.http.control.CookieManager;
CookieManager manager = new CookieManager();
sampler.setCookieManager(manager);

标签: jmeterjmeter-pluginsjmeter-5.0jmeter-4.0jmeter-3.2

解决方案


如果不知道您的 cookie 来自哪里,我们就无法提出任何建议。最简单的选择是从循环控制器切换到线程组,它有:

  1. 可以设置所需的循环数

  2. 可以选择是否在新迭代中保留 cookie/缓存

    在此处输入图像描述

Cookie 来自Set-Cookie响应标头,如果 cookie 一切正常(域/路径与当前匹配,未过期等),它将被添加到 Cookie 管理器中。

您可以启用调试日志记录并查看 cookie 的来源和去向,可以通过将下一行添加到log4j2.xml文件来完成(位于 JMeter 安装的“bin”文件夹中)

<Logger name="org.apache.jmeter.protocol.http.control" level="debug" />

更多信息:HTTP Cookie 管理器高级使用 - 指南

如果出现完全故障(我怀疑 HTTP Cookie 管理器已经可靠工作多年),您始终可以从上述 Set-Cookie 标头中提取 cookie,并使用 HTTP Cookie 管理器或HTTP 标头管理器手动添加它们


推荐阅读