如何使用beanshell脚本来比较CSV文件中的变量值?

时间:2017-08-06 18:58:12

标签: json csv jmeter

我正在使用JSON提取器从响应中提取值,然后我需要搜索CSV并从CSV中获取该特定值的值。

就像我从JSON提取器获取值是XYZ然后我需要搜索存储值的CSV

**Col1**   **Col2**
ABC    123
DEF    456
XYZ    890

有人能指导我如何使用bean shell从CSV中获取值吗?

感谢。

2 个答案:

答案 0 :(得分:2)

不要使用Beanshell编写脚本,而是使用JSR223元素和Groovy语言。 Beanshell已经知道性能问题,假设用户数量很多,它将成为您测试的瓶颈。

相关的Groovy代码如下:

def writer = new StringWriter()
new File('/path/to/your/file.csv').filterLine(writer) { line ->
    line.contains(vars.get('VARIABLE_FROM_JSON_EXTRACTOR_REFERENCE_NAME'))
}

def value = writer.toString().split(",")[1].replace(System.getProperty('line.separator'), '')

vars.put('value', value)

您可以在需要时将{CSV}文件中的值作为${value}访问。

参考文献:

答案 1 :(得分:1)

读取行,使用逗号分割来获取列值 查找列值XYZ并将第2列值分配给jmeter变量:

  Scanner scanner = new Scanner(new File(flatFile));
  scanner.useDelimiter("\r\n");
  while (scanner.hasNext()) {
    String line = scanner.next();
    String cells[] = line.split(",");  

       if (cells[0].equals("XYZ")) {
         vars.put("myVal2",  cells[1]);
        }
       }