2015-12-09 54 views
0

在豆壳样我收到线数如何通过线数的线程组在JMeter中如何传递BeanShell的采样结果线程组

import org.apache.commons.io.FileUtils; 

int lines = FileUtils.readLines(new File("path to data file")).size(); 
vars.put("lines", String.valueOf(lines)); 

此行变量我想使用线程组我怎么能做到这一点 请帮我在这

更新Debugsampler的输出

JMeterVariables: 
JMeterThread.last_sample_ok=true 
[email protected]9f 
START.HMS=081505 
START.MS=1449648905577 
START.YMD=20151209 
TESTSTART.MS=1449652524822 
applicationname=test 
buildinfo=../data/Test.csv 
env=Test 
lines=77 
package=.zip 

回答

0

首先,你可以使用调试取样验证如果你成功地在变量中获得所需的值。其次,你可以简单地调用这个变量,就像JMeter中的其他用户定义变量一样。根据需要放置$ {lines}。

如果您仍然遇到任何问题,请发表评论或编辑您的问题以添加更多详细信息。

+0

更新问题部分中的Debugsampler输出,我能够看到Debugsampler output.still中的值,我无法访问ThreadGroup中的'lines'值作为LoopCount – Users9949

+0

我不确定您是否可以访问变量Threadgroup(循环计数)中的bean shell采样器作为beanshell采样器应该在病房后运行。根据我的经验,您可以从测试计划的根目录下的测试计划或用户定义的变量中完成。要生成所需的数字,你可以尝试不同的JMeter函数,看看它是否适合你。 – TestingWithArif

0

您无法以此方式配置线程组循环计数,因为它是在JMeter启动时填充的。下面是选项:

  1. 使用Loop Controller相反,则可以通过可变
  2. 设置的回路数在线程组定义“循环计数”的属性,像${__P(loops,)}。在这种情况下,你可以得到CSV文件中的行测试前数,即使用相关的操作系统命令,如:

    • type c:\temp\file.csv | find /c /v "~~~" - 适用于Windows
    • cat /tmp/file.csv | wc -l在* nix

    和所得到的值传递给经由-J JMeter的命令行键:

    jmeter -Jloops=XX -t /path/to/your/testplan.jmx ... 
    

有关JMeter属性以及设置和覆盖它们的方法的更多信息,请参阅Apache JMeter Properties Customization Guide

相关问题