我正在使用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