Jdbc 在不同线程组下定义基于作用域的用户定义变量

Jdbc 在不同线程组下定义基于作用域的用户定义变量,jdbc,automation,jmeter,Jdbc,Automation,Jmeter,我在jmeter中有一个测试计划的多线程组。我想为一个特定的线程组定义用户定义的值,变量名可以在另一个线程组中为其用户定义的值重复 当我尝试执行上述操作时,它在线程组中拾取同一变量名的最后一个值,而不是按范围使用它 用于带有查询的jdbc请求的JMeter变量的作用域仅限于当前线程组。要使JMeter变量对所有线程组可见,需要将它们转换为JMeter属性。有关如何操作的详细信息,请参阅指南 我找到了解决办法。示例:如果您在随机顺序控制器下有一些测试用例,那么您有多个随机控制器。测试用例包含jdb

我在jmeter中有一个测试计划的多线程组。我想为一个特定的线程组定义用户定义的值,变量名可以在另一个线程组中为其用户定义的值重复

当我尝试执行上述操作时,它在线程组中拾取同一变量名的最后一个值,而不是按范围使用它


用于带有查询的jdbc请求的JMeter变量的作用域仅限于当前线程组。要使JMeter变量对所有线程组可见,需要将它们转换为JMeter属性。有关如何操作的详细信息,请参阅指南

我找到了解决办法。示例:如果您在随机顺序控制器下有一些测试用例,那么您有多个随机控制器。测试用例包含jdbc请求连接的变量名,然后您可以在random order controller中添加用户定义的变量,该变量将仅由其下的测试用例使用。 这样,您就可以将变量名限定为特定的随机顺序控制器

我为每个有相同问题并正在寻找有效解决方案的人回答了这个“老”问题。至少在JMeter 5.11中,Dmitri T的答案并不总是正确的

从JMeter文档中:

  • 请注意,测试计划和用户定义的值 变量配置元素可用于整个测试 启动时计划。如果同一变量由多个UDV定义 元素,则最后一个元素生效。一旦线程启动, 初始变量集将复制到每个线程。其他要素 例如用户参数预处理器或正则表达式 提取器后处理器可用于重新定义相同的变量 (或创建新的)。这些重新定义仅适用于当前 线
使用局部变量(仅在实际线程组中可见)的一个良好且有效的解决方案是使用用户参数预处理器,而不是用户定义的变量配置元素

快乐负载测试