Sobes.tech
Junior — Middle

Como implementar um sistema de autorização unificado para diferentes cenários de teste?

sobes.tech IA

Resposta da IA

Para implementar um sistema de autorização unificado em diferentes cenários de teste, geralmente cria-se um módulo ou utilitário separado que é responsável pelo processo de autenticação e obtenção de tokens de acesso. Este módulo pode ser reutilizado em todos os testes, evitando duplicação de código e facilitando a manutenção.

Abordagens principais:

  • Uso de API para autorização: No início do teste, chama-se a API de login, o token obtido é guardado e utilizado nos cabeçalhos das requisições.
  • Armazenamento do token em um contexto global: Por exemplo, em um framework de testes, o token pode ser guardado em uma variável global ou no contexto da sessão.
  • Transmissão do token para os testes: Os testes obtêm o token de um local comum e o usam para autorização.

Exemplo em Python usando requests e fixtures do 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

Este método permite centralizar a autorização e usá-la em diferentes testes sem repetir o código.