メインコンテンツまでスキップ

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");
});
});

詳細については、以下をご覧ください。

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のURL
  • pm.request.headers:HeaderList: 現在 RequestのHeaderのリスト
    • pm.request.method:String: 現在 Requestの通信方式:GET、POSTなど
  • pm.request.body: RequestBody: 現在 RequestのBody
  • pm.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:HeaderList
  • pm.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:*):FunctionAssertion

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であるかを確認します。