Way to use locust.io by supplying user list

前端 未结 4 2005
小蘑菇
小蘑菇 2020-12-23 10:00

I need to stress-test a system and http://locust.io seems like the best way to go about this. However, it looks like it is set up to use the same user every time. I need eac

4条回答
  •  情书的邮戳
    2020-12-23 10:30

    Alternatively, you can create users.py module to hold the users' information you need in your test cases, in my example, it holds email and cookies. Then you can call them randomly in your tasks. See below:

    # locustfile.py
    from locust import HttpLocust, TaskSet, task
    from user_agent import *
    from users import users_info
    
    
    class UserBehaviour(TaskSet):
        def get_user(self):
            user = random.choice(users_info)
            return user
    
        @task(10)
        def get_siparislerim(self):
            user = self.get_user()
            user_agent = self.get_user_agent()
            r = self.client.get("/orders", headers = {"Cookie": user[1], 'User-Agent': user_agent})
    
    class User(HttpLocust):
        task_set = UserBehaviour
        min_wait = 5000
        max_wait = 60000
    

    User and user-agent can be called by a function. With this way, we could distribute the test with many users and different user-agents.

    # users.py
    
    users_info = [
    ['performancetest.1441926507@gmail.com', 'cookies_created_by_each_user'], 
    ['performancetest.1441926506@gmail.com', 'cookies_created_by_each_user'], 
    ['performancetest.1441926501@gmail.com', 'cookies_created_by_each_user'], 
    ['performancetest.1441926499@gmail.com', 'cookies_created_by_each_user'], 
    ['performancetest.1441926494@gmail.com', 'cookies_created_by_each_user'], 
    ['performancetest.1441926493@gmail.com', 'cookies_created_by_each_user'], 
    ['performancetest.1441926492@gmail.com', 'cookies_created_by_each_user'], 
    ['performancetest.1441926491@gmail.com', 'cookies_created_by_each_user'], 
    ['performancetest.1441926490@gmail.com', 'cookies_created_by_each_user'], 
    ['performancetest.1441926489@gmail.com', 'cookies_created_by_each_user'], 
    ['performancetest.1441926487@gmail.com', 'cookies_created_by_each_user']] 
    

提交回复
热议问题