【问题标题】:Jmeter: how to iterate over csv file in batches?Jmeter:如何批量迭代csv文件?
【发布时间】:2019-11-05 17:37:50
【问题描述】:

我必须在使用 csv 文件作为数据源的 Jmeter 中进行测试。

测试的要求是对于每个请求(测试需要有 100 个请求),需要处理来自 csv 的 10.000 行。

总而言之,测试应该是这样的:

request 1 -> 遍历前 10.000 行 (1-10.000) 请求 2 -> 遍历接下来的 10.000 行 (10.001 - 20.000) ... ... 请求 100 -> 遍历行 990.001 - 1.000.000

我是 Jmeter 的新手,所以我希望我能够解释我必须做什么,但如果您需要更多详细信息,请告诉我。

所以基本上,有没有一种简单的方法可以通过添加某种控制器来做到这一点,还是需要一个带有一些代码的 JSR223 采样器?

谢谢。

我正在测试一个商店用来将产品标记为“已售出”的应用程序,要求是检查应用程序在销售 100 批每批包含 10.000 件产品时的行为。

测试还有一个带有 SOAP 请求的采样器,soap 请求 xml 中有一个包含产品序列号的节点,最初我尝试在此参数下硬编码 10.000 个序列号,但结果不是预期的。

【问题讨论】:

    标签: csv jmeter


    【解决方案1】:

    我会将原始的“大”CSV 文件拆分为较小的 CSV 文件,每个文件包含 10 000 行。

    1. setUp Thread Group 添加到您的测试计划中
    2. JSR223 Sampler 添加到线程组
    3. 将以下代码放入“脚本”区域:

      SampleResult.setIgnore()
      
      def largeFile = new File('largefile.csv')
      
      def i = 0
      def smallFilePostfix = 0
      def smallFile = new File('smallfile' + smallFilePostfix + '.csv')
      largeFile.each { line ->
          if (i >= 10000) {
              i = 0
              smallFilePostfix += 1
              smallFile = new File('smallfile' + smallFilePostfix + '.csv')
          }
          i = i + 1
          smallFile << line << System.getProperty('line.separator')
      }
      
    4. 就是这样,上面的代码将largefile.csv拆分成smallfile0.csvsmallfile1.csv等,每行包含10000行可以正常使用,即__CSVRead() function

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      相关资源
      最近更新 更多