2017-08-06 83 views
1

我正在使用JSON提取器从响应中提取值,然后我需要搜索CSV并从该特定值的CSV中获取值。如何使用beanshell脚本比较来自CSV文件的变量值?

就像我正在从JSON抽取值是XYZ,然后我需要寻找其中的值存储为

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

任何人都可以指导我如何获取价值的正确方向从CSV使用豆壳?

谢谢。

回答

0

读线,使用由逗号拿到列拆分值 查找列值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]); 
     } 
     } 
+0

需要稍作修改,我在下面做了。谢谢您的帮助。 Scanner scanner = new Scanner(new File(flatFile)); scanner.useDelimiter(“\ r \ n”); while(scanner.hasNext()){ String line = scanner.next(); String [] cells = line.split(“,”);如果(cell [0] .equals(“XYZ”)){ vars.put(“myVal2”,cells [1]); } } – Naseem

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}

参考文献:到JMeter的变量