我正在研究JMeter 3.3。我将有n个用户,登录应该只进行一次,但其他页面将被执行多次。我发现该解决方案使用了2个不同的线程组,但它不起作用,因为我从登录中获得了cookie。
我在Sharing cookie values between thread groups in JMeter中看到了类似的用例,但没有一个解决方案有效。如何实现这一目标?
答案 0 :(得分:0)
SetUp Thread Group可以回答吗? (http://jmeter.apache.org/usermanual/component_reference.html#setUp_Thread_Group) - 我的意思是登录(并将变量提取到cookie)将在该setUp组中完成,然后在“普通”线程组中进行其他测试 - 这将使用您的cookie读取全局可用变量。
答案 1 :(得分:0)
如果您需要每次迭代只登录一次用户,而不是使用Once only controller。 要在线程组之间共享cookie,您可以使用Inter-thread communication plugin
答案 2 :(得分:0)
通常情况下,如果您只想执行一次登录,则可以使用条件为${__groovy(vars.getIteration() == 1,)}
的{{3}},其中:
vars
- 是Groovy类实例的简写,提供对JMeter变量的读/写访问。 JMeterVariables方法返回当前vars.getIteration()
次迭代,因此您放置在If Controller下的采样器将仅为每个虚拟用户执行一次。 答案 3 :(得分:0)
我从https://stackoverflow.com/a/43379806/8305811获得了解决方案,但是将CookieManager.save.cookies设置为true并在测试计划级别设置了cookie管理器。