Sobes.tech
Junior — Middle

Cum se implementează un sistem unificat de autorizare pentru diferite scenarii de test?

sobes.tech AI

Răspuns de la AI

Pentru implementarea unui sistem unificat de autorizare în diferite scenarii de testare, se creează de obicei un modul sau utilitar separat care se ocupă de procesul de autentificare și obținerea tokenurilor de acces. Acest modul poate fi reutilizat în toate testele, evitând duplicarea codului și facilitând întreținerea.

Abordări principale:

  • Utilizarea API-ului pentru autorizare: La începutul testului, se apelează API-ul de login, tokenul obținut se salvează și se folosește în anteturile cererilor.
  • Stocarea tokenului în context global: De exemplu, în cadrul framework-ului de testare, tokenul poate fi salvat într-o variabilă globală sau în contextul sesiunii.
  • Transmiterea tokenului către teste: Testele obțin tokenul dintr-un loc comun și îl folosesc pentru autorizare.

Exemplu în Python cu requests și fixtures 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

Această abordare permite centralizarea autorizării și utilizarea acesteia în diferite teste fără a repeta codul.