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":"xxx@xxx.com","password":"123456"}), 
    success:function (response) {
        apt.globals.set("bigint",response.bigint); 
    }
}
);
 
         

后執行腳本

后執行腳本的作用時間

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

后執行腳本的作用

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

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

后執行腳本打印調試變量

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

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

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

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

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

獲取請求參數

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

獲取響應參數

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

發送HTTP請求

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM