Vishnukk
Vishnukk

Reputation: 564

Locust response time for the first request

I am using Locust and my code looks as below

class RecommenderTasks(TaskSet):
    @task
    def test_recommender_multiple_platforms(self):
        start = round(time.time() * 1000)
        self.client.get('recommendations', name='Test')
        end = round(time.time() * 1000)
        print(end - start)
                        
class RecommenderUser(FastHttpUser):
    tasks = [RecommenderTasks]
    wait_time = constant(1)

    host = "https://my-host.com/"

When I test with this code, I get the following output times

374
62
65
68
64

I am not sure why the very first task time alone is about 300+ ms and the rest are as expected. With this, my overall average time also increases. Could you please help me here?

Upvotes: 1

Views: 785

Answers (1)

Solowalker
Solowalker

Reputation: 2866

Locust response times are measured from the time the initial request is sent to the server to the time a response is received. By default Locust reuses socket connections when available but creates new ones if an existing one isn't available. When connecting via HTTPS, there are a number of things that need to be done to set up the connection initially. Generally performance of that connection set up is dependent on things the server is doing. You could look into ways of reducing your connection setup time. How to do that will vary widely depending on your stack but you can find general principles in SO answers like this one:

how to reduce ssl time of website

Upvotes: 1

Related Questions