Jmeter 在不同的JSR采样器中访问Java变量

Jmeter 在不同的JSR采样器中访问Java变量,jmeter,jsr223,Jmeter,Jsr223,我有10000个条目的csv文件。对于每一次迭代,我想使用100个条目。我已经在JSR223采样器中的一个java列表中加载了only-one控制器。所以,我可以加载一次并使用这个主列表在其他JSR223采样器中每次检索记录块。我无法从不同线程组中的另一个JSR223采样器访问在一个JSR223采样器中定义的变量“totalrows”、“lines”。除了使用vars.get()获取定义给JSR223采样器的变量的全局范围之外,还有其他方法吗 import org.apache.commons.

我有10000个条目的csv文件。对于每一次迭代,我想使用100个条目。我已经在JSR223采样器中的一个java列表中加载了only-one控制器。所以,我可以加载一次并使用这个主列表在其他JSR223采样器中每次检索记录块。我无法从不同线程组中的另一个JSR223采样器访问在一个JSR223采样器中定义的变量“totalrows”、“lines”。除了使用vars.get()获取定义给JSR223采样器的变量的全局范围之外,还有其他方法吗

import org.apache.commons.io.FileUtils;   
List lines = FileUtils.readLines(new File("skuinfo.csv")); 

int totalrows=lines.size()

变量与线程相关,为了能够共享,您需要使用属性(jsr223测试元素中的道具)

但我建议您不要使用这种方法,因为它会影响JMeter的性能,尤其是在代码开发不正确的情况下

您还需要处理同步,因为对象将在线程之间共享


所以最好使用JMete的内置机制,即CSV数据集,并在测试前准备数据。

每个脚本都是自包含的。您不能与其他脚本共享部分脚本。即使是第二次执行相同的脚本,也会再次运行,并重新创建列表。所以它会读取每次执行的所有内容。。。但是你想达到什么目的?为什么不使用普通方式读取CSV块?