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

Scriptsを使用して、Requestの情報を読み取る/変更する

pm.requestを使用してRequestの情報を読み取り/変更できます。

ご注意:
  • Scriptsを使用して、すべてのRequestのパラメータを取得できますが、HeaderとQueryパラメータの変更にのみ使用できます。
  • HeaderとQueryパラメータの変更は前処理Scriptでのみ有効ですが、後処理Scriptで適用されません。
  • Scriptを使用して取得したAPIのパラメータに変数が含まれている場合、それは相応の値に置き換えられません。 pm.variables.replaceInメソッドを使用して実際値を取得する必要があります。
// pm.variables.replaceIn: handling variables in parameters
var body = pm.variables.replaceIn(pm.request.body.raw);
var jsonData = JSON.parse(body);

URL 関連情報

// Get an url object.
var urlObj = pm.request.url;

// Get the full url of the API request
var url = urlObj.toString();

// Get protocols (http or https).
var protocol = urlObj.protocol;

// Get the port.
var port = urlObj.port;

Headerのパラメータ

Headerのパラメータの取得:

// Get header parameters.
var headers = pm.request.headers;

// Get the value of the field1 key from the header.
var field1 = headers.get("field1");

// Get all header parameters as key-value objects.
var headersObject = headers.toObject();

// Iterate over the entire header.
headers.each((item) => {
console.log(item.key); // log the item key
console.log(item.value); // log the item value
});

Headerのパラメータの変更:

// Get header parameters.
var headers = pm.request.headers;

// Add a header parameter.
headers.add({
key: "field1",
value: "value1",
});

// Modify a header parameter (add a header parameter if it does not exist).
headers.upsert({
key: "field2",
value: "value2",
});

Queryパラメータ

Queryパラメータの取得:

// Get query parameters.
var queryParams = pm.request.url.query;

// Get the value of the field1 key from the header.
var field1 = queryParams.get("field1");

// Get all header parameters as key-value objects.
var quertParamsObject = queryParams.toObject();

// Iterate over the entire header.
queryParams.each((item) => {
console.log(item.key); // log the item key
console.log(item.value); // log the item value
});

Queryパラメータの変更:

// Get a query parameter.
var queryParams = pm.request.url.query;

// Add a query parameter.
queryParams.add({
key: "field1",
value: "value1",
});

// Modify a query parameter (add a query parameter if it does not exist).
queryParams.upsert({
key: "field2",
value: "value2",
});

Bodyパラメータ

Bodyパラメータは、pm.request.body.から来ています。pm.request.bodyは、RequestBodyの例になります。

より詳しくはhttp://www.postmanlabs.com/postman-collection/RequestBody.htmlをご覧ください。

ご案内:
  • Bodyのデータ変更については、Body 内の変数を参照して、前処理Scriptで変数の値を設定することで変更することをお勧めします。
  • Apidog 1.4.16 以降のバージョンでは、Bodyパラメータの直接変更をサポートしています。下記の使用方法の例を参照してください。
var body = pm.request.body.toJSON();
console.log("body object", body);

var bodyStr = body.raw;
console.log("body string", bodyStr);

var bodyJSON = JSON.parse(bodyStr);
bodyJSON.id = 100;
pm.request.body.update(JSON.stringify(bodyJSON, null, 2));
console.log("Modified body", pm.request.body.toJSON());

1. Bodyタイプがform-dataの場合

form-dataの情報を取得する:

// When body is form-data, use pm.request.body.formdata to get request parameters.
var formData = pm.request.body.formdata;

// Get the value of the field1 key from the header.
var field1 = formData.get("field1");
console.log(field1); // log field 1

// Get all header parameters as key-value objects.
var formdataObject = formData.toObject();
console.log(formdataObject); // log formdataObject

// Iterate over form-data.
formData.each((item) => {
console.log(item.key); // log the item key
console.log(item.value); // log the item value
});

2. Bodyタイプがx-www-form-urlencodeの場合

x-www-form-urlencodeの情報を取得する:

// When body is x-www-form-urlencode, use pm.request.body.urlencoded to get request parameters.
var formData = pm.request.body.urlencoded;

// Get the value of the field1 key from the header.
var field1 = formData.get("field1");

// Get all header parameters as key-value objects.
var formdataObject = formData.toObject();

// Iterate over form-data.
formData.each((item) => {
console.log(item.key); // log the item key
console.log(item.value); // log the item value
});

3. BodyタイプはJSONの場合

JSONの情報を取得する:

// When body type is json, use pm.request.body.raw to get request parameters.
try {
var jsonData = JSON.parse(pm.request.body.raw);
console.log(jsonData); // log JSON data.
} catch (e) {
console.log(e);
}

4. Bodyタイプがrawの場合

rawの情報を取得する:

// When body type is raw, use pm.request.body.raw to get request parameters.

var raw = pm.request.body.raw;
console.log(raw); // log raw data.