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 つの引数があります。1 つ目はエラーで、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.headers:HeaderList: 現在のリクエストのヘッダーリストです。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 を持つヘッダーを upsert します。キーがすでに存在する場合は変更されます。
次の 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 は、現在のリクエストのドメイン名配下の 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 リクエストによって送信された Cookie ではなく、API リクエスト後に返される Cookie です。
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 かどうかを確認します。