Попытка войти в приложение laravel с помощью Locust.
Мой код следующий:
from locust import HttpLocust, TaskSet, task
class UserBehavior(TaskSet):
def on_start(self):
self.login()
def login(self):
response = self.client.get("/en/login")
csrftoken = response.cookies['XSRF-TOKEN']
session = response.cookies['bitrent_session']
post_data = {'username': "[email protected]", 'password': '1234', "_token": csrftoken }
with self.client.post('/en/login', post_data,
catch_response=True) as response:
print("Code: ", response.status_code)
print("Content: ", response.content
@task()
def index(self):
self.client.get("/")
class WebsiteUser(HttpLocust):
task_set = UserBehavior
min_wait = 5000
max_wait = 9000
Однако я получил ошибку — Код 419 Содержание Срок действия страницы истек из-за неактивности.
Может кто-нибудь посоветовать мне, как войти в приложение Laravel, используя Locust
Нашел ответ:
Причина в том, что я передаю неверное значение для поля _token.
Вместо этого, если вы столкнулись с той же задачей, вы можете попробовать следующее:
import re
from locust import HttpLocust, TaskSet, task
class UserBehavior(TaskSet):
def on_start(self):
self.login()
def login(self):
response = self.client.get("/en/login")
print("Content: ", response.content)
csrftoken = re.search('meta name="csrf-token" content="(.+?)"', response.text).group(1)
print("token: ", csrftoken)
post_data = {'username': "[email protected]", 'password': '1234', "_token": csrftoken }
with self.client.post('/en/login', post_data,
catch_response=True) as response:
print("Code: ", response.status_code)
print("Content: ", response.content)@task()
def index(self):
self.client.get("/")
class WebsiteUser(HttpLocust):
task_set = UserBehavior
min_wait = 5000
max_wait = 9000
Надеюсь, что это поможет кому-то в будущем 🙂
Других решений пока нет …