postman(六):詳解在Pre-request Script中如何執行請求


上一篇借着如何在不同接口之間傳遞數據,簡單說了下在postman編寫腳本發送請求,這里再詳細介紹一下如何在Pre-request Script和Tests標簽中編寫腳本。因為我目前研究的也不是很深,對js也只是了解一點皮毛,所以大部分還是依賴postman已經封裝好的方法來介紹

這里以Pre-request Script標簽來介紹

1.首先postman提供了一個“Send a request”代碼段,他是已經封裝好的發送請求的方法

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可以自動幫我們完成准備工作。

2.自己編寫腳本發送post請求

示例代碼如下

// 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中攜帶的參數
JSON.stringify() 方法是將一個JavaScript值(對象或者數組)轉換為一個JSON字符串

定義好const變量后再由sendRequest()來發送請求即可

我們需要根據自己的實際需要來往里面填充內容,假如要傳一個POST請求,且body參數為json數據

如下,是我測試一個接口改編的腳本

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參數,響應報如下錯誤

正常返回如下

如果header中需要添加多個鍵值對,則需要按照如下方式

header:[
        {"key1":"XXX",
         "value1":"XXX"},
        {"key2":"XXX",
         "value2":"XXX"}
        ]

header:[
         'key1:XXX',
         'key2:XXX'
        ]

 


 

如果參數類型是application/x-www-form-urlencode,可以按照如下方式發送請求

const echoPostRequest = {
  url: 'https://xxx',
  method: 'POST',
  header: [
      "Content-Type: application/x-www-form-urlencoded; charset=UTF-8",
     "appVer: 4.4.0",
      ],
  body: {
    mode: 'raw',
    raw: 'bizId=123&Code=28&phone=xxx=&studentName=xxx&Id=8&subjectId=2'
  }
};
pm.sendRequest(echoPostRequest, function (err, res) {
  console.log(res.json());
});

 

總結:要學會使用console.log()來調試代碼,例如返回異常,想看看是不是傳參類型問題,則用console.log(typeof(data))


2018-12-30 22:14:11


免責聲明!

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



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