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

      AI is currently in its teenage years, battling raging hormones

      June 6, 2025

      4 ways your organization can adapt and thrive in the age of AI

      June 6, 2025

      Google’s new Search tool turns financial info into interactive charts – how to try it

      June 6, 2025

      This rugged Android phone has something I’ve never seen on competing models

      June 6, 2025

      Anthropic’s new AI models for classified info are already in use by US gov

      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

      Handling PostgreSQL Migrations in Node.js

      June 6, 2025
      Recent

      Handling PostgreSQL Migrations in Node.js

      June 6, 2025

      How to Add Product Badges in Optimizely Configured Commerce Spire

      June 6, 2025

      Salesforce Health Check Assessment Unlocks ROI

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

      Microsoft: Run PS script now if you deleted “inetpub” on Windows 11, Windows 10

      June 6, 2025
      Recent

      Microsoft: Run PS script now if you deleted “inetpub” on Windows 11, Windows 10

      June 6, 2025

      Spf Permerror Troubleshooting Guide For Better Email Deliverability Today

      June 6, 2025

      Amap – Gather Info in Easy Way

      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 7, 2025
    Security

    Apple’s App Store shaken: Court ends ‘Apple tax’ on external purchases

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

    Critical Erlang/OTP SSH RCE bug now has public exploits, patch now

    Security

    How to Code a Crossy Road Game Clone with React Three Fiber

    Development

    Revolutionizing earth observation with geospatial foundation models on AWS

    Machine Learning

    Distribution Release: AxOS 25.06

    News & Updates

    Highlights

    Web Development

    The Types of Data Analytics with Real-World Applications

    May 19, 2025

    Data analytics is no longer a buzzword. It’s a business imperative. As organizations generate more…

    Away From the Keyboard: Ariel Hou, Staff Engineer

    January 27, 2025

    Laravel 11 CRUD Operation

    May 4, 2025

    CVE-2025-5538 – WordPress BNS Featured Category Stored Cross-Site Scripting Vulnerability

    June 6, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

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