Cookies ApacheJMeter的Cookie管理器不';t将cookie添加到POST请求

Cookies ApacheJMeter的Cookie管理器不';t将cookie添加到POST请求,cookies,jmeter,Cookies,Jmeter,我建立了一个非常简单的测试计划 登录:POST,返回会话cookie 获取状态:获取,返回用户状态 创建一个资源:POST,为该资源提供JSON主体 所以我的“测试计划”看起来像: 测试计划 螺纹组 HTTP请求默认值 HTTP Cookie管理器 登录(HTTP请求采样器:POST) 获取状态(HTTP请求采样器:Get) 创建资源(HTTP请求采样器:POST) “登录”生成的cookie已正确添加到“获取状态”。 但是“创建资源”没有cookie。我改变了他们的顺序,但没用。

我建立了一个非常简单的测试计划

  • 登录:POST,返回会话cookie
  • 获取状态:获取,返回用户状态
  • 创建一个资源:POST,为该资源提供JSON主体
  • 所以我的“测试计划”看起来像:

    • 测试计划
      • 螺纹组
        • HTTP请求默认值
        • HTTP Cookie管理器
        • 登录(HTTP请求采样器:POST)
        • 获取状态(HTTP请求采样器:Get)
        • 创建资源(HTTP请求采样器:POST)
    “登录”生成的cookie已正确添加到“获取状态”。
    但是“创建资源”没有cookie。我改变了他们的顺序,但没用。 我首先使用了默认选项,并更改了一些选项,但也没有帮助

    这是JMeter的错误吗?或者只是POST http请求不能有cookie
    请给我任何建议

    [已解决]
    我注意到它与路径有关,而与方法无关。
    您希望查看cookie的域以及路径。
    我的意思是,cookie的路径和域可以通过Set cookie头在服务器端定义。

    另一个解决方案是在jmeter.properties中设置CookieManager.check.cookies=false,通常位于bin中的jmeter启动脚本之外

    JMeter出于某些原因认为,如果您在http:/somesite/somethingelse上,就不能在cookie中设置path=/something。即路径必须与您当前所在的路径匹配

    我从未见过浏览器在实际存在的情况下强制执行此限制。我看过并写过几个网站,它们使用这种技术来设置安全cookie,然后转发给某人say/admin


    我希望这个选项至少在GUI中,这样我就不必更改属性文件了。我认为BlazeMeter足够智能,可以关闭flood.io不在的位置的检查。如果由我决定的话,我会完全删除检查这个的代码。为什么要让load tester变得更难呢。

    我在Spring引导服务器上打开了它,这导致了jMeter中CookieManager的问题:

    server.servlet.session.cookie.secure=true


    删除此项会使cookies流动!当然,这是针对本地主机的。对于生产,您可能需要打开此选项。

    感谢您用您的解决方案更新您的问题。这对我很有帮助。嗨,你能解释一下……你是如何做到的……为了防止其他人面临同样的问题,启用跟随重定向解决了我的cookie问题。我也面临着与路径相关的类似问题。cookie设置为域上的特定路径,比如“/admin”,但是当我点击/发送请求到该路径时,只有设置为根域的cookie,即“/”被发送。但是我们需要发送“/”和“/admin”路径的cookie。如何解决这个问题?我使用的是JMeter3.1