Sobes.tech
Junior — Middle

Ինչպես իրականացնել միացյալ թույլտվության համակարգ տարբեր փորձնական սցենարների համար։

sobes.tech AI

Պատասխան AI-ից

Տարբեր փորձարկման սցենարներում միացյալ թույլտվության համակարգի իրականացումը սովորաբար ենթադրում է առանձին մոդուլ կամ utility ստեղծել, որը պատասխանատու է հաստատման գործընթացի և մուտքի նշանների ստացման համար: Այս մոդուլը կարող է վերօգտագործվել բոլոր փորձարկումներում, ինչը խուսափում է կոդի կրկնությունից և հեշտացնում է սպասարկումը:

Հիմնական մոտեցումները՝

  • API օգտագործում թույլտվության համար: Փորձարկման սկզբում կանչվում է մուտքի API-ն, ստացված նշանը պահվում և օգտագործվում է հարցումների գլխիկներում:
  • Նշանի պահպանում գլոբալ կոնտեքստում: Օրինակ, փորձարկման շրջանակում նշանը կարող է պահվել գլոբալ փոփոխականում կամ սեսիայի կոնտեքստում:
  • Նշանի փոխանցում փորձարկումներին: Փորձարկումները ստանում են նշանը ընդհանուր վայրից և օգտագործում են այն թույլտվության համար:

Python-ում requests և 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

Այս մոտեցումը թույլ է տալիս կենտրոնականացնել թույլտվությունը և օգտագործել այն տարբեր փորձարկումներում՝ առանց կոդի կրկնության։