how to pass custom parameters to a locust test class?

Chris Snow picture Chris Snow · Mar 9, 2015 · Viewed 10.1k times · Source

I'm currently passing custom parameters to my load test using environment variables. For example, my test class looks like this:

from locust import HttpLocust, TaskSet, task
import os

class UserBehavior(TaskSet):

    @task(1)
    def login(self):
        test_dir = os.environ['BASE_DIR']
        auth=tuple(open(test_dir + '/PASSWORD).read().rstrip().split(':')) 
        self.client.request(
           'GET',
           '/myendpoint',
           auth=auth
        )   

class WebsiteUser(HttpLocust):
    task_set = UserBehavior

Then I'm running my test with:

locust -H https://myserver --no-web --clients=500 --hatch-rate=500 --num-request=15000 --print-stats --only-summary

Is there a more locust way that I can pass custom parameters to the locust command line application?

Answer

neonidian picture neonidian · May 7, 2018

You could use like env <parameter>=<value> locust <options> and use <parameter> inside the locust script to use its value

E.g., env IP_ADDRESS=100.0.1.1 locust -f locust-file.py --no-web --clients=5 --hatch-rate=1 --num-request=500 and use IP_ADDRESS inside the locust script to access its value which is 100.0.1.1 in this case.