iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0

今日主題

今天的主題是延伸之前在TestsPre-requests的內容,Postman提供了pm以及postman兩種物件可以在腳本裡面使用,我們會用pm物件來操作環境變數、取得請求跟回應的資料; 透過postman物件來控制工作流程。但除此之外的功能都是透過手刻javascript來實作,像是排序演算法或是資料格式等功能。而js本身也是程式語言,所以想必也有很多前人們早已造好的"輪子"可以使用,就如今天標題所述,我們將會透過今天的挑戰來體驗Library。

在開始之前,別忘了將今天的挑戰 Day 24: Using libraries 複製到自己的工作區。今天的挑戰內容有兩項,會各自新增一個請求來體驗其帶來的功能

  • Dynamic variables:
    Postman使用faker 函式庫來生成一些變數、像是人名、郵件地址等等在開發測試階段很常使用的資料,可以讓我們的測試更逼真,讓我們根據下面步驟來體驗看看

    • 新增請求

      • 命名為 random chuck norris
      • 方法 GET
      • URL https://api.chucknorris.io/jokes/search?query={{$randomWord}}
        這邊用到的{{$randomWord}}$符號開頭的變數就是Postman預先定義好的變數,每次呼叫都會自動產生一組可用的詞當作參數query的值,可以多呼叫幾次,觀察Console裡面實際上帶入的值,或是點擊右方文件圖示下面的Code snippet圖示,可以看到自動產生其他客戶端程式的程式碼或是指令,下面是以curl為例,能看到當前亂數使用到的字為Industrial

        https://ithelp.ithome.com.tw/upload/images/20221010/20140317vX7q3ZkAAn.png

      其他Postman提供的預定義變數還有很多,像是

      • $uuid
      • $randomFullName
      • $randomPhoneNumber
      • $randomCompanyName

      種類眾多,族繁不及備載,有興趣的朋友都可以點連結去看有沒有合用的,但需要特別注意的是這個請求我們是使用在參數,所以可以直接使用{{$randomWord}},如果想要在Tests等腳本裡面使用的話,要透過pm物件pm.variables.replaceIn來使用,例如

      console.log(pm.variables.replaceIn('{{$randomWord}}'))
      
  • Built-in library:
    除了預定義的變數之外,Postman還可以用許多內建的函式庫,像是

    • moment.js - 處理時間轉換的函式庫
    • crypto-js - 加密演算法的函式庫
    • xml2js - xml格式轉換的函式庫

    這些函式庫都是透過javascript實作了相當常見且熱門的功能,都不需要自己重新把輪子發明一次,接著我們就實際新增請求來體驗看看吧,我們預期透過函式庫來找出兩天前是禮拜幾,步驟如下

    • 新增請求
      • 命名為 moments in time
      • 方法 GET
      • URL http://worldtimeapi.org/api/ip
    • 新增測試
      第一行的程式碼就是透過require很輕鬆的就將函式庫載入進來,接著就可以直接使用函式庫裡提供的所有function了
      const moment = require('moment'); // require
      let day = moment().subtract(2, 'days').format('dddd');
      console.log(day);
      

到這邊就完成了今天的挑戰了,可以直接通過submit來確認,今天的挑戰非常容易,在之後實際使用時肯定會有很多機會碰到,只要碰到需要寫很多程式碼處理的邏輯,不妨先找找看是否已經有現成的函式庫供使用,肯定能夠節省許多時間,甚至避免自己開發還要偵錯的麻煩。

延伸閱讀:

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


上一篇
Postman challenge Day 23 - 使用檔案進行批次測試 (Data files)
下一篇
Postman challenge Day 25 - 動態的請求內容主體 (Dynamic request bodies)
系列文
[POSTMAN] 該知道的都知道,不知道的慢慢了解 - 與波斯麵三十天的感情培養32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言