Apache JMeter的Cookie管理器不会将cookie添加到POST请求中

use*_*330 9 cookies jmeter

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

  1. 登录:POST,返回会话cookie.
  2. 获取状态:GET,返回用户状态.
  3. 创建资源:POST,为资源提供JSON主体.

所以我的'测试计划'看起来像:

  • 测试计划
    • 线程组
      • HTTP请求默认值
      • HTTP Cookie管理器
      • 登录(HTTP请求采样器:POST)
      • 获取状态(HTTP请求采样器:GET)
      • 创建资源(HTTP请求采样器:POST)

"登录"生成的cookie正确添加到"获取状态".
但'创建资源'没有cookie.我改变了他们的订单,但没有帮助.我首先使用了默认选项并更改了一些选项,但它也无济于事.

这是JMeter的错误吗?或者只是POST http请求无法拥有cookie?
请给我任何建议.

[求助]
我注意到它与路径有关,而不是方法.
您想查看cookie的域以及路径.我的意思是,cookie的路径和域可以通过Set-Cookie头在服务器端定义.

Eri*_*gar 6

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

由于某些原因,JMeter 认为如果您位于 http:/somesite/somethingelse 上,则无法在 cookie 中设置 path=/something。也就是说,该路径必须与您当前所在的路径相匹配。

我从未见过浏览器强制执行此限制(如果它确实存在)。我已经看到并编写了几个使用此技术来设置安全 cookie 的网站,然后将某人说的内容转发到 /admin。

我希望这个选项至少在 GUI 中,这样我就不必更改属性文件。我认为 BlazeMeter 足够聪明,可以关闭对Flood.io 不进行检查的地方。如果由我决定,我会完全删除检查此内容的代码。为什么要让负载测试器变得比它需要的更难呢?