Sobes.tech
Junior — Middle

Kako implementirati jedinstveni sistem autorizacije za različite testne scenarije?

sobes.tech АИ

Одговор од АИ

Za implementaciju jedinstvenog sistema autorizacije u različitim test scenarijima, obično se kreira poseban modul ili utilitarni program koji je odgovoran za proces autentifikacije i dobijanje tokena za pristup. Ovaj modul može biti ponovo korišćen u svim testovima, čime se izbegava dupliranje koda i olakšava održavanje.

Glavni pristupi:

  • Korišćenje API-ja za autorizaciju: Na početku testa, poziva se API za prijavu, dobijeni token se čuva i koristi u zaglavljima zahteva.
  • Skladištenje tokena u globalnom kontekstu: Na primer, u okviru test okvira, token se može sačuvati u globalnoj promenljivoj ili u kontekstu sesije.
  • Prenos tokena u testove: Testovi dobijaju token iz zajedničkog mesta i koriste ga za autorizaciju.

Primer u Pythonu sa requests i fixtures od 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

Ovaj pristup omogućava centralizaciju autorizacije i njeno korišćenje u različitim testovima bez ponovnog pisanja koda.