Sobes.tech
Junior — Middle

Hoe implementeer je een uniform autorisatiesysteem voor verschillende testscenario's?

sobes.tech AI

Antwoord van AI

Om een ​​geïntegreerd autorisatiesysteem in verschillende testscenario's te implementeren, wordt meestal een aparte module of hulpprogramma gemaakt die verantwoordelijk is voor het authenticatieproces en het verkrijgen van toegangstokens. Deze module kan in alle tests worden hergebruikt, waardoor code duplicatie wordt voorkomen en het onderhoud wordt vereenvoudigd.

Belangrijkste benaderingen:

  • Gebruik van API voor autorisatie: Aan het begin van de test wordt de login-API aangeroepen, wordt het verkregen token opgeslagen en gebruikt in de headers van de verzoeken.
  • Opslag van het token in een globale context: Bijvoorbeeld, in het testframework kan het token worden opgeslagen in een globale variabele of in de sessiecontext.
  • Overdracht van het token aan de tests: De tests halen het token uit een gemeenschappelijke plek en gebruiken het voor autorisatie.

Voorbeeld in Python met requests en pytest fixtures:

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

Deze aanpak maakt het mogelijk om de autorisatie te centraliseren en in verschillende tests te gebruiken zonder de code te herhalen.