我正在运行一组线程组(连续),我需要在每个线程组的开头重置一些参数,以便它们具有唯一值。
目前,我正在使用测试片段引用User Paramaters
节点,并将值设置为value-${__time()}
。不幸的是,这会导致值逐字使用(无需解析时间)。
有没有更好的方法来实现包含函数调用的每线程组变量?
答案 0 :(得分:2)
对我来说工作正常(Jmeter 2.5.1),如下例所示
设置为${__time(HMS,)}
和value-${__time()}
的样本参数为每个线程成功解析,生成和更新(每次迭代一次)(在这种情况下:3个线程组,5个线程@ 3个循环)。
您能否回答一下为什么通过Test Fragment使用用户参数(根据您的帖子)?
......还有几篇文章,只是fyi:
Parametrization in JMeter with user parameter
JMeter Variables vs. Properties. vs. Parameters
<强>更新:强>
请查看以下结果,例如将用户参数和测试逻辑放入测试片段并从模块控制器调用。
工作方式与上面的示例相同:成功解析,在单独的循环中保存在采样器之间,并在每个线程的循环之间更新(每次迭代一次)(好吧,我在屏幕上注释了其余的线程组以获得第一个的输出只;对所有启用的TG也能正常工作。)
我认为您也可以尝试将用户参数从测试片段配置到每个线程组,并在测试片段中仅保留测试逻辑 - 如果以上架构仍然不适合您:
这不是很好,但模块控制器和包含控制器仍然非常“错误”,有时甚至无法预测。
您还可以尝试在方案中调试问题控制器:选择控制器&gt;单击jmeter主菜单中的帮助&gt;单击“启用调试”&gt;执行后查看jmeter.log以获取详细信息。
您还可以查看自定义Parameterized Controller - 也许它会更好用。