預執行指令碼的作用時間
預執行指令碼是一個請求傳送前執行的指令碼。
預執行指令碼的作用
預執行指令碼可以完成以下作用:
- 編寫JS函式等實現複雜計算;
- 變數的列印
- 定義、獲取、刪除、清空環境變數
- 定義、獲取、刪除、清空全域性變數
- 獲取請求引數
- 動態新增、刪除一個header請求引數
- 動態新增、刪除一個query請求引數
- 動態新增、刪除一個body請求引數
- 傳送HTTP請求
編寫JS函式等實現複雜計算
我們可以在預執行指令碼中定義一個函式_random,
function _random(){
return '你好,中國' + Math.random();
}
它返回一個字串:“你好中國”+隨機數,此時可以通過
apt.globals.set("random_var", _random());
將它賦值給全域性變數random_var。
預執行指令碼列印除錯變數
我們可以通過console.log()將需要的變數列印在控制檯,從而檢視某個變數的當前值。如圖上面示例中的
定義、獲取、刪除、清空環境變數
apt.variables.set("key", "value"); // 設定一個值為value的環境變數key
apt.variables.get("key"); // 獲取環境變數key的值
apt.variables.delete("key"); // 刪除環境變數key
apt.variables.clear(); // 清空定義的全部環境變數
定義、獲取、刪除、清空全域性變數
apt.globals.set("key", "value"); // 設定一個值為value的全域性變數key
apt.globals.get("key"); // 設定一個值為value的全域性變數key
apt.globals.delete("key"); // 設定一個值為value的全域性變數key
apt.globals.clear(); // 清空定義的全部全域性變數
獲取請求引數
通過request物件獲取請求引數,詳細可以參考《APIPOST內建變數》一節文件。
動態新增、刪除一個header請求引數
apt.setRequestHeader("key", "value"); // 動態新增一個鍵為key值為value的header引數
apt.removeRequestHeader("key"); // 刪除header引數中鍵為key的引數
動態新增、刪除一個query請求引數
apt.setRequestQuery("key", "value"); // 動態新增一個鍵為key值為value的query引數
apt.removeRequestQuery("key"); // 刪除query引數中鍵為key的引數
動態新增、刪除一個body請求引數
apt.setRequestBody("key", "value");// 動態新增一個鍵為key值為value的body引數 只針對 form-data、urlencode有效
apt.removeRequestBody("key");//刪除body中鍵為key的引數 只針對 form-data、urlencode有效
傳送HTTP請求
我們可以在預執行指令碼中利用AJAX的$.ajax方法傳送一個http請求。以下是一個簡單的示例demo:利用預執行指令碼傳送一個請求到https://echo.apipost.cn/get.php,並將響應結果的bigint賦值給了全域性變數bigint。
$.ajax({
url:"https://echo.apipost.cn/get.php",
method:"POST",
headers:{
"content-type":"application/json"
},
timeout:"10000",
async:false, // 記住此項設定為 false,必須同步請求
data:JSON.stringify({"email":"[email protected]","password":"123456"}),
success:function (response) {
apt.globals.set("bigint",response.bigint);
}
}
);