ApiPost進階教程(1) — 在ApiPost中使用腳本

什麼是APIPOST腳本

APIPOST腳本是基於JavaScript語言的代碼片段,可實現在接口請求或集合測試時添加動態行爲。

腳本可實現的功能

  • 測試(斷言)請求返回結果的正確性(後置腳本)。
  • 動態修改接口請求參數,如增加接口簽名參數等(前置腳本)。
  • 接口請求之間傳遞數據(使用腳本操作變量)。
  • 腳本中可以直接請求一個接口地址。

APIPOST的腳本分爲預執行腳本和後執行腳本。

預執行腳本

預執行腳本是一個請求發送前執行的腳本。

後執行腳本

後執行腳本是一個請求發送後執行的腳本。

實際發送演示

如下圖所示(控制檯打印),預執行在請求發送前執行,請求結束後,後執行腳本執行:

 

預執行腳本

預執行腳本的作用時間

預執行腳本是一個請求發送前執行的腳本。

預執行腳本的作用

預執行腳本可以完成以下作用:

  • 編寫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); 
    }
}
);

後執行腳本

後執行腳本的作用時間

後執行腳本是一個請求發送後執行的腳本。

後執行腳本的作用

後執行腳本可以完成以下作用:

  • 編寫JS函數等實現複雜計算;
  • 變量的打印
  • 定義、獲取、刪除、清空環境變量
  • 定義、獲取、刪除、清空全局變量
  • 獲取請求參數
  • 獲取響應參數
  • 發送HTTP請求
  • 測試(斷言)請求返回結果的正確性

後執行腳本打印調試變量

其用法同預執行腳本雷同,不再贅述。

定義、獲取、刪除、清空環境變量

其用法同預執行腳本雷同,不再贅述。

定義、獲取、刪除、清空全局變量

其用法同預執行腳本雷同,不再贅述。

獲取請求參數

通過request對象獲取請求參數,詳細可以參考《APIPOST內置變量》一節文檔。

獲取響應參數

通過response對象獲取請求參數,詳細可以參考《APIPOST內置變量》一節文檔。

發送HTTP請求

其用法同預執行腳本雷同,不再贅述。

測試(斷言)請求返回結果的正確性

利用後執行腳本進行測試(斷言)請求返回結果的正確性,詳細可以參考《響應以及斷言》一節文檔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章