Jmeter Beanshell:从CSV数据集配置中获取多个变量?

时间:2017-11-09 11:58:39

标签: jmeter beanshell

我有一个Jmeter测试,我希望在其中将XML消息发布到JMS队列。此消息将通过BeanShell预处理器动态形成,该预处理器从多个CSV数据集配置元素中提取数据。

此XML消息中的一个动态项是其中的元素数 - 它将是1到10之间的随机数。对于每个Line元素,我想从CSV数据集配置元素中提取不同的变量。但是,我发现如果我做了类似下面的事情,我会继续得到相同的变量:

for (int i = 0; i < numberOfLines; i++) {
  InputXML = InputXML + "<OrderLine ItemID=\"${ItemID}\" />";
}

以上内容将继续为所有行使用相同的$ {ItemID}变量,但我想要的是抓取CSV文件中的下一行。

有没有办法通过Beanshell来实现这个目标?

1 个答案:

答案 0 :(得分:0)

如果CSV看起来像(第一行将保存为变量)

,则与您的数据一起使用
0,1,2,3,4,5,6,7,8,9
a,b,c,d,e,f,g,h,i,j

Beanshell将使用索引i以CSV格式获取第i列的值:

String InputXML = "";
for (int i = 0; i < 10; i++) {
    String a = vars.get(String.valueOf(i));
  InputXML = InputXML + "<OrderLine ItemID=\"" + a + "\" />";
}
vars.put("InputXML",InputXML);

InputXML变量将保存完整值。

如果您希望随机值直到10,则可以使用JMeter函数${__Random(0,10,myRandom)}

如果您想在CSV中获取随机行,可以使用similar answer