Я пытаюсь написать скрипт нагрузочного теста с помощью locustio, задача состоит в том, чтобы сначала войти в систему и выбрать access_token из ответа входа в систему, затем access_token анализируется как заголовок запроса для второго запроса API.
Ниже приведен мой сценарий:
from locust import HttpLocust, TaskSet, task, between
import json
class UserBehavior(TaskSet):
def __init__(self, parent):
super(UserBehavior, self).__init__(parent)
self.token = ""
self.headers = {}
def on_start(self):
"""this starts before anything else"""
self.token = self.login()
self.headers = {'Authorization': 'Bearer ' + self.token}
def login(self):
resp = self.client.post("/tologin",json={"username": "user_name","password": "password"})
return json.loads(resp._content)['data']['access_token']
@task()
def book_trip(self):
self.client.post("/go/trips/request",json={
"origin": {
"address": "pick_up_address",
"lat": 6.4,
"lng": 3.5
},
"destination":{
"address": "Sailor's Bar",
"lat": 6.4,
"lng": 3.4
},
"auto_dispatch": "true",
"is_cash": "false",
"user_id":"uuid",
"service_id": "svdid"
},headers=self.headers)
class CustomerAppUser(HttpLocust):
host = "my_base_url"
task_set = UserBehavior
wait_time = between(5,15)
Пожалуйста, что я делаю не так? почему он возвращает
401 Ошибка клиента: не авторизован для URL
Спасибо.