File: worker_index.py

package info (click to toggle)
locust 2.24.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 7,828 kB
  • sloc: javascript: 52,230; python: 20,862; sh: 118; makefile: 29
file content (20 lines) | stat: -rw-r--r-- 644 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# How to use worker_index to read from a pre-partitioned CSV file (mythings_0.csv, mythings_1.csv, ...)
# so that each worker uses their own file
from locust import User, events, runners, task

from locust_plugins import csvreader  # install locust-plugins first


class DemoUser(User):
    reader: csvreader.CSVDictReader

    @task
    def t(self):
        thing = next(self.reader)
        print(thing)


@events.init.add_listener
def on_locust_init(environment, **_kwargs):
    if not isinstance(environment.runner, runners.MasterRunner):
        DemoUser.reader = csvreader.CSVDictReader(f"mythings_{environment.runner.worker_index}.csv")