파이썬으로 구현하는 JWT 토큰 기반의 API 테스트 자동화 방법

API 테스트 자동화는 소프트웨어 개발에서 중요한 부분이며, 토큰 기반의 인증 시스템을 사용하는 경우 JWT(Json Web Token)은 많이 사용되는 인증 방식 중 하나입니다. 이번 포스트에서는 파이썬을 사용하여 JWT 토큰 기반의 API 테스트를 자동화하는 방법을 알아보겠습니다.

1. 필요한 패키지 설치

API 테스트 자동화를 위해 다음과 같은 패키지를 설치해야 합니다.

pip install requests
pip install pyjwt

2. JWT 토큰 생성과 검증

API 테스트를 진행하기 전에 JWT 토큰을 생성하고 검증할 수 있는 기능이 필요합니다. pyjwt 패키지를 사용하여 간단히 구현할 수 있습니다.

import jwt

# 토큰 생성
def create_token():
    payload = {'user_id': '1234'}
    secret_key = 'your_secret_key'
    token = jwt.encode(payload, secret_key, algorithm='HS256')
    return token

# 토큰 검증
def verify_token(token):
    secret_key = 'your_secret_key'
    try:
        decoded = jwt.decode(token, secret_key, algorithms=['HS256'])
        return decoded['user_id']
    except jwt.ExpiredSignatureError:
        return 'expired'
    except jwt.InvalidSignatureError:
        return 'invalid'

위 코드에서 create_token 함수는 페이로드와 시크릿 키를 사용하여 JWT 토큰을 생성합니다. verify_token 함수는 토큰을 검증하고 검증 결과를 반환합니다.

3. API 테스트 자동화

이제 JWT 토큰을 사용하여 API 테스트를 자동화하는 방법을 알아보겠습니다. requests 모듈을 사용하여 HTTP 요청을 보낼 수 있습니다.

import requests

def send_request(url, token):
    headers = {'Authorization': f'Bearer {token}'}

    try:
        response = requests.get(url, headers=headers)
        return response.json()
    except requests.RequestException as error:
        return {'error': str(error)}

위 코드에서 send_request 함수는 주어진 URL에 GET 요청을 보내고 헤더에 JWT 토큰을 포함시킵니다. 응답을 JSON 형식으로 반환합니다.

4. 예제 사용법

아래는 위에서 작성한 함수들을 사용하여 API 테스트를 자동화하는 예제입니다.

token = create_token()
url = 'https://api.example.com/users'
response = send_request(url, token)

print(response)

위 코드에서는 create_token 함수를 사용하여 토큰을 생성하고, send_request 함수를 사용하여 API 요청을 보냅니다. 응답 결과를 출력합니다.

마무리

파이썬을 사용하여 JWT 토큰 기반의 API 테스트를 자동화하는 방법에 대해 알아보았습니다. JWT 토큰을 생성하고 검증하는 방법부터 실제 API 요청을 보내는 방법까지 다양한 기능을 사용할 수 있습니다. 이를 통해 API 테스트 자동화를 효과적으로 수행할 수 있습니다.

#JWT #API테스트