我是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之间。 感谢
答案 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,)}
Counter配置为:
您的要求
有关更多详细说明,请参阅Using the While Controller in JMeter文章,另请参阅控制器用例。
我不建议使用Threads(虚拟用户)编号来控制循环次数,它需要用于仅控制负载,你需要设计你的测试计划无论定义了多少虚拟用户,它都会执行相同的方案。例如,如果您有1个虚拟用户,则应该遍历所有10 000个产品ID记录并循环250次。如果您有2个虚拟用户 - 他们需要采用不同的记录,以便测试完成速度提高2倍,等等。