使用Postman如何在接口測試前將請求的參數(shù)進行自定義處理
1、前言
當我們使用 Postman 進行接口測試時,對于簡單的不需要處理的接口,直接請求即可,但是對于需要處理的接口,如需要轉(zhuǎn)碼、替換值等,則就麻煩一些,一般我們都是先手動把修改好的值拷貝到請求里再進行請求接口,這也是大多數(shù)測試人員進行接口測試時這么做的。
其實 Postman 有一個 Pre-request Script 功能,即在接口請求前測試人員可自定義編寫函數(shù)等對請求參數(shù)進行處理,本篇將舉例來介紹這個功能。
2、簡介
Pre-request Script
- Pre-request Script 是集合中請求發(fā)送之前需要執(zhí)行的代碼片段。
- 使用場景為請求參數(shù)中包含一個隨機數(shù)或者請求 header 中包括一個時間戳,或者你的請求參數(shù)需要加密等。
3、示例
以作者所在的項目為示例:
如圖所示,是一個 POST 請求的接口,接口特點為請求值必須轉(zhuǎn)碼才可以請求成功,如果不轉(zhuǎn)碼直接請求的話,就沒有返回值,從圖中可以看到請求后的返回值是空白的。
那么手動操作時,選中需要轉(zhuǎn)碼的數(shù)據(jù),右鍵選擇 Encode URI Component,即可把數(shù)據(jù)轉(zhuǎn)碼完成。
EncodeURIComponent:可把字符串作為 URI 組件進行編碼。其返回值 URIstring 的副本,其中的某些字符將被十六進制的轉(zhuǎn)義序列進行替換。
轉(zhuǎn)碼后,再次請求,可以看到請求成功。
那么不手動轉(zhuǎn)碼,該如何使用 Pre-request Script ?
Postman 提供了 encodeURIComponent 函數(shù),可以直接進行轉(zhuǎn)碼。
那么參數(shù)值該如何定位到,使用 pm.request.url.query 的 get 方法來獲取指定的參數(shù)值。
之后將原有的參數(shù)與值刪除,再添加參數(shù)與轉(zhuǎn)換后的值就可以了。
console.log 方法為控制臺打印日志。
代碼如下:
encodevalue = encodeURIComponent(pm.request.url.query.get("p")) // 將參數(shù)值進行轉(zhuǎn)換
console.log("p="+encodevalue)
pm.request.url.query.remove("p") // 刪除請求參數(shù)和值
console.log(pm.request.url.query)
pm.request.url.query.add("p="+encodevalue) // 添加參數(shù)與轉(zhuǎn)換后的參數(shù)值
console.log(pm.request.url.query)
將已轉(zhuǎn)碼的參數(shù)值更改回原值后,再次執(zhí)行此接口。
不需要手動轉(zhuǎn)碼,就可以執(zhí)行成功了。
控制臺打印的信息。