【问题标题】:Use same row per thread from a CSV data set in JMeter每个线程使用 JMeter 中 CSV 数据集中的同一行
【发布时间】:2012-11-20 09:46:43
【问题描述】:

我想在JMeter做一个测试计划如下:

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

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

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

问题:
我需要为每个线程的所有请求从 CSV 发送同一行。

例如:
如果我有以下 CSV:

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

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

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

更新:
我感兴趣的是让每个线程消耗 CSV 文件中的 1 行,并为我的流程中的 all 请求“缓存”该行。

【问题讨论】:

  • @AndreyBotalov:我不认为这是同一个问题。请查看我想要做什么的更新
  • 我误解了你的问题
  • @AndreyBotalov:你对最好的方法有什么建议吗?我做了一些事情(将 CSV 放在顶部控制器中,并将请求作为子控制器)并且似乎可以工作。但它是这样改正吗?
  • 这似乎是一个正确的方式

标签: java csv jmeter load-testing


【解决方案1】:

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

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 > csv 中的条目数,Recycle on EOF = True 将回收您的 csv。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    相关资源
    最近更新 更多