1、在 Tests 中處理
- 返回報文為 json 格式的
- 示例:因為充值記錄接口中需要用到登錄接口返回報文中的信息如下
- 以獲取 token(JWT)和 uid 為例
- 在登錄接口的tests中寫入代碼(因為登錄接口報文信息中有返回 JWT 和 uid)
-
- 輸入完上圖中代碼后,點擊 send 請求接口,去全局變量中查看,是否成功獲取 JWT 和 uid 的值並且設置了全局變量
-
- 在充值記錄接口中需要用到 JWT 和 uid 的地方設置變量 {{JWT}} 和 {{uid}}
-
- 請求完成后清除變量
-
- 通過批量執行用例的方法執行,且切換賬號進行登錄請求,進行驗證充值記錄的動態數據獲取是否成功
- 返回報文為 xml 格式
- 從返回報文中取值設變量
-
- 執行完上面接口后在全局變量中已存在變量 provice
-
- 依賴接口將變量中的 value 作為參數傳入
2、在 Pre-request Script 中處理
- 首先 postman 提供了一個 "Send a request" 代碼段,他是已經封裝好的發送請求的方法,這個代碼段默認只能發送get請求,且這樣直接使用的話無法指定請求頭等信息
- https://postman-echo.com/get 表示要發送的請求
- function 中的 err 表示請求返回的錯誤信息,response 表示響應內容
- console.log() 是 postman 封裝的查看日志的方法,可以調出 postman 的 console 控制台來查看代碼運行情況,方便調試。想要打印出什么由自己來定義,上面表示打印出 json 格式的響應信息
- 假如要傳一個 POST 請求,且 body 參數為 json 數據
var data = {"userName": "17779828887","passWord": "123456"} const postRequest = { url: "http://localhost:8080/user/login", method: 'POST', header:"Content-Type: application/json", body: { mode: 'raw', raw: JSON.stringify(data) }}; pm.sendRequest(postRequest, function (err, res) { console.log(res.json()); // 講報文中的字段設為全局變量 pm.globals.set("uid", res.json().data.user.uid); pm.globals.set("token", res.json().data.token); }); // const 是 js 中用來定義變量的關鍵字,由 const 定義的變量不可以修改,而且必須初始化 // url 表示要發送的請求 url; // method 指定請求方法; // header 定制請求頭信息(因為你要傳 json 格式的數據的話,需要在這里定義請求頭為 Content-Type:application/json,我開始這里沒填寫,一直提示 json 參數不對。。。) // body 表示請求 body 中攜帶的參數 // JSON.stringify() 方法是將一個 JavaScript 值(對象或者數組)轉換為一個 JSON 字符串
- 如果 header 中需要添加多個鍵值對,則需要按照如下方式
header: [ "Content-Type: application/json", "token: duoceshi" ]
- 假如要傳一個 POST 請求,參數類型是 application/x-www-form-urlencode
const form_request = { url: "http://192.168.0.221:8181/cms/manage/loginJump.do", method: "post", header: [ "Content-Type: application/x-www-form-urlencoded" ], body:{ mode: "raw", raw: "userAccount=admin&loginPwd=123456" } }; pm.sendRequest(form_request, function (err, response) { console.log(response.json()); });