什么是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請求
其用法同預執行腳本雷同,不再贅述。
測試(斷言)請求返回結果的正確性
利用后執行腳本進行測試(斷言)請求返回結果的正確性,詳細可以參考《響應以及斷言》一節文檔。