Junior — Middle
¿Cómo implementar un sistema de autorización unificado para diferentes escenarios de prueba?
sobes.tech AI
Respuesta de la IA
Para implementar un sistema de autorización unificado en diferentes escenarios de prueba, generalmente se crea un módulo o utilidad separado que se encarga del proceso de autenticación y obtención de tokens de acceso. Este módulo puede reutilizarse en todas las pruebas, lo que evita la duplicación de código y facilita el mantenimiento.
Enfoques principales:
- Uso de API para autorización: Al inicio de la prueba, se llama a la API de inicio de sesión, se guarda el token obtenido y se usa en los encabezados de las solicitudes.
- Almacenamiento del token en un contexto global: Por ejemplo, en un marco de pruebas, se puede guardar el token en una variable global o en el contexto de la sesión.
- Transmisión del token a las pruebas: Las pruebas obtienen el token de un lugar común y lo usan para la autorización.
Ejemplo en Python usando requests y fixtures de pytest:
import pytest
import requests
@pytest.fixture(scope='session')
def auth_token():
response = requests.post('https://example.com/api/login', json={'username': 'user', 'password': 'pass'})
return response.json()['token']
def test_scenario_1(auth_token):
headers = {'Authorization': f'Bearer {auth_token}'}
response = requests.get('https://example.com/api/data', headers=headers)
assert response.status_code == 200
def test_scenario_2(auth_token):
headers = {'Authorization': f'Bearer {auth_token}'}
response = requests.post('https://example.com/api/action', headers=headers)
assert response.status_code == 201
Este enfoque permite centralizar la autorización y usarla en diferentes pruebas sin repetir el código.