如何在线程之间共享一个巨大的进程

时间:2016-05-09 12:34:54

标签: jmeter

我有大量api的部署过程。

我将通过查询返回json响应的restservice来获取api列表

{ "count" : 10000 ,[ {api_id:"1" , api_name:"xyz"},{api_id:"2",api_name:"abc"},....,{api_id:"999",api_name:"uuf"}]}

对于每个api id,我需要执行一些常见的取消部署..

现在使用单线程这个洞进程需要很长时间。

我想增加线程,因此缩短了处理时间。

目前我的Thread组显示在click to see Image下面,按预期运行该进程,但我想在线程之间共享这个大任务,当thread-1正在取消部署api_id 3然后thread-2不应该尝试取消部署相同的api_id 3.因为所有线程都试图访问相同的数据并尝试执行相同的过程我收到错误。

现在我正在寻找一个没有压倒一切的问题并希望分享这个过程的解决方案。

我想在线程之间共享(1000 /没有线程= chunck),然后每个线程的起始索引是0到chunck,chunk + 1到2 * chunck ...等但我不确定实现。< / p>

感谢。

1 个答案:

答案 0 :(得分:1)

鉴于您已经提取了您的API ID(或名称),并且您有1000个变量,如:

api_name_1=xyz
api_name_2=abc
api_name_3=uuf

你可以使用__counter()函数,每次调用它时都会递增,所以无论每个线程有多少个线程,每次迭代都会获取下一个执行取消部署的API。请参考下一个API名称:

 ${__V(api_name_${__counter(FALSE,)})}

Counter functions

有关不同JMeter计数器类型的详细信息以及如何使用它们的说明,请参阅How to Use a Counter in a JMeter Test文章。