我在JMeter中编写Beanshell采样器来读取文件,我想用逗号(,)分隔每行,并想要提取值。我得到了第一个带有索引0的分割字符串,但对于索引为1,2的下一个值,所以...它没有给出值。
value = value.append(line.split(",")[2]);
这里,对于索引0,它对索引大于0的所有精细BUT都有效,它失败了。
答案 0 :(得分:6)
您确定line.split(",")
表达式生成长度为&gt的String数组吗? 1?你怎么知道的?
例如下一个代码:
String line = "quick, brown, fox, jumped, over";
String[] words = line.split(",");
for (int i = 0; i < words.length; i++) {
log.info(words[i]);
if (i == 2) {
log.info("Third word is: " + words[2]);
}
}
产生以下输出:
2014/10/08 13:17:37 INFO - jmeter.util.BeanShellTestElement: quick
2014/10/08 13:17:37 INFO - jmeter.util.BeanShellTestElement: brown
2014/10/08 13:17:37 INFO - jmeter.util.BeanShellTestElement: fox
2014/10/08 13:17:37 INFO - jmeter.util.BeanShellTestElement: Third word is: fox
2014/10/08 13:17:37 INFO - jmeter.util.BeanShellTestElement: jumped
2014/10/08 13:17:37 INFO - jmeter.util.BeanShellTestElement: over
我建议使用log.info
方法记录所有值并检查输出。由于JMeter 2.6 Log Viewer可用,您应该能够在JMeter GUI中看到正在发生的事情:
有关更多Beanshell提示和技巧,请参阅How to use BeanShell: JMeter's favorite built-in component指南。