筆記 - 在 Postman 使用 CSV 一次完成相同欄位但不同資料的 Request

這一篇記錄的是 在 Postman 使用 CSV 一次完成相同欄位但不同資料的 Request,還有如果資料讀取的內容全是數字時建議應該如何做

API  的測試或者是平時打 API,都很有機會會打同一支 API 但資料不同的情況,如果是打 1、2 次換幾個欄位感覺不怎麼樣

但如果是1、2千次...握草,API 還沒打完自己就先死了欸...

​今天的文章目錄

  • 資料準備
  • 資料變數使用
  • 開啟 Collection Runner
  • 執行結果
  • 注意事項

本文參考於:
官方文件提到使用 CSV 和 JSON 的資料使用方式

資料準備

首先準備資料,5 筆欄位為 Number 的資料,存成 CSV 檔

Number
79013874
17013188
16452592
30892277
81651120

資料變數使用

以此資料為例,若要在 request body 或是 url 中使用時,只要使用 {{variable name}} 就可以了,如下

使用於 pre-request 和 Tests 時,就要使用 "data.variableName",以下為範例

在這裡寫了pm.test的原因是想知道目前這個request用了哪一個資料。

開啟Collection Runner

這時候開啟 Collection Runner 匯入自己的 CSV

多少資料,就填多少 Iterations 

記得將 Data File Type 改成 text/csv

執行結果

執行完畢後可以看到剛才寫的 pm.test 輸出了使用的資料!

注意事項

因為 postman 使用的語言 是 javascript,所以在讀取 CSV 的資料時要特別小心,比方說如果你的資料有電話號碼時...

以此資料為例

Phone
0912345678
0987654321
0912345679

直接打過去不對其資料進行處理的話,他會將你的號碼去除前面的 0

PS: 我公司的電腦全部的號碼都去除 0 了,不知為何我在家的電腦只有最後一筆變成整數...(如果有大大知道麻煩告訴我..)

CSV 資料變數建議使用方式

使用 全域變數或環境變數來存取 data 的資料,然後進行判斷後轉型,程式碼如下

if(typeof(data.Phone) != "string"){
pm.globals.set("Phone", String("0" + data.Phone));
}

以上程式碼加在 Pre-request Script 中,如下圖

接下來看一下執行結果!

這樣所有打出去的變數都會跟你預想的一樣了!

下面的注意事項就是今天採到的雷...實在是很悲劇啊 QAQ

如果以上有更好的做法歡迎跟我說~

感謝各位大大收看 <(_ _)>