【问题标题】:Passing only the required rows of data from CSV file to Jmeter based on a criteria根据条件仅将所需的数据行从 CSV 文件传递​​到 Jmeter
【发布时间】:2017-11-21 20:02:36
【问题描述】:

我有一个 csv 文件,它的输入格式如下(第一行没有标题):

India,QA,1200,
India,QA1,1201,
India,QA2,1202,
USA,Dev1,5580,
USA,Dev2,5580,
AUS,Dev3,3300,
AUS,Dev4,3301,

我已经配置了CSV Data Set Config 组件并给出了各自的路径和变量名详细信息。截图如下:

从命令行参数,我将调用 Jmeter jmeter.bat -t C:\Users\Dev\Desktop\JI\testscript.jmx -JCountry=India,它还有一个名为 JCountry=India 的参数。

现在,我必须使用这个值(印度),然后搜索 csv 文件的第一列,如果匹配,我只需将那些与 cmd 给出的国家名称匹配的特定行发送到脚本。

我曾想过使用If Controller,但如何检查 csv 文件的第一行以及匹配时,将这些详细信息发送到脚本。

【问题讨论】:

    标签: javascript csv jmeter jmeter-plugins


    【解决方案1】:

    最简单的选择是动态生成仅包含 India 行的 CSV 文件

    1. setUp Thread Group 添加到您的测试计划中
    2. Test Action 采样器添加到setUp 线程组(这样您就不会在.jtl 文件中得到额外的结果)
    3. JSR223 PreProcessor 添加为测试操作采样器的子项
    4. 将以下代码放入“脚本”区域:

      String country = props.get('Country')
      
      def originalCsvFile = new File('C:/Users/Dev/Desktop/JI/JVMDetails/Details.txt')
      def countryCsvFile = new File('C:/Users/Dev/Desktop/JI/JVMDetails/Country.txt')
      
      countryCsvFile.delete()
      
      originalCsvFile.eachLine {line ->
          if (line.startsWith(country)) {
              countryCsvFile << line
              countryCsvFile << System.getProperty('line.separator')
          }
      }
      
    5. 将您的 CSV 数据集配置配置为使用 C:\Users\Dev\Desktop\JI\JVMDetails\Country.txt,因为该文件将只有那些以您定义为 Country 属性的行开头的行

    更多信息:

    【讨论】:

      【解决方案2】:

      您需要遍历 CSV,请参阅 example other examples。 作为第二个示例,在 while 条件中使用来自 CSV 的变量: ${Country} 。

      在循环内部,您需要添加 If Controller 和条件来比较国家/地区变量和国家/地区属性:

       ${__jexl3("${__P{Country}" == "${Country}")}
      

      建议检查这一点并在 Condition 中使用 __jexl3 或 __groovy 函数以提高性能

      【讨论】:

      • 我正在使用条件设置为 ${__P{Country} 的 While 控制器,接下来将 CSV 文件添加到它,然后使用条件设置为 ${__jexl3("${__P{Country}" == "${Country}")} 的 IF 控制器添加到该文件。只有那些特定的 csv 文件行将如何走得更远。这样就够了吗?
      • 作为第二个示例,在 while 条件下使用来自 CSV 的变量:${Country}。使用属性将始终返回 true 并将永远循环
      猜你喜欢
      • 1970-01-01
      • 2021-05-08
      • 2014-04-13
      • 2016-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      • 1970-01-01
      相关资源
      最近更新 更多