iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0

今日主題

今天的主題是Collection Runner,能夠依序去執行同一個集合下的所有請求。在前面幾天的挑戰中,我們都是一個個的API進行測試,在開發過程中其實已經滿足很多基本需求。但在開發到一定階段,或是日常維護系統時,常常更需要一次性的去對當前的多數API進行測試,又或是切換Environment來一次性地對開發或是正試環境做全面的測試。

由於今天的主題會運用到前面幾天的內容,所以接下的操作步驟中也會應用到之前提到的部分功能,那麼在開始之前,請別忘了將今天的挑戰 Day 8: Run a collection 先行fork到自己的工作區喔。

挑戰開始

回到自己的工作區後,打開今天的資料夾Run a collection按照右方文件來進行以下步驟

  • 新增請求: 在資料夾下透過Add request來新增請求,並重新命名為get random user,依序設定方法跟URL為GEThttps://randomuser.me/api,試戳看看,可以看到該API會回傳隨機產生的一筆類似使用者的資訊,接著我們增加一個測項,由於當前這個請求我們只需要能獲的隨機內容即可,所以測項就單純確認能取得狀態碼200
    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });
    
  • 新增第二個請求: 複製前面新增的請求,重新改名為get female user,從命名可以看出這個請求希望能讓API回應的內容必須是符合female這個條件的,因此測項我們可以加入這個條件的確認
    pm.test("Check gender is female", function () {
        var jsonData = pm.response.json();
        pm.expect(jsonData.results[0].gender).to.eql('female');
    });
    
    目前因為還沒有修改API的參數,所以回傳結果還是隨機的,也就是說有時候隨機到的內容剛好符合條件female的話就會通過測試,目前先保持這樣,後續再來進行調整。

    如果在新增測項時想知道取出的比對值是否如預期,可以用昨天學習到的Console功能

    console.log(jsonData)
    console.log(jsonData[0])
    console.log(jsonData.results[0].gender)
    
  • 新增第三個請求: 跟第二個請求一樣,只是名稱要改成get french user,除了要滿足female之外,還多加了新條件french,因此在原本兩個測項下面新增新測項
    pm.test("Check nationality is FR", function () {
        var jsonData = pm.response.json();
        pm.expect(jsonData.results[0].nat).to.eql('FR');
    });
    

到目前為止,我們有多個請求在同一個collection裡,是時候進入今天的主軸Collection Runner了`,滑鼠點擊今天的Collection,可以看到Run功能按鈕,按下可進入到Collection Runner的管理介面。

https://ithelp.ithome.com.tw/upload/images/20220924/20140317AyaoBGPlwb.png

在這個介面下,可以去調整執行的順序,也可以勾銷掉項目使其不被執行,右邊還能設定執行次數,按下Run a collection鈕後就會根據當前設定以及環境變數來進行批次發送了。如下圖,勾銷了submit項目,之後就不會去發送該請求,這邊其實也可以從資料夾進入Runner,會只引入資料夾內的三個請求。

https://ithelp.ithome.com.tw/upload/images/20220924/2014031792oKGau6tS.png

我們前的步驟裡沒有特別對請求設定參數,所以理論上多執行幾次,是有可能因為隨機結果不符合測向預期,進而導致測試失敗的結果。下圖就是設定執行五次,然後切換到Failed分頁只列出失敗的情況,可以看到第一個周期裡,有兩個請求失敗了,但在第二個周期裡,只有一個請求失敗,這就是因為隨機造成的結果。

https://ithelp.ithome.com.tw/upload/images/20220924/20140317ukCVbVXaw5.png

從上面的失敗測項裡,也有列出原因讓我們能夠依據它去修正我們的請求,因此接下來我們要針對第二以及第三個請求,加入參數去正確呼叫API,取得有條件的回傳結果。這邊需要先去查詢API文件,去找如何下參數。

  • 第二個請求因為限定了性別,所以可以在參數裡加入 gender:female 這樣一組 key:value,調整後的URL會是https://randomuser.me/api?gender=female
  • 第三個請求因為還限定了國籍,所以調整後的URL為https://randomuser.me/api?gender=female&nat=fr

設定好後,可以手動多跑幾次,也可以透過Collection Runner來進行多次的測試,確保每一個週期都能夠通過所有測試,到這邊就能夠進行submit來通過今天的挑戰囉。

今日回顧

今天學習到了Collection Runner,讓我們能夠很快地進行多個API的測試,而其他還有一些設定的部分可以玩玩看,像是DelayData等等,都會在未來的章節進行介紹,

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


上一篇
Postman challenge Day 7 - 除錯 (Debugging )
下一篇
Postman challenge Day 9 - 腳本與工作流程 (Scripting & Workflows)
系列文
[POSTMAN] 該知道的都知道,不知道的慢慢了解 - 與波斯麵三十天的感情培養32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言