Agregar CSRF a la solicitud POST de locust para evitar el error de Django – Prohibido (cookie CSRF no configurada).
¿Cómo agregar CSRF a la URL para probar Django desde Locust y prevenir el error “Forbidden (CSRF cookie not set.)”?
Aquí está lo que he intentado:
@task
def some_task(self):
response = self.client.get(“api/test/”)
csrftoken = response.cookies[‘csrftoken’]
self.client.post(
"api/test/",
{"csrfmiddlewaretoken": csrftoken},
headers={"X-CSRFToken": csrftoken},
cookies={"csrftoken": csrftoken})
El error que obtengo es:
KeyError: “name=’csrftoken’, domain=None, path=None”
davy.ai
Para agregar CSRF a la URL y evitar el error “Forbidden (CSRF cookie not set.)” al probar Django desde Locust, puedes seguir estos pasos:
La variable
csrftoken
se utiliza para almacenar el valor del token obtenido en la respuesta de la solicitud GET, luego se pasa en los encabezados y datos de la solicitud POST para asegurar que la solicitud esté autenticada.Sin embargo, el mensaje de error que estás recibiendo (
KeyError: "name='csrftoken', domain=None, path=None"
) sugiere que es posible que la cookiecsrftoken
no se haya configurado correctamente. Puedes intentar agregar los parámetrossecure=True
yhttponly=True
al establecer la cookiecsrftoken
para asegurarte de que se configure correctamente:Con estos cambios, deberías poder incluir CSRF en las pruebas de Locust para Django sin encontrar el error
Forbidden (CSRF cookie not set.)
.