根据Jmeter spec,"每个JMeter线程都有自己的" cookie存储区"。因此,这意味着我无法使用一个全局(顶级)HTTP Cookie管理器在不同线程之间共享Cookie。
因此,我所知道的唯一解决方案是将cookie存储为属性,并在每个线程的开头提取它们。
问:如果不在文件/属性中存储Cookie,还有其他方法可以做同样的事情吗?
答案 0 :(得分:1)
据我所知,没有办法在所有线程之间共享cookie。因此,您尝试过的解决方案(手动设置Cookie然后提取它们)应该是唯一的解决方案。
Here用户提出了这个问题,jMeter支持就这样回答了问题:
没有。 JMeter线程旨在表示独立用户,因此cookie 和变量是线程的本地变量。
答案 1 :(得分:0)
如果你需要在线程之间共享cookie,而不是线程组,根据Using the HTTP Cookie Manager in JMeter文章:
收到的Cookie可以存储为JMeter线程变量(JMeter 2.3.2+的版本默认不再这样做)。
要将Cookie保存为变量,请定义属性 CookieManager.save.cookies = true 。 Cookie的名称包含前缀" COOKIE _"存储之前(这可以避免局部变量的意外损坏)。
我希望您知道如何使用JMeter Variables。
该属性可以通过两种方式设置:
通过-J键作为命令行参数,如:
jmeter -JCookieManager.save.cookies=true