[Postman] 先拿到token再呼叫API

先拿到token再呼叫API

  1. 首先有兩個API,第一個是取得token,以及在Header包含了Content-Type: application/json
  2. 第二個是要測試的API,並且每個API都有Authorization的驗證,token來自第一個API
  3. 若每次測試API都要先打第一個API拿到token,再copy填到第二支API的header上實在太麻煩了
  4. 在這邊可以寫Pre-request Script幫我們再每次呼叫API前,先做一些事情,再呼叫要測試的API
    pm.sendRequest({
        url: 'http://localhost:44337/api/v1/Authorization/Login',
        method: 'POST',
        header: {
            'Content-Type':'application/json'
        },
        body: {
            mode: 'raw',
            raw: JSON.stringify({ account: "test",  password:"123456"})
        }
    }, function (err, response) {
        const jsonParse = response.json();
        pm.environment.set("my_token", jsonParse.data.token);
    });
    

     

  5. 有點像寫javescript,先送出一個request,給定url、method、header、body,最後再parse返回的response,拿到token的內容並儲存在postman的環境變數"my_token"裡面

  6. 下一步是讓要測試的API的token是從環境變數取得,寫法是用兩個大括號,裡面是變數名稱

  7. 這樣每次呼叫API前,就都會先去拿token回來,填在authrization裡面,再呼叫API了


額外補充

  1. 也可以針對整個Collection內的request做設定,不過寫在哪邊比較適合就見仁見智了
  2. Postman有提供一個view可以完整查看每次的request以及response的內容,在有些時候其實蠻方便的