上一篇藉着如何在不一樣接口之間傳遞數據,簡單說了下在postman編寫腳本發送請求,這裏再詳細介紹一下如何在Pre-request Script和Tests標籤中編寫腳本。由於我目前研究的也不是很深,對js也只是瞭解一點皮毛,因此大部分仍是依賴postman已經封裝好的方法來介紹json
這裏以Pre-request Script標籤來介紹數組
1.首先postman提供了一個「Send a request」代碼段,他是已經封裝好的發送請求的方法app
pm.sendRequest("https://postman-echo.com/get", function (err, response) { console.log(response.json()); });
其中,https://postman-echo.com/get表示要發送的請求
function中的err表示請求返回的錯誤信息,response表示響應內容
console.log()是postman封裝的查看日誌的方法,能夠調出postman的console控制檯來查看代碼運行狀況,方便調試。想要打印出什麼由本身來定義,上面表示打印出json格式的響應信息
須要注意的是,這個代碼段默認只能發送get請求,且這樣直接使用的話沒法指定請求頭等信息,固然大部分狀況下咱們不須要單獨指定一些請求信息,postman能夠自動幫咱們完成準備工做。post
2.本身編寫腳本發送post請求測試
示例代碼以下this
// Example with a full fledged SDK Request const echoPostRequest = { url: 'https://postman-echo.com/post', method: 'POST', header: 'headername1:value1', body: { mode: 'raw', raw: JSON.stringify({ key: 'this is json' }) } }; pm.sendRequest(echoPostRequest, function (err, res) { console.log(err ? err : res.json()); });
const是js中用來定義變量的關鍵字,由const定義的變量不能夠修改,並且必須初始化
url表示要發送的請求url;
method指定請求方法;
header定製請求頭信息(很重要,由於你要傳json格式的數據的話,須要在這裏定義請求頭爲Content-Type:application/json,我開始這裏沒填寫,一直提示json參數不對。。。)
body表示請求body中攜帶的參數
方法是將一個JavaScript值(對象或者數組)轉換爲一個JSON字符串
定義好const變量後再由sendRequest()來發送請求便可JSON.stringify()
咱們須要根據本身的實際須要來往裏面填充內容,假如要傳一個POST請求,且body參數爲json數據url
以下,是我測試一個接口改編的腳本spa
var data = { "key1":"value1", "key2":"value2",
} const echoPostRequest = { url: 'http://ip:port/XXX', method: 'POST', header:'Content-Type:application/json', body: { mode: 'raw', raw: JSON.stringify(data) }}; pm.sendRequest(echoPostRequest, function (err, res) { console.log(res.json()); });
開始我沒有把 Content-Type:application/json 定義在請求頭中,致使一直識別不了傳入的json參數,響應報以下錯誤3d
正常返回以下調試
若是header中須要添加多個鍵值對,則須要按照以下方式
header:[ {"key1":"XXX", "value1":"XXX"}, {"key2":"XXX", "value2":"XXX"} ] header:[ 'key1:XXX', 'key2:XXX' ]
總結:要學會使用console.log()來調試代碼,例如返回異常,想看看是否是傳參類型問題,則用console.log(typeof(data))
2018-12-30 22:14:11