我有一个Jmeter测试,在该测试中,我希望将XML消息发布到JMS队列。此消息将通过BeanShell预处理器动态形成,该预处理器从多个CSV data Set Config元素中提取数据。
此XML消息中动态的一项是其中的元素数量-它将是1到10之间的随机数。对于每个Line元素,我希望从CSV数据集配置元素中提取一个不同的变量。然而,我发现如果我像下面这样做,我会一直得到相同的变量:
for (int i = 0; i < numberOfLines; i++) {
InputXML = InputXML + "<OrderLine ItemID=\"${ItemID}\" />";
}
上面的代码将继续对所有行使用相同的${ItemID}变量,但我想让它获取CSV文件中的下一个变量。
有没有办法通过Beanshell来实现这一点?
发布于 2017-11-09 12:21:13
如果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。
https://stackoverflow.com/questions/47201274
复制