Junior — Middle
Чӣ гуна системаи ягонаи иҷозат додан барои сценарияҳои гуногуни озмоишӣ амалӣ кардан мумкин аст؟
sobes.tech AI
Ҷавоб аз AI
Барои татбиқи системаи ягонаи иҷозат дар сенарияҳои гуногуни тестӣ, одатан як модул ё ёрдамчӣ ҷудогона сохта мешавад, ки масъул барои раванди аутентификация ва гирифтани токенҳои дастрасӣ мебошад. Ин модул метавонад дар ҳамаи тестҳо такроршаванда истифода шавад, ки ин аз такроршавии коди тестӣ пешгирӣ мекунад ва нигоҳдориро осон мекунад.
Равишҳои асосӣ:
- Истифодаи API барои иҷозат: Дар оғози тест API-и воридшавӣ даъват карда мешавад, токени гирифташуда нигоҳ дошта мешавад ва дар сарлавҳаҳои дархостҳо истифода мешавад.
- Захира кардани токен дар контексти глобалӣ: Масалан, дар рамзи тест, токен метавонад дар тағйирёбандаи глобалӣ ё дар контексти сессия нигоҳ дошта шавад.
- Пас додани токен ба тестҳо: Тестҳо токенро аз як ҷойи умумӣ мегиранд ва барои иҷозат истифода мебаранд.
Масалан дар Python бо истифодаи requests ва 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
Ин усул имкон медиҳад, ки иҷозатро марказӣ кард ва онро дар тестҳои гуногун истифода бурд, бе такрор кардани коди тестӣ.