Sobes.tech
Junior — Middle

Come implementare un sistema di autorizzazione unificato per diversi scenari di test?

sobes.tech AI

Risposta dell'AI

Per implementare un sistema di autorizzazione unificato in diversi scenari di test, di solito si crea un modulo o utilità separata che si occupa del processo di autenticazione e dell'ottenimento dei token di accesso. Questo modulo può essere riutilizzato in tutti i test, evitando duplicazioni di codice e semplificando la manutenzione.

Approcci principali:

  • Utilizzo di API per l'autorizzazione: All'inizio del test, si chiama l'API di login, si salva il token ottenuto e si utilizza negli header delle richieste.
  • Memorizzazione del token in un contesto globale: Ad esempio, nel framework di test, si può salvare il token in una variabile globale o nel contesto della sessione.
  • Trasmissione del token ai test: I test ottengono il token da un punto comune e lo usano per l'autorizzazione.

Esempio in Python con requests e fixture di 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

Questo approccio consente di centralizzare l'autorizzazione e di usarla in diversi test senza ripetere il codice.