如何获取csv输入文件的子集以供执行

时间:2018-01-24 16:41:06

标签: csv jmeter

我正在使用jmeter来测试我们的系统使用' HTTP请求'采样器。 请求中的某些值使用csv文件进行参数化 使用' CSV数据集配置'。

csv文件中有600行,其中一行用于一个http请求,因此我将循环计数设置为600.每行实际上是一个测试用例。 我只需要一个线程。所以在我的结果树中,我在运行时看到了600个结果条目 - 这一切都正常。

我现在试图说只在csv中执行第10行到第15行,即测试用例10到15而不是全部600.我试图通过使用控制器来实现这样的工作,但我遗漏了一些东西

有人能指出我正确的方向吗? 提前谢谢 - 伊恩。

2 个答案:

答案 0 :(得分:0)

使用以下配置在您的请求之前添加counter

  • 开始: 1
  • 增量: 1
  • 参考名称:计数器

然后将您的请求置于具有此条件{{1}}

If controller

这将使您的脚本仅执行10到15行。

答案 1 :(得分:-1)

我认为最快,最简单的解决方案是生成一个全新的CSV文件,其中只包含之前的,如:

  1. setUp Thread Group添加到您的测试计划
  2. Test Action采样器添加到setUp线程组(您不需要额外的结果,不是吗?)
  3. JSR223 PreProcessor添加为“测试操作采样器”的子项
  4. 将以下代码放入"脚本"面积:

    new File('/path/to/original.csv').readLines()[9..14].each {line ->
        new File('/path/to/new.csv') << line << System.getProperty('line.separator')
    }
    
  5. 修改您的测试以使用new.csv代替original.csv
  6. 当然将/path/to/original.csv更改为&#34;来源&#34;的真实路径包含600个条目的CSV文件,new.csv的文件相同。路径可以是绝对路径也可以是相对路径。

    有关JMeter测试中Groovy脚本的更多信息,请参阅Apache Groovy - Why and How You Should Use It文章。