????????這兩個都是我們進行自定義script腳本的地方,分別是在請求執行的前后運行。
? ? ? ? 我們舉兩個可能經常運用到的場景。
(一)請求A先執行,請求B使用請求A響應結果作為參數。如果我們不用自定義腳本,可能得先執行請求A,然后手動復制響應結果給請求B的參數。而通過自定義腳本,我們可以實現一鍵執行兩個請求。下面我們直接看腳本示例:
? ? ? ? 這里的示例請求為模擬登錄login,然后再次發請求將登錄結果發給loginResult
? ? ? ? (1)首先設置body,然后再Test中寫腳本獲取響應結果,并設置到環境變量中
????????Test腳本如下:
console.log("loginRes:"+JSON.stringify(pm.response.json()))
// 將響應結果設置到環境變量中
pm.environment.set("loginResult", JSON.stringify(pm.response.json()));
????????pm是postman內置的對象,可以通過它獲取請求參數,響應結果等信息,也可以設置請求參數、設置環境變量、全局變量等。
(2)然后再第二個請求中的Pre-request Script中寫腳本獲取響應結果,并設置到參數中
上面是網上給出的body設置方案,但實際是沒法設置成功的。查看postman文檔,文檔中也是不可變的,網上的方案可能是舊版本可以。
正確的做法是:在body中通過引用變量的方式
(3)運行請求
從這個地方運行,會開啟一個Collection Runner
點擊Run Test即可,可以看到兩個請求都執行成功了
(二)我們經常會有多套環境,prod,test,dev,如果每次環境切換都要改每個請求的ip和端口,那太麻煩了。我們可以在collection的Pre-request Scripts中將host、port設置到環境變量中,然后再url中以變量的方式引用進來:
ps:附上一篇自己寫的《Postman的使用》