iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0

今日主題

今天要介紹的主題是Monitoring,顧名思義,可以用來監控API,透過指定一個固定的時間間隔,讓Postman可以自動執行我們所撰寫的測試腳本,就像 Day 0 就被用來提醒我們每天進行挑戰的步驟,只不過這並不是Monitoring真正的用法,關於應用的場景可以參考Postman API Monitoring Examples,最常見的就是利用這功能來時時確認API是否還健在,或是利用前面學過的Workflow串聯API來達成當某條件符合才繼續進行指定動作。

今天的挑戰就會實際使用Monitoring來定時檢查濕度,決定是否要進行澆水的動作。記得在挑戰開始前,把 Day 11: Monitoring fork到自己的工作區。

挑戰開始

回到自己工作區,打開資料夾Monitoring,根據其文件描述我們需要建立兩個請求,一個用來取得狀態,一個用來修改資料,具體步驟可以參考下面:

  • 新增請求: 在資料夾下Add request,並重新命名為should I water the plants?,方法是GET,URL則填入https://water-ttl.herokuapp.com/hygrometer,試戳可以得到當前濕度的數值,而且多戳幾次可以觀察到數值正在不斷變小。
  • 新增另一個請求: 同資料夾下新增請求並重新命名為water the plants,內容則為POST https://water-ttl.herokuapp.com/water,另外還需要給定form-data,需要一組duration :10,設定好後先不要發送,因為這個API是用來澆水的,一旦發送就會使濕度提高,也就是會影響第一個請求回傳的結果。

到這邊我們就有兩個請求了,接著需要為兩個請求添加測試,讓後續自動執行時能判斷濕度過小才進行澆水。

  • 添加should I water the plants?的測試: 首先先要能確定這個API能正常回應200,其次才去判斷濕度,也就是回傳的level值,這邊設定成當濕度大於0.6時,就不繼續往下執行其他請求。
    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });
    
    var jsonData = pm.response.json();
    if (jsonData.level > 0.6) {
        postman.setNextRequest(null);
    }
    
  • 添加water the plants的測試: 因為之後自動執行時會先執行第一個請求,而且主要的判斷我們已經放在了前面,所以這個請求的測試就比較單純,確認200然後都沒有其他請求需要執行了。
    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });
    
    postman.setNextRequest(null)
    

測試添加完後其實就可以透過執行整個collection來試試看,是否執行的流程合乎預期,接著就是今天的主軸Monitoring了。從右邊進入Monitors分頁來新增一個監控器,需要設定的選項很少,主要就是指定觸發的時間點,由於這邊使用的是免費版,所以最短只能設定到小時,付費版才能指定到分鐘等級。

https://ithelp.ithome.com.tw/upload/images/20220927/20140317inUt38Keq3.png

設定完之後就可以等時間到或是直接手動執行Run,就可以在這邊看到該次執行的結果,從下圖可以看到手動觸發了兩次,而且第二次依序執行了兩個請求。

https://ithelp.ithome.com.tw/upload/images/20220927/20140317xnGwbCN2iC.png

最後,就可以直接進行submit,如果測項都通過的話就表示通過今天的挑戰囉。

今日回顧

今天體驗了Monitoring真正的用法,適合那些跟著時間變化狀態的情境,像是每天早上在公司的訂便當時間截止前,檢查自己訂過便當沒有...

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


上一篇
Postman challenge Day 10 - 模擬服務 (Mock services)
下一篇
Postman challenge Day 12 - Postman API
系列文
[POSTMAN] 該知道的都知道,不知道的慢慢了解 - 與波斯麵三十天的感情培養32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言