我正在使用JSON提取器从响应中提取值,然后我需要搜索CSV并从CSV中获取该特定值的值。
就像我从JSON提取器获取值是XYZ然后我需要搜索存储值的CSV
**Col1** **Col2**
ABC 123
DEF 456
XYZ 890
有人能指导我如何使用bean shell从CSV中获取值吗?
感谢。
答案 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}
访问。
参考文献:
vars
是JMeterVariables类的简写,它提供对JMeter变量的读/写访问权答案 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]);
}
}