有谁知道如何在 bean shell 后处理器中创建一个数组并使其在其他线程组中可用?
我一直在寻找一段时间,但我无法解决这个问题。
谢谢
有谁知道如何在 bean shell 后处理器中创建一个数组并使其在其他线程组中可用?
我一直在寻找一段时间,但我无法解决这个问题。
谢谢
无需通过写入和读取文件来完成。Beanshell 扩展机制足够聪明,可以在没有临时 3rd 方实体的情况下处理它。
简短回答:bsh.shared命名空间
长答案:
假设以下测试计划结构:
Thread Group 1
Beanshell Sampler 1
Thread Group 2
Beahshell Sampler 2
将以下 Beanshell 代码放入Beanshell Sampler 1
Map map = new HashMap();
map.put("somekey","somevalue");
bsh.shared.my_cool_map = map;
以下是Beanshell Sampler 2
Map map = bsh.shared.my_cool_map;
log.info(map.get("somekey"));
运行它并查看 jmeter.log 文件。你应该看到类似的东西
2014/01/04 10:32:09 INFO - jmeter.util.BeanShellTestElement: somevalue
瞧。
参考:
根据一些建议,我是这样做的:
HTTP 请求有一个正则表达式提取器,用于从请求中提取 XPTO 变量。然后,BeanShell PostProcessor 将数据保存到 CSV 文件中:
String xpto_str = vars.get("XPTO");
log.info("Variable is: " + xpto_str);
f = new FileOutputStream("/tmp/xptos.csv", true);
p = new PrintStream(f);
this.interpreter.setOut(p);
print(xpto_str + ",");
f.close();
然后,在第二个线程组中,我添加了一个 CSV 数据集配置,我在其中从文件中读取变量。这真的很简单,只需阅读指南(http://jmeter.apache.org/usermanual/component_reference.html#CSV_Data_Set_Config)。
谢谢