我正在使用JSON提取器從響應中提取值,然後我需要搜索CSV並從該特定值的CSV中獲取值。如何使用beanshell腳本比較來自CSV文件的變量值?
就像我正在從JSON抽取值是XYZ,然後我需要尋找其中的值存儲爲
的CSV**Col1** **Col2**
ABC 123
DEF 456
XYZ 890
任何人都可以指導我如何獲取價值的正確方向從CSV使用豆殼?
謝謝。
我正在使用JSON提取器從響應中提取值,然後我需要搜索CSV並從該特定值的CSV中獲取值。如何使用beanshell腳本比較來自CSV文件的變量值?
就像我正在從JSON抽取值是XYZ,然後我需要尋找其中的值存儲爲
的CSV**Col1** **Col2**
ABC 123
DEF 456
XYZ 890
任何人都可以指導我如何獲取價值的正確方向從CSV使用豆殼?
謝謝。
讀線,使用由逗號拿到列拆分值 查找列值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]);
}
}
不要使用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的變量
vars
是一個速記JMeterVariables類,它提供讀/寫訪問
需要稍作修改,我在下面做了。謝謝您的幫助。 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