API 테스트 자동화 - POSTMAN 환경변수 설정

Soyean·2022년 11월 29일
0

API 자동화

목록 보기
4/4

변수 종류

  • 우선 순위는 아래와 같으며 동일한 이름의 변수가 다른 영역에서 선언되면 좁은 범위의 변수에 저장된 값으로 사용됩니다.
    ( ex : 전역 변수 username & 로컬 변수 username인 경우, 로컬 변수 username으로 사용됩니다.)
    Global > Collection > Environment > Data > Local

  • 전역 변수(Global variables) : pm.globals
    collections, requests, test scripts, and environments 모든 영역에서 사용 가능한 변수입니다. 사용할 수 있는 범위가 가장 넓기 때문에 테스트에 적합합니다. ( 개발 단계에서는 좁은 범위의 변수를 사용하는 것이 좋습니다 )

  • 컬렉션 변수(Collection variables) : pm.collectionVariables
    컬렉션 변수는 컬렉션의 요청 전체에서 사용할 수 있으며 환경과 독립적입니다. 컬렉션 변수는 선택한 환경에 따라 변경되지 않는다.컬렉션 변수는 인증 또는 URL 세부 정보와 같이 단일 환경을 사용하는 경우에 적합합니다.

  • 환경 변수(Environment variables) : pm.environment
    환경 변수를 사용하면 다양한 환경으로 작업 범위를 지정할 수 있습니다. 한 번에 하나의 환경을 활성화할 수 있습니다.

  • 데이터 변수(Data variables)
    CSV 및 JSON에서 가져와 Newman 또는 Collection Runner 로 실행할 때 사용할 수 있는 데이터 값입니. request나 collection 실행이 종료되면 값이 저장되지 않는 특징이 있습니다.

  • 로컬 변수(Local variables) : pm.variables
    request scripts에서 사용하는 임시 변수이며, request나 collection 실행이 종료되면 실행 종료 후 값을 초기화 하길 원하는 경우에 적합합니다.
    (로컬 변수 값은 단일 요청 또는 수집 실행으로 범위가 지정되며 실행이 완료되면 더 이상 사용할 수 없습니다.)

변수 저장

  • 스크립트에서 변수 저장

    전역 변수 : pm.globals.set("variable_key", "variable_value");
    컬렉션 변수 : pm.collectionVariables.set("variable_key", "variable_value");
    환경 변수 : pm.environment.set("variable_key", "variable_value");
    지역 변수 : pm.variables.set("variable_key", "variable_value");

  • Environment selector에서 변수 추가
    1) Environment selector에서는 Global/Environment variables를 저장할 수 있습니다.
    버튼 클릭 시,현재 저장된 변수들을 한번에 확인할 수 있다.

    Global/Environment 변수 중 추가하려는 변수 영역의 ADD 을 클릭한 뒤, 변수명과 변수값을 입력합니다.

    2) 변수가 정상 저장되면, 해당 환경에 저장된 변수들을 확인할 수 있다.

변수 사용

  • Request Builder에서 변수 사용
    저장된 변수들은 스크립트에서 사용하는 것 외에도 URL에 변수를 추가하여 request 시에도 사용할 수 있습니다.
    환경 별 변경되는 URL/API 변수 등을 해당 방식으로 사용하면 API 별 변경 없이 환경변수만 변경해도 사용 가능합니다.
    변수는 URL, parameters, headers, authorization, body, and header presets에서 사용 할 수 있습니다.
    url에 아래 예시처럼 {{변수명}}으로 입력해서 사용해야 합니다.
    ex> {{url}}/v1/transactions?startDate={{startDate}}&startingAfter={{startingAfter}}&endDate={{endDate}}

  • Script에서 변수 사용

    1) .get 메서드를 사용하여 변수의 현재 값을 가져옴 (우선순위가 가장 높은 / 범위가 가장 좁은 변수를 가져옵니다.)

    pm.variables.get("variable_key"); //access a variable at any scope including local
    pm.globals.get("variable_key"); //access a global variable
    pm.collectionVariables.get("variable_key"); //access a collection variable
    pm.environment.get("variable_key"); //access an environment variable

    2) Request url 환경변수 설정

    var query = {};
    pm.request.url.query.all().forEach((param) => { query[param.key] = param.value});
    startDate = pm.environment.set("startDate", query.startDate)

profile
주니어 QA 🐥

0개의 댓글