我遇到了以下问题:
我确实认为ProductId变量被赋予了第一个值,然后在我引用${productId}
时只使用了该值。
我试图在RegexExtractor中将${__counter()}
应用于引用名称,
但是BeanShellAssertion无法设置属性。
我应该如何正确地解决这个问题呢?
答案 0 :(得分:3)
您可以使用__V()函数组合2个变量。
即。如果你有两个变量,如:
productId
counter
并且想评估ie ${productId_1}
,${productId_2}
等
应该如此简单:
${__V(productId${counter})}
相同的方法适用于__counter()函数:
${__V(productId_${__counter(,)})}
演示:
有关上述和其他功能的全面信息,请参阅How to Use JMeter Functions帖子系列
答案 1 :(得分:1)
ProdGroup
怎么做到?
在后处理器“参数”部分使用$ {__ counter(FALSE,)}并在脚本部分尝试获取String counter = arg[0]
并将其转换为整数并将其存储到脚本变量默认为arg [0] value是String
int c= arg[0] as Integer
//这是以你的方式转换为int
现在props.put("prod_id_"+c,"extractedfrom_response")
BID:
使用相同的计数器1定义计数器启动并给出计数器参考名称[如果您的产品组中的计数器值为0,那么它也必须从零开始]
脚本采样器将所有道具转换为变量
Enumeration e = props.propertyNames();
while (e.hasMoreElements()) {
String propertyName = e.nextElement().toString();
if (propertyName.startsWith("prod_id_")) {
vars.put(propertyName, props.getProperty(propertyName));
}
}
使用此功能,您已将属性转换为名为prod_id_1的变量... ...到... prod_id_n
在http sampler用户参考中,$ {__ V(prod_id _ $ {步骤2中的反引用}}}将完成您的工作
对于每个线程,计数器将默认递增
用于调试的采样器标签中的user $ {__ threadNum}或$ {counter reference name}。
希望这会有所帮助。如果还有问题,请告诉我们。