我正在JMeter 3.3上工作。我将有n个用户,登录应该只进行一次,但其他页面将被执行多次。我发现该解决方案使用2个不同的线程组,但它不起作用,因为我的登录信息中包含Cookie。在线程组之间共享cookie
我在类似的用例中看到:Sharing cookie values between thread groups in JMeter,但没有任何解决方案奏效。如何做到这一点?
我正在JMeter 3.3上工作。我将有n个用户,登录应该只进行一次,但其他页面将被执行多次。我发现该解决方案使用2个不同的线程组,但它不起作用,因为我的登录信息中包含Cookie。在线程组之间共享cookie
我在类似的用例中看到:Sharing cookie values between thread groups in JMeter,但没有任何解决方案奏效。如何做到这一点?
可以设置线程组是一个答案? (http://jmeter.apache.org/usermanual/component_reference.html#setUp_Thread_Group) - 我的意思是登录(并将cookie提取到一个变量)将在setUp组中完成,然后在'正常'线程组中执行其他测试 - 它将使用您的cookie读取全局可用变量。
如果您每次迭代只需登录一次用户,则使用Once only controller。 要共享的线程组之间的cookies,您可以使用Inter-thread communication plugin
一般来说,如果你想进行登录一次就可以使用If Controller与${__groovy(vars.getIteration() == 1,)}
的条件,其中:
vars
- 是JMeterVariables类实例的简写,它提供对JMeter变量的读/写访问。 vars.getIteration()
方法返回当前Thread Group迭代,因此放置在If控制器下的采样器仅对每个虚拟用户执行一次。我从https://stackoverflow.com/a/43379806/8305811但在测试计划水平接通CookieManager.save.cookies为true,并设置cookie管理器得到了解决。
可能重复[Jmeter - 如何在线程之间共享cookie?](https://stackoverflow.com/questions/35745431/jmeter-how-to-share-cookies-between-threads) – user7294900