2017-08-06 78 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的變量

相關問題