Sobes.tech
Junior — Middle

Comment mettre en œuvre un système d'autorisation unifié pour différents scénarios de test?

sobes.tech IA

Réponse de l'IA

Pour mettre en œuvre un système d’autorisation unifié dans différents scénarios de test, on crée généralement un module ou une utilité séparée qui gère le processus d’authentification et l’obtention de jetons d’accès. Ce module peut être réutilisé dans tous les tests, ce qui évite la duplication du code et facilite la maintenance.

Approches principales :

  • Utilisation de l’API pour l’autorisation : Au début du test, l’API de connexion est appelée, le jeton obtenu est sauvegardé et utilisé dans les en-têtes des requêtes.
  • Stockage du jeton dans un contexte global : Par exemple, dans un framework de test, le jeton peut être stocké dans une variable globale ou dans le contexte de la session.
  • Transmission du jeton aux tests : Les tests récupèrent le jeton d’un endroit commun et l’utilisent pour l’autorisation.

Exemple en Python avec requests et 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

Cette approche permet de centraliser l’autorisation et de l’utiliser dans différents tests sans répéter le code.