Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      Error’d: Pickup Sticklers

      September 27, 2025

      From Prompt To Partner: Designing Your Custom AI Assistant

      September 27, 2025

      Microsoft unveils reimagined Marketplace for cloud solutions, AI apps, and more

      September 27, 2025

      Design Dialects: Breaking the Rules, Not the System

      September 27, 2025

      Building personal apps with open source and AI

      September 12, 2025

      What Can We Actually Do With corner-shape?

      September 12, 2025

      Craft, Clarity, and Care: The Story and Work of Mengchu Yao

      September 12, 2025

      Cailabs secures €57M to accelerate growth and industrial scale-up

      September 12, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      Using phpinfo() to Debug Common and Not-so-Common PHP Errors and Warnings

      September 28, 2025
      Recent

      Using phpinfo() to Debug Common and Not-so-Common PHP Errors and Warnings

      September 28, 2025

      Mastering PHP File Uploads: A Guide to php.ini Settings and Code Examples

      September 28, 2025

      The first browser with JavaScript landed 30 years ago

      September 27, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured
      Recent
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»Development»How to configure JMeter to dynamically read data from one of multiple CSV files based on load distribution?

    How to configure JMeter to dynamically read data from one of multiple CSV files based on load distribution?

    April 21, 2025

    I’m working on performance testing a multi-tenant application using Apache JMeter. I want to simulate load coming from three different clients, where each client’s data is stored in a separate CSV file. The load should be distributed like this:

    • Client 1: 60%
    • Client 2: 30%
    • Client 3: 10%

    All CSV files have the same structure (columns), but contain different data per client.

    My Goal:
    I want each thread to randomly and proportionally pick data from the appropriate CSV file based on the percentages above and use it in the HTTP requests without data overlap or inconsistency.

    What I Tried:

    Approach 1: Dynamically set file path using a variable
    My Jmeter Test Plan structure is,

    Test Plan
    |-- User Defined Variables
    |-- CSV Data Set Config
    |-- Stepping Thread Group
    |-- |-- JSR223 PreProcessor
    |-- |-- HTTP Request Sampler 1
    |-- |-- HTTP Request Sampler 2
    |-- |-- HTTP Request Sampler n
    |-- View Result Tree
    |-- Summary Report
    

    In the Test Plan, I have a variable path defined in User Defined Variables as:

    path = D:/jmeter/project
    

    I then set the Filename in CSV Data Set Config to ${csvFile}.

    Inside a JSR223 PreProcessor, I tried setting the csvFile variable like this:

    def randomValue = Math.random()
    if (randomValue < 0.6) {
        vars.put('csvFile', "${path}/file1.csv")
    } else if (randomValue < 0.9) {
        vars.put('csvFile', "${path}/file2.csv")
    } else {
        vars.put('csvFile', "${path}/file3.csv")
    }
    

    The issue is, even though csvFile gets set correctly in the JSR223 PreProcessor, the CSV Data Set Config doesn’t pick up the value dynamically.

    Approach 2: Dynamically set file path using a variable and place the CSV Data Set Config after the JSR223 PreProcessor

    My Jmeter Test Plan structure is,

    Test Plan
    |-- User Defined Variables
    |-- Stepping Thread Group
    |-- |-- JSR223 PreProcessor
    |-- |-- CSV Data Set Config
    |-- |-- HTTP Request Sampler 1
    |-- |-- HTTP Request Sampler 2
    |-- |-- HTTP Request Sampler n
    |-- View Result Tree
    |-- Summary Report
    

    Still the result is the same as in Approach 1.

    I suspect it’s due to the execution order, as JMeter processes the CSV Data Set Config before the PreProcessor runs.

    My Question:

    What is the correct way in JMeter to:

    • Dynamically and proportionally distribute threads across multiple CSV files
    • Ensure clean separation of data per thread (no variable conflicts)
    • Avoid data overlap or race conditions between threads

    Note: I cannot share actual screenshots or project files due to employer restrictions, but I’m looking for a JMeter-safe and scalable way to simulate this kind of weighted load across clients using separate CSV files or anything other suggestion for tackling this issue.

    Any ideas or recommendations for managing this effectively?

    Source: Read More

    Facebook Twitter Reddit Email Copy Link
    Previous ArticleThe Ultimate Guide to Demo Websites for Selenium Automation Testing
    Next Article ByteDance Releases UI-TARS-1.5: An Open-Source Multimodal AI Agent Built upon a Powerful Vision-Language Model

    Related Posts

    Development

    Using phpinfo() to Debug Common and Not-so-Common PHP Errors and Warnings

    September 28, 2025
    Development

    Mastering PHP File Uploads: A Guide to php.ini Settings and Code Examples

    September 28, 2025
    Leave A Reply Cancel Reply

    For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

    Continue Reading

    Error’d: Abort, Cancel, Fail?

    News & Updates

    Microsoft Copilot for Power Platform

    Development

    June 2025 Patch Tuesday: Microsoft Fixes 66 Bugs, Including Active 0-Day

    Security

    Rebrand Direct Ferries

    Web Development

    Highlights

    PoC Tool Released for Max Severity Apache Parquet Vulnerability to Detect Affected Servers

    May 7, 2025

    PoC Tool Released for Max Severity Apache Parquet Vulnerability to Detect Affected Servers

    A proof-of-concept (PoC) exploit tool has been publicly released for a maximum severity vulnerability in Apache Parquet, enabling security teams to easily identify affected servers.
    The vulnerability, …
    Read more

    Published Date:
    May 07, 2025 (4 hours, 16 minutes ago)

    Vulnerabilities has been mentioned in this article.

    CVE-2025-30065

    CVE-2025-24813

    Slack will generate thread summaries and AI notes from your huddles now

    July 17, 2025

    Intelligent document processing at scale with generative AI and Amazon Bedrock Data Automation

    July 11, 2025

    GPT OSS models from OpenAI are now available on SageMaker JumpStart

    August 5, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.