pmオブジェクトのAPI
グローバル変数とメソッド
pm
pm: Object;
pmオブジェクトには、APIまたはテストコレクションの実行に関する情報が含まれます。RequestとResponseのデータで使用できます。また、環境変数とグローバル変数の取得(get)または設定(set)で使用できます。
pm.info:Object
pmオブジェクトには、APIまたはテストコレクションの実行に関する情報が含まれます。
pm.info.eventName:String
: 現在実行されているScriptのタイプ。(前処理Scriptまたは後処理Script)pm.info.iteration:Number
: 現在の繰り返し回数。(テストコレクションでのみ有効)pm.info.iterationCount:Number
: 合計の繰り返し回数。(テストコレクションでのみ有効)pm.info.requestName:String
: 現在実行中のAPIの名前。pm.info.requestId:String
: 現在実行中のAPIのID。
pm.sendRequest
pm.sendRequest:Function
pm.sendRequest
は、ScriptでHTTP/HTTPSのRequestを非同期に送信するために使用されます。
- このメソッドでは、コレクションSDKとコールバック関数パラメータと互換性のあるRequestのパラメータを利用できます。コールバックには2つの引数があります。1つ目はエラーで、2つ目はコレクションSDKと互換性のあるResponseです。 より詳しくは Collection SDK documentationをご覧ください。
- 前処理と後処理両方のScriptで使用できます。
// GET example
pm.sendRequest("https://postman-echo.com/get", function(err, res) {
if (err) {
console.log(err);
} else {
pm.environment.set("variable_key", "new_value");
}
});
// Request Parameters Example
const echoPostRequest = {
url: "https://postman-echo.com/post",
method: "POST",
header: {
headername1: "value1",
headername2: "value2",
},
// body: x-www-form-urlencoded
body: {
mode: "urlencoded",
urlencoded: [
{ key: "account", value: "apidog" },
{ key: "password", value: "123456" },
],
},
/*
// body: form-data
body: {
mode: 'formdata',
formdata: [
{ key: 'account', value: 'apidog' },
{ key: 'password', value: '123456' }
]
}
// body: json
header: {
"Content-Type": "application/json", // Add Content-Type in the header
},
body: {
mode: 'raw',
raw: JSON.stringify({ account: 'apidog', password:'123456' }), // serialized the JSON string
}
// body: raw or JSON
body: {
mode: 'raw',
raw: 'body contents',
}
*/
};
pm.sendRequest(echoPostRequest, function(err, res) {
console.log(err ? err : res.json());
});
// Assert on the return result
pm.sendRequest("https://postman-echo.com/get", function(err, res) {
if (err) {
console.log(err);
}
pm.test("response should be okay to process", function() {
pm.expect(err).to.equal(null);
pm.expect(res).to.have.property("code", 200);
pm.expect(res).to.have.property("status", "OK");
});
});
詳細については、以下をご覧ください。
- Request JSON の構造
- Response の構造
pm.variables
pm.variables:
詳しくは Variable SDK documentationをご覧ください。
ローカル変数
異なる変数の優先順位は次のとおり: グローバル変数 < 環境変数 < ローカル変数
pm.variables.has(variableName:String):function → Boolean
: ローカル変数が存在するかを確認します。pm.variables.get(variableName:String):function → *
: ローカル変数を取得します。pm.variables.set(variableName:String, variableValue:String):function → void
: 単一のローカル変数をsetします。pm.variables.replaceIn(variableName:String):function
: 文字列内の動的値を実際値に置き換えます。たとえば、{{variable_name}}。pm.variables.toObject():function → Object
: オブジェクトとして、全ての変数を取得します。
pm.iterationData
pm.iterationData:
テストデータ変数
テストデータは別々に管理されるため、現在、Scriptで直接にテストデータ変数を設定することはサポートしていません。ただし、以下に示すように、Script 中のテストデータ変数にアクセスできます。
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
: 環境変数をunsetします。pm.environment.clear():function
: 現在の環境の全ての環境変数をクリアします。
上記の操作はローカル値の読み取りと書き込みのみであり、リモート値の読み取りまたは書き込みはしないことに注意してください。
pm.globals
pm.globals.has(variableName:String):function → Boolean
: グローバル変数が存在するかを確認します。pm.globals.get(variableName:String):function → *
: グローバル変数を取得します。pm.globals.set(variableName:String, variableValue:String):function
: グローバル変数を設定します。pm.globals.replaceIn(variableName:String):function
: 文字列内の動的値を実際値に置き換えます。例えば:{{variable_name}}
。前処理Scriptで取得するRequestのパラメータに変数が含まれる場合、
pm.globals.replaceIn
を利用してその変数を実際値に置き換えることができます。pm.globals.toObject():function → Object
: オブジェクトとして全てのグローバル変数を取得します。pm.globals.unset(variableName:String):function
: グローバル変数をunsetします。pm.globals.clear():function
: 現在環境のグローバル変数を全てクリアします。
上記で述べた全ての操作の対象は ローカル値
のみで、 リモート値
は対象外となります。.
pm.request
pm.request
: より詳しくは Request SDK documentationをご覧ください。
request
はAPI Requestのオブジェクトです。前処理Scriptでは送信待ちのRequestを指し、後処理Scriptでは、送信済みのRequestを指します。
request
には次の情報が含まれます。
pm.request.url
:Url: 現在のRequestのURLpm.request.headers
:HeaderList: 現在 RequestのHeaderのリストpm.request.method
:String: 現在 Requestの通信方式:GET、POSTなど
pm.request.body
: RequestBody: 現在 RequestのBodypm.request.headers.add({ key: headerName:String, value: headerValue:String}):function
: KeyがheaderNameのHeaderを現在のRequestに追加します。pm.request.headers.remove(headerName:String):function
: KeyがheaderNameのHeaderを現在のRequestから削除します。pm.request.headers.upsert({ key: headerName:String, value: headerValue:String}):function
: KeyがheaderNameのHeaderを現在のRequestにUpsertします。(Keyはすでに存在する場合は変更されます)
下記のAPIは
後処理Script
でのみ利用できます。
pm.response
pm.response
: より詳しくは Response SDK documentation をご覧ください。
pm.response
を利用して、後処理Script 中のResponse 情報にアクセスできます。
pm.responseには次の情報が含まれています:
pm.response.code:Number
pm.response.status:String
pm.response.headers
:HeaderListpm.response.responseTime:Number
pm.response.responseSize:Number
pm.response.text():Function → String
pm.response.json():Function → Object
pm.cookies
pm.cookies: より詳しくは CookieList SDK documentation をご覧ください。
Cookieは、現在のRequestのドメイン名の下にあるCookieのリストです。
pm.cookies.has(cookieName:String):Function → Boolean
名前がcookieNameのCookie 値が存在するかを確認します。pm.cookies.get(cookieName:String):Function → String
cookieNameからCookie 値を取得します。pm.cookies.toObject:Function → Object
現在のドメインのすべてのCookieをオブジェクトとして取得します。pm.cookies.jar().clear(pm.request.url)
すべてのCookieをクリアします。
pm.cookiesはAPIのRequestが送信した後に返されたCookieで、APIのRequestが送信するCookieではありません。
pm.test
pm.test(testName:String, specFunction:Function):Function
この関数は、結果が期待に合わせるかというアサーションをする時に使われます。
次の例は、Responseが正しいかどうかを判断できます:
pm.test("response should be okay to process", function() {
pm.response.to.not.be.error;
pm.response.to.have.jsonBody("");
pm.response.to.not.have.jsonBody("error");
});
Callbackの非必須関数の done を使用して非同期テストを実行できます。
pm.test("async test", function(done) {
setTimeout(() => {
pm.expect(pm.response.code).to.equal(200);
done();
}, 1500);
});
pm.test.index():Function → Number
特定の場所からテストの合計数を取得します。
pm.expect
pm.expect(assertion:*):Function → Assertion
pm.expect
は、アサーションのメソッドです。より詳しくはChaiJS expects BDD library documentationをご覧ください。
このメソッドは、Responseまたは変数でデータのアサーションのために設計されています。pm.expectに関するより多くの例は Assertion library examplesをご覧ください。
ResponseオブジェクトのアサーションAPIリスト
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であるかを確認します。