Jmeter - 如何在线程之间共享cookie?

时间:2016-03-02 11:06:00

标签: cookies jmeter

根据Jmeter spec,"每个JMeter线程都有自己的" cookie存储区"。因此,这意味着我无法使用一个全局(顶级)HTTP Cookie管理器在不同线程之间共享Cookie。

因此,我所知道的唯一解决方案是将cookie存储为属性,并在每个线程的开头提取它们。

问:如果不在文件/属性中存储Cookie,还有其他方法可以做同样的事情吗?

2 个答案:

答案 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

该属性可以通过两种方式设置:

  1. 通过-J键作为命令行参数,如:

    jmeter -JCookieManager.save.cookies=true 
    
  2. 在user.properties文件中。在这种情况下,它将是永久性的。需要重新启动才能从文件中选择属性。