【问题标题】:Is there a way to find the number of task instance in Locust?有没有办法在 Locust 中找到任务实例的数量?
【发布时间】:2020-07-20 08:06:57
【问题描述】:

我希望我的 locust 程序每 10 次运行一组任务。即在下面的代码中,在 10 个任务实例中,我希望 task1 全部运行,而 task2、task3 只运行一次。该怎么做?

class WebsiteUser(HttpUser):
    host = "http://localhost:8085/api/"
    wait_time = constant(1)

    @task
    class SequenceOfTasks(SequentialTaskSet):
        id = None
        application_json = 'application/json'

        @task(10)
        def task1(self):
            request = read_json('order.json')
            self.id = str(uuid.uuid4())
            request['id'] = self.id
            response = self.client.post('createRequest', json.dumps(request),
                                        headers={'Content-Type': self.application_json})
            assert response.status_code == 200

        @task(1)
        def task2(self):
            request={self.id}
            response = self.client.post('cancelRequest', json.dumps(request),
                                        headers={'Content-Type': self.application_json})
            assert response.status_code == 200

        @task(1)
        def task3(self):
            request = read_json('updateRequest.json')
            request['id'] = self.id
            response = self.client.post('updaterequest', json.dumps(request),
                                        headers={'Content-Type': self.application_json})
            assert response.status_code == 200

【问题讨论】:

  • 我不太明白这个问题。 “任务实例的数量”是什么意思?

标签: python locust


【解决方案1】:

有点老套,但这可能对您的事业有所帮助:

class WebsiteUser(HttpUser):
    host = "http://localhost:8085/api/"
    wait_time = constant(1)

    @task
    class SequenceOfTasks(SequentialTaskSet):
        id = None
        application_json = 'application/json'
        def count = 0

        @task
        def controller_task(self):
          self.count++
          if self.count % 10 == 0:
             self.task1()
             self.task2()
             self.task3()
          else:
             self.task1()

        def task1(self):
            request = read_json('order.json')
            self.id = str(uuid.uuid4())
            request['id'] = self.id
            response = self.client.post('createRequest', json.dumps(request),
                                        headers={'Content-Type': self.application_json})
            assert response.status_code == 200

        def task2(self):
            request={self.id}
            response = self.client.post('cancelRequest', json.dumps(request),
                                        headers={'Content-Type': self.application_json})
            assert response.status_code == 200

        def task3(self):
            request = read_json('updateRequest.json')
            request['id'] = self.id
            response = self.client.post('updaterequest', json.dumps(request),
                                        headers={'Content-Type': self.application_json})
            assert response.status_code == 200

【讨论】:

  • @kharash-markownikoff -- 这回答了你的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2021-05-31
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多