2017-05-31 204 views
0

我是JMeter的新手,试图设置一个测试计划,我需要根据每个请求传递可变数据。例如,我拥有10,000个具有顺序唯一ID的产品(PD1 ... PD10000)。我也有250个价格记录以及序列唯一ID(PR1 .... PR250)。 我希望我的请求能以每种产品ID在价格记录中循环250次的方式发送。 我试图设置线程(用户)计数为250和循环计数10,000,并使用标准函数$(__ counter(FALSE,)},但这只是得到增加,并超过10,000限制 有人请告诉我如何设置两个变量或回路控制器,这样我可以通过重复数据如JMeter循环计数器

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

其中环产品编号介于1 - 10000和PriceId循环感谢

回答

0

1-250 之间。如果你需要每个产品进行250迭代,那么线程(用户)计数应该是10000,循环计数应该是250.假设被替换的值是PD1,PD2等,Create s产品ID和价格ID,参考名称作为PRODUCT_ID - (>计数器配置元件)和分别price_id并且如下

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

计数器参考http://jmeter.apache.org/usermanual/component_reference.html#Counter

否则使用CSV数据集的配置和检索使用eparate计数器产品和价格ID从CSV文件。 参见:http://jmeter.apache.org/usermanual/component_reference.html#CSV_Data_Set_Config

+0

我尝试过使用上面的方法,但因为我的客户端计算机无法创建10,000个线程而导致内存异常。 – Abdullah

+0

尝试增加jmeter.bat(windows)中的堆内存 - 默认情况下它将是512MB'set HEAP = -Xms512m -Xmx512m'。或者添加远程生成器[链接] http://jmeter.apache.org/usermanual/remote-test.html –

0

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

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

您的要求,请参阅Using the While Controller in JMeter文章更详细的解释和一些虽然控制器使用的情况。

我不会推荐使用线程(虚拟用户)号码来控制回路数量,它只需要用于控制负载的只需,您需要以这样的方式设计您的测试计划无论定义了多少虚拟用户,都会执行相同的场景。例如,如果你有1个虚拟用户,它应该通过所有10000个产品ID记录并循环250次。如果你有两个虚拟用户 - 他们需要采取不同的记录,所以测试将完成速度提高两倍,等等。