Postman 기능
설치
Postman은 웹 API를 테스트하기 위한 공식적인 도구입니다. Postman을 사용하려면 인터넷에 연결된 컴퓨터에 설치해야 합니다. 설치는 다운로드 후 실행 파일을 실행하면 됩니다.
설치 Url
API 테스트
POSTMAN 사용해서 로그인 테스트 하기
1.
Postman을 실행합니다.
2.
로그인을 테스트하고자 하는 API의 URL을 입력합니다.
3.
해당 API의 요청 메서드를 선택합니다. (일반적으로 로그인 API는 POST 메서드를 사용합니다.)
4.
Request Body 탭을 선택하고, 로그인에 필요한 정보 (ex. 아이디, 비밀번호)를 입력합니다.
5.
Send 버튼을 클릭하여 요청을 보냅니다.
6.
요청에 대한 응답을 확인합니다. 로그인이 성공하면 성공적인 응답코드(200)와 함께 로그인에 필요한 정보가 반환됩니다. 실패한 경우 실패한 원인에 대한 정보가 반환됩니다.
"detail": "CSRF Failed: CSRF token missing.” 에러 발생 시 대처방안:
1.
settings.py의 부분을 수정한다.
'DEFAULT_AUTHENTICATION_CLASSES': [
# 'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
]
### postman을 통한 테스트에서만 주석처리를 해준다. 일반적으로는 주석처리를 해제하여 사용한다.
YAML
복사
2.
postman을 통해 X-CSRFToken을 자동으로 받아오는 자동화할 수 있는 방법을 사용한다.
a.
Headers 탭에 새로운 변수를 추가해준다.
KEY : X-CSRFToken, VALUE :{{csrftoken}}
b.
Tests탭으로 들어가서 아래의 코드를 작성한다
var xsrfCookie = postman.getResponseCookie("csrftoken");
postman.setGlobalVariable('csrftoken', xsrfCookie.value);
XML
복사
POSTMAN에서 변수가 저장된 곳을 확인하고 싶다.
POSTMAN에서 변수가 저장된 곳을 확인하고 싶다면, Environments 탭에서 해당 환경 변수를 확인할 수 있습니다.
dj_rest_auth 디폴트 토큰 주기와 토큰 주기 변경하는 방법
dj_rest_auth에서는 토큰의 유효 기간을 설정할 수 있습니다. settings.py에서 아래와 같이 설정할 수 있습니다.
REST_AUTH_TOKEN_MODEL = 'rest_framework.authtoken.Token'
REST_AUTH_TOKEN_CREATOR = 'rest_framework.authtoken.models.Token.create'
REST_AUTH_TOKEN_EXPIRED_AT = 'expires_at'
REST_AUTH_TOKEN_MODEL_EXTRA_FIELDS = {}
REST_SESSION_LOGIN = True
Plain Text
복사
토큰의 유효 기간을 설정하려면, 아래와 같은 방법으로 설정할 수 있습니다.
REST_AUTH_TOKEN_CREATOR = 'myapp.models.create_token' # 토큰 생성 함수를 오버라이드합니다.
def create_token(self, user):
from datetime import datetime, timedelta
from rest_framework.authtoken.models import Token
token, _ = Token.objects.get_or_create(user=user)
if datetime.now() >= token.created + timedelta(days=1):
token.delete()
token = Token.objects.create(user=user)
return token
Plain Text
복사
이렇게 설정하면, 토큰의 유효 기간이 1일로 설정됩니다.
DRF에서 POSTMAN 사용해서 JWT 로그인 테스트 하기
1.
Postman을 실행합니다.
2.
JWT 로그인을 테스트하고자 하는 API의 URL을 입력합니다.
3.
해당 API의 요청 메서드를 선택합니다. (일반적으로 로그인 API는 POST 메서드를 사용합니다.)
4.
Request Body 탭을 선택하고, 로그인에 필요한 정보 (ex. 아이디, 비밀번호)를 입력합니다.
5.
Headers 탭에 Authorization 필드를 추가하고, "Bearer {Access Token}" 형식으로 JWT 토큰을 입력합니다.
6.
Send 버튼을 클릭하여 요청을 보냅니다.
7.
요청에 대한 응답을 확인합니다. JWT 로그인이 성공하면 성공적인 응답코드(200)와 함께 JWT 토큰이 반환됩니다. 실패한 경우 실패한 원인에 대한 정보가 반환됩니다.
postman에서 postman.setGlobalVariable 처럼 임의의 환경에 저장하려면 어떻게 해야 할까?
Postman에서 환경 변수를 사용하여 임의의 환경에 값을 저장할 수 있습니다. 예를 들어, postman.setGlobalVariable("variable_name", "value")를 사용하여 값을 저장하고, pm.environment.get("variable_name")를 사용하여 저장된 값을 검색할 수 있습니다.
POSTMAN에서 Tests탭을 이용하여 status(200) 테스트 방법
POSTMAN에서 Tests 탭을 사용하여 API의 HTTP 상태 코드를 테스트할 수 있습니다. 이를 위해서는 Tests 탭에서 아래와 같은 코드를 작성합니다.
pm.test("Status test", function () {
pm.response.to.have.status(200);
});
Plain Text
복사
이 코드는 HTTP 상태 코드가 200인지 확인합니다. 만약 다른 상태 코드를 테스트하려면, pm.response.to.have.status() 함수의 인자를 변경하면 됩니다.
postman에서 json 파일의 값을 변수에 저장하고 싶다.
JSON 형식의 응답을 받았을 경우, pm.response.json() 함수를 사용하여 JSON 데이터를 JavaScript 객체로 변환할 수 있습니다. 이후, pm.environment.set() 함수를 사용하여 원하는 변수에 데이터를 저장할 수 있습니다. 예를 들어, 아래와 같은 코드를 사용하여 JSON 데이터에서 id 값을 추출하여 환경 변수에 저장할 수 있습니다.
var jsonData = pm.response.json();
pm.environment.set("household_id", jsonData.id);
Plain Text
복사