Junior — Middle
Wie implementiert man ein einheitliches Autorisierungssystem für verschiedene Testszenarien?
sobes.tech KI
Antwort von AI
Um ein einheitliches Autorisierungssystem in verschiedenen Testszenarien zu implementieren, wird in der Regel ein separates Modul oder Utility erstellt, das für den Authentifizierungsprozess und das Abrufen von Zugriffstokens verantwortlich ist. Dieses Modul kann in allen Tests wiederverwendet werden, was Code-Duplikate vermeidet und die Wartung erleichtert.
Hauptansätze:
- Verwendung der API zur Autorisierung: Zu Beginn des Tests wird die Login-API aufgerufen, das erhaltene Token gespeichert und in den Anfrage-Headern verwendet.
- Speicherung des Tokens im globalen Kontext: Zum Beispiel kann im Testframework das Token in einer globalen Variablen oder im Sitzungs-Context gespeichert werden.
- Weitergabe des Tokens an die Tests: Die Tests holen das Token aus einer gemeinsamen Stelle und verwenden es für die Autorisierung.
Beispiel in Python mit requests und 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
Dieses Vorgehen ermöglicht die Zentralisierung der Autorisierung und deren Verwendung in verschiedenen Tests, ohne Code zu duplizieren.