EchoAPIでの実行前および実行後スクリプトの活用
実行前スクリプトの紹介
EchoAPIでの実行前および実行後スクリプトの活用
実行前スクリプトの紹介
EchoAPIの実行前スクリプトは、HTTPリクエストが送信される前に特定のタスクを実行するために設計されています。これらのスクリプトは、グローバル変数の定義、リクエストヘッダーの操作、JavaScriptを使った複雑な計算など、さまざまな目的で使用できます。
1. JavaScriptを使った複雑な計算
動的に値を生成したり、複雑な計算を行う関数を作成できます。たとえば、ランダムな数字と文字列を結合して、グローバル変数に割り当てる例です:
function _random(){
return 'Hello, Sky ' + Math.random();
}
pm.globals.set("random_var", _random());
2. 情報のログ出力
以下のようにして、データをログに出力できます:
console.log("メッセージ");
3. 環境変数の管理
pm.environment.set("key", "value"); // 環境変数 'key' に 'value' を設定
pm.environment.get("key"); // 環境変数 'key' の値を取得
pm.environment.delete("key"); // 環境変数 'key' を削除
pm.environment.clear(); // 全ての環境変数をクリア
4. グローバル変数の管理
pm.globals.set("key", "value"); // グローバル変数 'key' に 'value' を設定
pm.globals.get("key"); // グローバル変数 'key' の値を取得
pm.globals.delete("key"); // グローバル変数 'key' を削除
pm.globals.clear(); // 全てのグローバル変数をクリア
5. リクエストパラメータの管理
リクエストオブジェクトを使用して、リクエストパラメータを操作・ログ出力できます。

6. 動的なヘッダー管理
pm.setRequestHeader("key", "value"); // ヘッダーにキーと値を動的に追加
pm.removeRequestHeader("key"); // ヘッダーからキーに対応するパラメータを削除
7. クエリパラメータの管理
pm.setRequestQuery("key", "value"); // クエリパラメータ "key" と値 "value" を動的に追加
pm.removeRequestQuery("key"); // クエリパラメータ "key" を削除
8. ボディパラメータの管理
apt.setRequestBody("key", "value"); // ボディにキーと値を動的に追加
apt.removeRequestBody("key"); // ボディからキーに対応するパラメータを削除
9. HTTPリクエストの送信
非同期でHTTPリクエストを送信し、レスポンスを処理する例:
$.ajax({
url: "https://echoapi.sky.com/get.php",
method: "POST",
headers: {
"content-type": "application/json"
},
timeout: "10000",
data: JSON.stringify({"email": "xxx@xxx.com", "password": "123456"}),
success: function (response) {
pm.globals.set("bigint", response.bigint);
}
});
同期的にHTTPリクエストを送信する場合:
await $.ajax({
url: "https://echoapi.sky.com/get.php",
method: "POST",
headers: {
"content-type": "application/json"
},
timeout: "10000",
data: JSON.stringify({"email": "xxx@xxx.com", "password": "123456"}),
success: function (response) {
pm.globals.set("bigint", response.bigint);
}
});
実行後スクリプト機能(リクエスト送信後に実行されるスクリプト)
実行後スクリプトは、HTTPリクエストが完了した後に実行され、レスポンスデータを処理することができます。
1. JavaScript関数を使用して複雑な計算を行う
実行前スクリプトと同様です。
2. 環境変数の定義、取得、削除、クリア
実行前スクリプトと同様です。
3. グローバル変数の定義、取得、削除、クリア
実行前スクリプトと同様です。
4. リクエストパラメータの取得(リクエストオブジェクト)
実行前スクリプトと同様です。
5. レスポンスパラメータの取得(レスポンスオブジェクト)
レスポンスパラメータを含むオブジェクトで、リクエスト送信後にのみ使用可能です。レスポンスデータを表示したり、使用したりできます。
response.raw: 生のレスポンスデータ
response.raw.status // レスポンスのステータスコード(200、301、404など)
response.raw.responseTime // レスポンス時間(ミリ秒)
response.raw.type // レスポンスタイプ(jsonなど)
response.raw.responseText // レスポンステキスト
response.headers.server // レスポンスヘッダー
response.cookies.PHPSESSION // レスポンスクッキー
response.json: JSON形式のレスポンスデータ
response.json.data.token // response.json.data["token"]
6. HTTPリクエストの送信
実行前スクリプトと同様です。
7. リクエスト結果の正確性をテスト(アサート)
実行後スクリプトでのグローバル変数の定義
グローバル変数は、手動で更新しなければならない場合がありますが、実行後スクリプトで定義することで、スクリプトが実行されるたびに自動的に更新されます。
- ログインインターフェースの実行後スクリプトで、レスポンスデータを使用してグローバルトークン変数を定義または更新します。
- トークンを使用する他のインターフェースは、直接それを呼び出すことができます。
グローバル変数の設定:

グローバル変数の使用:

実行前スクリプトのビジネスプロセス
- アカウントを登録
- 登録したアカウントでログイン
- ログイン後、トークン変数を更新
let username = "test007";
let email = pm.environment.get("email");
let password = "123456";
let password_confirmation = "123456";
pm.setRequestHeader("Content-Type","application/json");
pm.setRequestBody("name", username);
pm.setRequestBody("email", email);
pm.setRequestBody("password", password);
pm.setRequestBody("password_confirmation", password_confirmation);
sleep(3000)
let host = pm.environment.get("host");
await $.ajax({
"url": "https://" + host + "/api/auth/login",
"method": "POST",
"content-type": "application/json",
"data": JSON.stringify({
"email": email,
"password": password
}),
"success": function(response){
response = typeof response === "object" ? response : JSON.parse(response);
console.log(response);
pm.globals.set("access_token", response.access_token);
}
});
EchoAPIスクリプトを習得することで、開発者は複雑なワークフローを自動化し、リクエスト間でデータを効率的に管理し、APIテストのプロセスを強化できます。
메타데이터
- post_id
- 3b4af53bfe70
- slug
- echoapiでの実行前および実行後スクリプトの活用-3b4af53bfe70
- url
- https://medium.com/@kotya1/echoapi%E3%81%A7%E3%81%AE%E5%AE%9F%E8%A1%8C%E5%89%8D%E3%81%8A%E3%82%88%E3%81%B3%E5%AE%9F%E8%A1%8C%E5%BE%8C%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%AE%E6%B4%BB%E7%94%A8-3b4af53bfe70
- canonical_url
- https://medium.com/@kotya1/echoapi%E3%81%A7%E3%81%AE%E5%AE%9F%E8%A1%8C%E5%89%8D%E3%81%8A%E3%82%88%E3%81%B3%E5%AE%9F%E8%A1%8C%E5%BE%8C%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%AE%E6%B4%BB%E7%94%A8-3b4af53bfe70
- author_url
- https://medium.com/@kotya1
- status
- ok
- fetched_at
- 2026-07-21 12:12:06