Apidog의 스크립팅 엔진은 pm 객체를 사용하여 요청, 응답 및 변수에 관한 데이터에 접근합니다. 이 방식은 Postman과 호환됩니다.pm 객체#
pm 객체에는 다음과 같은 주요 속성이 있습니다.| 속성 | 데이터 유형 | 설명 |
|---|
pm.info.eventName | String | 현재 실행 중인 스크립트의 유형입니다(전처리기 스크립트 또는 후처리기 스크립트). |
pm.info.iteration | Number | 현재 반복 횟수입니다(테스트 컬렉션에서만 유효합니다). |
pm.info.iterationCount | Number | 전체 반복 횟수입니다(테스트 컬렉션에서만 유효합니다). |
pm.info.requestName | String | 현재 실행 중인 API의 이름입니다. |
pm.info.requestId | String | 현재 실행 중인 API의 ID입니다. |
요청 보내기(pm.sendRequest)#
pm.sendRequest는 스크립트에서 비동기 HTTP/HTTPS 요청을 보내는 데 사용됩니다.이 메서드는 Collection SDK와 호환되는 요청 매개변수와 콜백 함수 매개변수를 허용합니다. 콜백에는 2개의 인수가 있습니다. 첫 번째는 오류이고 두 번째는 Collection SDK와 호환되는 응답입니다. 자세한 내용은 Collection SDK documentation을 참조하십시오. 전처리기 및 후처리기 스크립트 모두에서 사용할 수 있습니다.
더 많은 참조 자료는 다음을 방문해 주십시오.pm.variables#
로컬 변수입니다. 서로 다른 변수의 우선순위는 다음과 같습니다.Local Variables > Environment Variables > Global Variables Shared within Project > Global Variables Shared within Team.pm.variables.has(variableName:String):function → Boolean: 임시 변수가 존재하는지 확인합니다.
pm.variables.get(variableName:String):function → *: 임시 변수를 가져옵니다.
pm.variables.set(variableName:String, variableValue:String):function → void: 임시 변수를 설정합니다.
pm.variables.replaceIn(variableName:String):function: 문자열 내의 "동적 변수"(예: {{variable_name}})를 실제 값으로 대체합니다. 예:
// Define a string containing a dynamic variable
let stringWithVariable = "Hello, {{username}}";
// Use the replaceIn method to replace the {{username}} placeholder
let realValueString = pm.variables.replaceIn(stringWithVariable);
// Output the replaced value
console.log(realValueString); // Output: "Hello, john_doe"
pm.variables.replaceInAsync(variableName:String):function: 문자열 내의 "동적 값 표현식"(예: {{$person.fullName}})을 실제 값으로 대체합니다. 이 메서드는 Promise를 반환하므로 호출할 때 await를 사용해야 합니다. 예:
// Define a string containing a dynamic value expression
let stringWithVariable = "Hello, {{$person.fullName}}";
// Use the replaceInAsync method to replace the {{$person.fullName}}
let realValueString = await pm.variables.replaceInAsync(stringWithVariable);
pm.variables.toObject():function → Object: 모든 로컬 변수를 객체로 가져옵니다.
pm.iterationData#
현재 테스트 데이터는 별도로 관리되므로 스크립트에서 테스트 데이터 변수를 직접 설정하는 것은 지원하지 않습니다. 그러나 아래와 같이 스크립트에서 변수에 접근할 수 있습니다.pm.iterationData.has(variableName:String):function → Boolean: 테스트 변수가 존재하는지 확인합니 다.
pm.iterationData.get(variableName:String):function → *: 테스트 변수를 가져옵니다.
pm.iterationData.replaceIn(variableName:String):function: 문자열의 동적 변수를 실제 값으로 대체합니다. 예: {{variable_name}}.
pm.iterationData.toObject():function → Object: 모든 로컬 변수를 객체로 가져옵니다.
pm.environment#
pm.environment.name:String: 환경 이름입니다.
pm.environment.has(variableName:String):function → Boolean: 환경 변수가 존재하는지 확인합니다.
pm.environment.get(variableName:String):function → *: 환경 변수를 가져옵니다.
pm.environment.set(variableName:String, variableValue:String):function: 환경 변수를 설정합니다.
pm.environment.replaceIn(variableName:String):function: 문자열의 동적 변수를 실제 값으로 대체합니다. 예: {{variable_name}}.
pm.environment.toObject():function → Object: 모든 로컬 변수를 객체로 가져옵니다.
pm.environment.unset(variableName:String):function: 환경 변수 설정을 해제합니다.
pm.environment.clear():function: 현재 환경 아래의 모든 환경 변수를 지웁니다.
팁: 위에서 언급한 작업은 현재 값만 읽고 쓰며, 원격 값은 읽거나 쓰지 않습니다.pm.moduleVariables#
pm.moduleVariables: Object모듈 수준 변수의 Current Value를 관리하는 데 사용됩니다.pm.moduleVariables.has(variableName: String): function → Boolean
특정 모듈 변수가 존재하는지 확인합니다.
pm.moduleVariables.get(variableName: String): function → *
특정 모듈 변수의 값을 검색합니다.
pm.moduleVariables.set(variableName: String, variableValue: String): function
특정 모듈 변수의 값을 설정합니다.
pm.moduleVariables.replaceIn(variableName: String): function
문자열 내의 {{variable}} 자리 표시자를 실제 값으로 대체합니다.
pm.moduleVariables.toObject(): function → Object
모든 모듈 변수를 키-값 객체로 반환합니다.
pm.moduleVariables.unset(variableName: String): function
특정 모듈 변수를 삭제합니다.
pm.moduleVariables.clear(): function
현재 모듈 내의 모든 모듈 변수를 지웁니다.
호환성 참고:
pm.collectionVariables는 pm.moduleVariables와 동일한 방식으로 작동하며 서로 바꿔 사용할 수 있습니다.
pm.globals#
pm.globals.has(variableName:String):function → Boolean: 전역 변수가 존재하는지 확인합니다.
pm.globals.get(variableName:String,variableScope:String):function → *: 전역 변수를 가져옵니다. 변수의 범위를 지정하려면 'PROJECT'(기본값) 또는 'TEAM'을 사용하십시오.
pm.globals.set(variableName:String,variableValue:String, variableScope:String):function: 전역 변수를 설정합니다. 변수의 범위를 지정하려면 'PROJECT'(기본값) 또는 'TEAM'을 사용하십시오.
pm.globals.replaceIn(variableName:String):function: 문자열의 동적 변수를 실제 값으로 대체합니다. 예: {{variable_name}}.전처리기 스크립트에서 변수를 포함하는 요청 매개변수의 값을 가져오려면 pm.globals.replaceIn을 사용하여 변수를 실제 값으로 대체하십시오.
pm.globals.toObject():function → Object: 모든 전역 변수를 객체로 가져옵니다.
pm.globals.unset(variableName:String,variableScope:String):function: 전역 변수 설정을 해제합니다. 변수의 범위를 지정하려면 'PROJECT'(기본값) 또는 'TEAM'을 사용하십시오.
pm.globals.clear():function: 현재 환경 아래의 모든 전역 변수를 지웁니다.
1.
위의 모든 작업은 initial values가 아니라 current values에만 영향을 줍니다.
2.
'TEAM' 범위로 set을 사용할 경우 기존 팀 변수의 현재 값만 업데이트합니다. 팀 변수가 존재하지 않으면 생성되지 않습니다. 대신 해당 변수는 로컬 변수로 처리됩니다.
pm.request#
request는 API 요청 객체입니다. 전처리기 스크립트에서는 전송될 요청입니다. 후처리기 스크립트에서는 이미 전송된 요청입니다.pm.request.url:Url: 현재 요청의 URL입니다.pm.request.getBaseUrl(): 현재 런타임 환경에서 선택한 BASE URL을 검색합니다. 이 기능은 버전 2.1.39 이후부터 지원됩니다.
pm.request.method:String: GET, POST 등 현재 요청의 메서드입니다.
pm.request.headers.add({ key: headerName:String, value: headerValue:String}):function: 현재 요청에 headerName 키를 가진 헤더를 추가합니다.
pm.request.headers.remove(headerName:String):function: 현재 요청에서 headerName 키를 가진 헤더를 삭제합니다.
pm.request.headers.upsert({ key: headerName:String, value: headerValue:String}):function: 현재 요청에서 headerName 키를 가진 헤더를 업서트합니다. 키가 이미 존재하면 수정됩니다.
다음 API는 postprocessor scripts에서만 사용할 수 있습니다.
pm.response#
후처리기 스크립트에서 반환 응답 정보에 접근하려면 pm.response를 사용하십시오.pm.response에는 다음 정보가 포함됩니다.pm.response.status:String
pm.response.responseTime:Number
pm.response.responseSize:Number
pm.response.text():Function → String
pm.response.json():Function → Object
pm.cookies#
Cookies는 현재 요청의 도메인 이름 아래에 있는 쿠키 목록입니다.pm.cookies.has(cookieName:String):Function → Boolean
cookieName의 쿠키 값이 존재하는지 확인합니다.
pm.cookies.get(cookieName:String):Function → String
cookieName에서 쿠키 값을 가져옵니다.
pm.cookies.toObject:Function → Object
현재 도메인 아래의 모든 쿠키를 객체로 가져옵니다.
pm.cookies.jar().clear(pm.request.url)
모든 쿠키를 지웁니다.
pm.cookies는 API 요청이 보낸 쿠키가 아니라 API 요청 이후 반환된 쿠키입니다.
pm.test#
이 함수는 결과가 기대를 충족하는지 어서션하는 데 사용됩니다.아래 예제는 응답이 올바른지 판단하는 데 사용할 수 있습니다.콜백 함수에서 done(선택적 매개변수)을 사용하여 비동기 테스트를 실행할 수 있습니다.pm.test.index():Function → Number
특정 위치의 전체 테스트 수를 가져옵니다.
pm.expect#
pm.expect는 어서션 메서드입니다. 여기에서 ChaiJS expects BDD 라이브러리 문서를 확인하십시오.pm.response.to.have.*#
pm.response.to.have.status(code:Number)
pm.response.to.have.status(reason:String)
pm.response.to.have.header(key:String)
pm.response.to.have.header(key:String, optionalValue:String)
pm.response.to.have.body()
pm.response.to.have.body(optionalValue:String)
pm.response.to.have.body(optionalValue:RegExp)
pm.response.to.have.jsonBody()
pm.response.to.have.jsonBody(optionalExpectEqual:Object)
pm.response.to.have.jsonBody(optionalExpectPath:String)
pm.response.to.have.jsonBody(optionalExpectPath:String, optionalValue:*)
pm.response.to.have.jsonSchema(schema:Object)
pm.response.to.have.jsonSchema(schema:Object, ajvOptions:Object)
pm.response.to.be.*#
빠른 어서션을 위해 기본 제공 pm.response.to.be를 사용할 수 있습니다.pm.response.to.be.info
상태 코드가 1XX인지 확인합니다.
pm.response.to.be.success
상태 코드가 2XX인지 확인합니다.
pm.response.to.be.redirection
상태 코드가 3XX인지 확인합니다.
pm.response.to.be.clientError
상태 코드가 4XX인지 확인합니다.
pm.response.to.be.serverError
상태 코드가 5XX인지 확인합니다.
pm.response.to.be.error
상태 코드가 4XX 또는 5XX인지 확인합니다.
pm.response.to.be.ok
상태 코드가 200인지 확인 합니다.
pm.response.to.be.accepted
상태 코드가 202인지 확인합니다.
pm.response.to.be.badRequest
상태 코드가 400인지 확인합니다.
pm.response.to.be.unauthorized
상태 코드가 401인지 확인합니다.
pm.response.to.be.forbidden
상태 코드가 403인지 확인합니다.
pm.response.to.be.notFound
상태 코드가 404인지 확인합니다.
pm.response.to.be.rateLimited
상태 코드가 429인지 확인합니다.