iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0

今日主題

在前面的主題曾用過Collection Runner來進行多個請求連續執行,適合多個請求間有執行順序上要求的場景。但有時候我們需要的是測試同一個API,並且每次執行時搭配不同的參數,透過大量的測資來確保API的行為正確。

今天的主題就就是Collection Runner的另一個功能,可以事先把大量測資儲存在檔案裡,將測資依序讀出當作請求的參數。記得先將 Day 23: Data files複製到自己的工作區,開始體驗這個功能。

回到自己的工作區,打開今天的資料夾Data files,從右邊文件區可以看到今天挑戰的指示,步驟如下

  • 準備測資,這邊有兩個方法

    • 透過 Google trends,來下載必要的csv檔案
    • 直接下載這份geoMap.csv,測試資料csv格式如下,第一行是欄位標頭,下面每行都是一筆筆獨立的資料
      Region,boba
      Hawaii,100
      California,96
      Nevada,83
      
  • 新增請求:

    • 命名 boba
    • 方法 GET
    • URL `https://postman-echo.com/get?{{Region}}={{boba}}
      這個echo API功能簡單,單純回應通過參數傳遞的兩個變數
  • 編輯 Pre-requests
    由於我們預期從檔案讀取資料,來當作參數來傳遞,所以必須在執行請求前準備好參數,因此腳本寫在pre-requests,這樣一來就能讓參數跟著變動。

    //逐次讀出Region, boba的值
    let region = pm.iterationData.get("Region");
    let boba = pm.iterationData.get("boba");
    
    console.log(region, boba)
    //將值放到變數
    pm.collectionVariables.set("Region", region);
    pm.collectionVariables.set("boba", boba);
    
  • 編輯 Tests
    為了確保API回傳的結果與當前變數一致,所以透過Tests在執行請求結束後來確認

    var response = pm.response.json();
    
    pm.test("Check response", function () {
        pm.expect(pm.response.text()).to.include(pm.collectionVariables.get("Region"));
        pm.expect(pm.response.text()).to.include(pm.collectionVariables.get("boba"));
    });
    
  • 開始批次執行: 執行Collection Run,點擊Select File並選擇前面準備的csv檔案

    https://ithelp.ithome.com.tw/upload/images/20221008/20140317YMsFgUBntA.png

    載入檔案後,可以透過Preview確認是否能正確解析檔案

    https://ithelp.ithome.com.tw/upload/images/20221008/20140317Y1yYc3yzWl.png

    執行結果如下,資料有多少筆,請求就會執行多少次,每一個請求都會根據 pre-request -> request -> test的順序進行,也就是準備變數 -> 發送請求 -> 確認回應,從Console也能看到執行過程輸出的log,可以用來確認是否每次的請求都有跟著變動

    https://ithelp.ithome.com.tw/upload/images/20221008/20140317jsC9rZMHNE.png

以上就是關於Collection run + Data files的使用方式,是個相當實用且充滿彈性的功能。其他延伸閱讀可以參考

那麼今天就到這邊,我們明天見~


上一篇
Postman challenge Day 22 - 個人公開資料 (Public profile)
下一篇
Postman challenge Day 24 - 進階腳本使用函式庫 (Using libraries)
系列文
[POSTMAN] 該知道的都知道,不知道的慢慢了解 - 與波斯麵三十天的感情培養32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言