在JMeter中使用CSV数据集中的每个线程使用相同的行

时间:2012-11-20 09:46:44

标签: java csv jmeter load-testing

我想在JMeter中制定一个测试计划,如下所示:

我有一个Web服务器的特定流程:

Req1  
Reply for Req1  
Req2  
Reply for Req2  
Req2  
Reply for Req2    
etc

我需要将这些操作作为单个流程运行,即每个线程从头到尾执行此操作( Req1Req2由不同的线程发送。) 我还需要在每次迭代中发送不同的参数,因此我使用了CSV data set

问题:
我需要从CSV发送相同的行,以获得每个线程的所有请求。

例如:
如果我有以下CSV:

john,A1111,engineer  
bill,A2111,manager  
mary,C1111,secretary   

我需要在所有中将第一行发送到Req1到线程1的最后一个请求,第二行在所有请求等。

这可能吗?我尝试将相同的CSV文件添加到我的所有控制器,但仍然无法按预期工作。

更新
我感兴趣的是让每个线程从CSV文件消耗1行并且"缓存"我的流程中所有请求的那一行。

1 个答案:

答案 0 :(得分:0)

实现场景的最简单方法如下:

Test Group
Number of Threads = N
    CSV Data Set Config
    Filename: ... (your csv-file here)
    Variable Names: name,id,position       // (as per your csv sample above)
    Delimiter: ,
    Recycle on EOF = True
    Stop Thread on EOF = False
    Sharing Mode = All threads
    Simple Controller  // that's optional: simply to group your requests flow
        Sampler 01     // use ${name}, ${id}, ${position} variables to refer extracted values
        Sampler 02
        ...
        Sampler X
  • Number of Threads = N将启动N个帖子;
  • Sharing Mode = All threadsSharing Mode = Current thread group将强制每个线程从csv读取单独的行,然后在所有后续采样器中使用提取的值;
  • 如果线程数N>
  • Recycle on EOF = True将回收您的csv csv中的条目数。