Locustを使用してパフォーマンステストを開始しました。 2つの異なるエンドポイントに2つのPOSTリクエストを送信したいと思います。ただし、2番目のPOSTリクエストには、最初のリクエストの応答が必要です。これを便利な方法で行う方法。私は以下のように試しましたが、機能しません。
from locust import HttpLocust, TaskSet, task
class GetDeliveryDateTasks(TaskSet):
request_list = []
@task
def get_estimated_delivery_date(self):
self.client.headers['Content-Type'] = "application/json"
response = self.client.post("/api/v1/estimated-delivery-date/", json=
{
"xx": "yy"
}
)
json_response_dict = response.json()
request_id = json_response_dict['requestId']
self.request_list.append(request_id)
@task
def store_estimated_delivery_date(self):
self.client.headers['Content-Type'] = "application/json"
response = self.client.post("/api/v1/estimated-delivery-date/" + str(self.request_list.pop(0)) + "/assign-order?orderId=1")
class EDDApiUser(HttpLocust):
task_set = GetDeliveryDateTasks
min_wait = 1000
max_wait = 1000
Host = "http://localhost:8080"
task
リストに渡す前に、データを準備するon_start(self)
関数を呼び出すことができます。以下の例を参照してください。
from locust import HttpLocust, TaskSet, task
class GetDeliveryDateTasks(TaskSet):
request_list = []
def get_estimated_delivery_date(self):
self.client.headers['Content-Type'] = "application/json"
response = self.client.post("/api/v1/estimated-delivery-date/", json=
{
"xx": "yy"
}
)
json_response_dict = response.json()
request_id = json_response_dict['requestId']
self.request_list.append(request_id)
def on_start(self):
self.get_estimated_delivery_date()
@task
def store_estimated_delivery_date(self):
self.client.headers['Content-Type'] = "application/json"
response = self.client.post("/api/v1/estimated-delivery-date/" + str(self.request_list.pop(0)) + "/assign-order?orderId=1")
class EDDApiUser(HttpLocust):
task_set = GetDeliveryDateTasks
min_wait = 1000
max_wait = 1000
Host = "http://localhost:8080"