JMeter循环计数器

时间:2017-05-31 10:47:56

标签: jmeter

我是JMeter的新手并尝试设置测试计划,我需要针对每个请求传递可变数据。例如,我有10,000个产品具有顺序唯一ID(PD1 ... PD10000)。我还有250个价格记录以及顺序独特的ID(PR1 .... PR250)。 我希望我的请求以每个产品ID与价格记录循环250次的方式发送。 我试图将线程(用户)计数设置为250并且循环计数为10,000并使用标准函数$(__ counter(FALSE,)}但这只是增加并超过10,000限制。 有人可以建议我如何设置两个变量或循环控制器,以便我可以传递重复的数据,如

{ ProductId : ${ProductId}, 
  PriceId : ${PriceId} 
}

其中ProductId循环介于1 - 10000和PriceId之间循环介于1-250之间。 感谢

2 个答案:

答案 0 :(得分:0)

如果你需要每个产品执行250次迭代,那么线程(用户)计数应该是10000并且循环计数应该是250.假设要替换的值是PD1,PD2等,创建单独的计数器(配置元素 - > ;计数器)分别为产品ID和价格ID,参考名称为product_id和price_id,使用方法如下

{ 
ProductId : PD${product_id}, 
PriceId : PR${price_id} 
}

反驳参考http://jmeter.apache.org/usermanual/component_reference.html#Counter

否则使用CSV数据集配置并从csv文件中检索产品和价格ID。 请参阅:http://jmeter.apache.org/usermanual/component_reference.html#CSV_Data_Set_Config

答案 1 :(得分:0)

我相信While Controller会更容易使用,例如配置:

  • 当控制器,条件:${__javaScript(${counter} < 250,)}

有关更多详细说明,请参阅Using the While Controller in JMeter文章,另请参阅控制器用例。

我不建议使用Threads(虚拟用户)编号来控制循环次数,它需要用于仅控制负载,你需要设计你的测试计划无论定义了多少虚拟用户,它都会执行相同的方案。例如,如果您有1个虚拟用户,则应该遍历所有10 000个产品ID记录并循环250次。如果您有2个虚拟用户 - 他们需要采用不同的记录,以便测试完成速度提高2倍,等等。