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

      The Case For Minimal WordPress Setups: A Contrarian View On Theme Frameworks

      June 6, 2025

      How To Fix Largest Contentful Paint Issues With Subpart Analysis

      June 6, 2025

      How To Prevent WordPress SQL Injection Attacks

      June 6, 2025

      In MCP era API discoverability is now more important than ever

      June 5, 2025

      Black Myth: Wukong is coming to Xbox exactly one year after launching on PlayStation

      June 6, 2025

      Reddit wants to sue Anthropic for stealing its data, but the Claude AI manufacturers vow to “defend ourselves vigorously”

      June 6, 2025

      Satya Nadella says Microsoft makes money every time you use ChatGPT: “Every day that ChatGPT succeeds is a fantastic day”

      June 6, 2025

      Multiple reports suggest a Persona 4 Remake from Atlus will be announced during the Xbox Games Showcase

      June 6, 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

      TC39 advances numerous proposals at latest meeting

      June 6, 2025
      Recent

      TC39 advances numerous proposals at latest meeting

      June 6, 2025

      TypeBridge – zero ceremony, compile time rpc for client and server com

      June 6, 2025

      Simplify Cloud-Native Development with Quarkus Extensions

      June 6, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      Black Myth: Wukong is coming to Xbox exactly one year after launching on PlayStation

      June 6, 2025
      Recent

      Black Myth: Wukong is coming to Xbox exactly one year after launching on PlayStation

      June 6, 2025

      Reddit wants to sue Anthropic for stealing its data, but the Claude AI manufacturers vow to “defend ourselves vigorously”

      June 6, 2025

      Satya Nadella says Microsoft makes money every time you use ChatGPT: “Every day that ChatGPT succeeds is a fantastic day”

      June 6, 2025
    • 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

    Security

    Leadership, Trust, and Cyber Hygiene: NCSC’s Guide to Security Culture in Action

    June 6, 2025
    Security

    CVE-2025-4318 Critical RCE in AWS Amplify Codegen UI

    June 6, 2025
    Leave A Reply Cancel Reply

    Continue Reading

    The best early Amazon Prime Day monitor deals

    Development

    CVE-2025-32927 – Chimpstudio FoodBakery Deserialization of Untrusted Data Object Injection Vulnerability

    Common Vulnerabilities and Exposures (CVEs)

    Recurrent Drafter for Fast Speculative Decoding in Large Language Models

    Development

    10 Things You Should Know about Hiring a Business or Systems Analyst (Free Download)

    Development

    Highlights

    Windows 11’s Microsoft Copilot now auto runs in the background, but it’s still web crap

    February 13, 2025

    The Copilot app is now getting a new feature on Windows 11 that allows you…

    Google begins rolling out voice capabilities in Gemini with Gemini Live

    August 14, 2024

    GitHub Enterprise Server 3.13 is now generally available

    June 18, 2024

    I streamed with Logitech’s Mevo Core camera and it almost beat my $3,600 Canon

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

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