Sobes.tech
Junior — Middle

Ako implementovať jednotný systém autorizácie pre rôzne testovacie scenáre?

sobes.tech AI

Odpoveď od AI

Za implementáciu jednotného systému autorizácie v rôznych testovacích scenároch sa zvyčajne vytvára samostatný modul alebo utilitárny program, ktorý je zodpovedný za proces autentifikácie a získavanie tokenov prístupu. Tento modul je možné opakovane použiť vo všetkých testoch, čím sa zabráni duplikácii kódu a uľahčí sa údržba.

Hlavné prístupy:

  • Použitie API na autorizáciu: Na začiatku testu sa volá API prihlásenia, získaný token sa uloží a používa sa v hlavičkách požiadaviek.
  • Uloženie tokenu v globálnom kontexte: Napríklad v rámci testovacieho frameworku môže byť token uložený v globálnej premennej alebo v kontexte relácie.
  • Prenos tokenu do testov: Testy získavajú token z jedného spoločného miesta a používajú ho na autorizáciu.

Príklad v Pythone s requests a 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

Tento prístup umožňuje centralizovať autorizáciu a používať ju v rôznych testoch bez opakovania kódu.