Postman:集合執行

集合執行

集合是一組請求,運行集合,就會依據所選的環境變量,發送集合中所有的請求,如果配合腳本就可以構建集成測試套件,在接口請求之間傳遞數據,並構建接口實際工作流的鏡像。如果想要自動化測試接口,運行集合是非常必要的

 

集合運行參數

集合可以在Postman應用程序中使用集合運行器運行,也可以從命令行使用Newman工具運行

 

打開集合運行器

1、在Postman中運行集合,單擊集合右側的">"按鈕,展開集合詳細信息,此時">"按鈕變爲"<"

2、單擊"Run"按鈕,打開Collection Runner集合運行器窗口

 

集合運行參數

說明:
Choose a collection or folder
      這裏設置(選擇)要運行的集合或文件夾。當運行一個集合時,集合中的所有請求都會按照它們在Postman中出現的順序發送,這就意味着每個文件夾和文件夾中的請求都是按順序執行的。但是,可以通過使用setNextRequest()方法更改請求發送的順序以反映工作流程 

Environment
這裏設置運行集合時使用的環境變量

Iterations
設置集合運行的次數。設置爲n,則被選中的集合中的請求將被髮送n遍(是所有請求都發送n遍)

Delay
設置發送每個請求之間的時間間隔(單位爲ms)。如果設置爲x,則表示發送完一個請求後,等待x毫秒後才發送下一個請求

Log Responses
設置集合運行時所記錄的日誌級別。默認情況下,所有Requests的響應都記錄日誌,但是對於大型集合,可以更改設置以提高性能。日誌共包含如下3個級別
    ⑴For all requests:記錄所有請求的響應日誌
    ⑵For failed requests:只記錄至少一個失敗測試請求的響應日誌
    ⑶For no requests:不會記錄響應日誌

Data
爲集合提供運行的數據文件。如集合所需要的數據驅動文件。在選擇文件後還需要選擇所選文件的類型,如TXT、Excel

Persist Variables(保持變量)
默認情況下,集合運行器中的任何變量更改都不會在請求構建器中反映出來。假如環境變量中有個變量"name=storm",如果請求執行時會設置(通過腳本設置等)"name=lina":選中此項,將不會更改環境變量中的name的值;如果不選中,則該請求發送完成後,環境變量中name的值將變爲lina

 

 

使用環境變量

多用環境變量能夠幫助用戶創建可以重用的健壯請求。環境變量也可以在集合運行器中使用

例:
1、構建請求
    請求中,對應的請求URL和請求頭中使用了{{path}}和{{foo}}環境變量

 

2、設置變量

 

3、設置測試腳本
    測試腳本期望響應主體中foo的值等於bar。最後,我們通過setEnvironmentVariable將foo的值設置成了bar2

let jsonData = JSON.parse(responseBody);
tests['Correct value is returned'] = jsonData.form.foo === 'bar'

postman.setEnvironmentVariable('foo', 'bar2')

 

4、在集合中運行
    此時先在集合中運行且先不勾選保持變量

 

5、查看結果

 

5.1、查看環境變量

注:
從上面的運行結果可以看出:在未勾選"保持變量值"時,雖然腳本中設置了變量"foo"的值,但是在運行集合時其設置效果是不會反映到請求構建器中的(不會修改環境變量中變量的值)


6、在集合中運行且勾選"保持變量值"
此時現在集合中運行且勾選"保持變量值"

 

6.1、勾選保持變量_測試結果

 

6.2、勾選保持變量_查看環境變量

注:
從上面的運行結果可以看出:在勾選"保持環境變量值"時,在腳本中設置了變量"foo"的值,在運行集合後其設置效果會反映到請求構建器中(會修改環境變量中變量的值)

 

7、在請求構建器中直接運行請求
    在請求構建器中直接運行請求且未勾選集合運行器中的"保持變量值"

 

7.1、在請求構建器中發送請求_查看變量

注:
從上面的運行結果可以看出:直接在請求構建器中運行請求時,即使沒勾選集合運行器中的"保持變量值",也會修改環境變量中變量的值(在集合運行器中運行和在構建器中運行本來就沒啥聯繫)

 

8、在請求構建器中再次運行

總結:
1、默認情況下,集合運行器中環境變量(或全局變量)中的任何變量變化都將反映在Postman主應用程序窗口中,因爲在選項中會檢查持久化變量(如果再次運行這個集合,就會它失敗,因爲在上次運行時改變了變量"foo"的值)

2、默認情況下,Persist Variables在我們第一次打開Collection Runner時被選中。如果不想在運行過程中更新變量,那就取消選中Persist Variables複選框。在這種情況下,在Collection Runner中修改的任何變量都不會影響Postman主應用中對應的環境變量值,在Collection Runner中做的任何修改都會在運行完成後恢復它原始的值。當我們在請求中重複使用相同的變量並希望多次運行相同的集合時,這非常有用。 這也將確保環境(和全局)狀態不受集合運行的影響。

 

 

數據文件

數據文件是使用不同的測試數據來測試API,以檢查它們是否在各種情況下都能正常運行。我們可以認爲數據文件是集合運行的每個迭代的參數

例:
1、構建請求
    該請求中有兩個變量:在URL中的{{path}}和在主體中的{{value}}

 

2、準備測試腳本
    在"Tests"選項卡中,測試腳本中也使用了變量,這些變量本身並沒有定義。Postman將從集合運行時選擇的JSON/CVS文件初始化數據變量

 

3、準備數據文件
    Postman目前支持JSON、TXT和CSV三種格式的文件。這裏用JSON文件

[{
  "path": "post",
  "value": "1"
}, {
  "path": "post",
  "value": "2"
}, {
  "path": "post",
  "value": "3"
}, {
  "path": "post",
  "value": "4"
}]

注:
1、這是一個對象數組。每個對象表示一次迭代的變量值。該對象的每個成員都代表一個變量。這樣,在第一次迭代中,路徑的變量將被賦值爲post,並且請求體中的value將被賦值爲1。同樣,在第二次迭代中,path=post,value=2。(在這個例子中變量path的值沒有變,只有變量path的值有變化,這完全取決於用戶怎麼設計自己的測試用例)

2、數據文件也可以是CSV。CSV看起來像這樣:

path, value
post, 1
post, 2
post, 3
post, 4

在典型的CSV方式中,第一行表示所有變量名稱,後續行表示每次迭代時這些變量的值

3、請注意,“Collection Runner”的每一次運行只能選擇一個數據文件

 

4、選擇數據文件
    在集合運行器中,點擊"Select File"按鈕來選擇數據文件,且可以點擊"Preview"按鈕來查看每個變量在各次迭代中的值

 

5、查看運行結果

注:
1、運行集合後。可以看到所有的測試都通過了。如果打開請求調試工具並展開請求正文,則會看到變量{{value}}已被數據文件中對應的值所代替。實際上,對於不同的迭代,這個值是不同的。這樣可以將不同類型的數據傳給API進行測試,並確保了每個案例都能夠正確工作

2、再來看看我們的測試腳本。變量數據是一個預定義的變量,它從數據文件中獲取值。隨着每次迭代,它的值將從指定的文件中得到新的數據。數據是一個對象,所有變量在文件中定義爲鍵。由於這個API回傳了發送給它的任何東西,所以可以斷言Echo的返回值與文件所指定的值相同

3、在所有可以使用環境變量的地方都可以使用數據文件,但Pre-request Script和Tests中不可使用

4、看到有些教程中:在使用本地數據文件時,還需要在Pre-request Script項下設置關於變量的腳本,但是自己試了下,在使用txt和JSON文件沒有設置變量腳本時,也可以正常發送請求

 

 

迭代運行集合

"Collection Runner"窗口的"Iterations"項反映了集合運行的次數。當一個集合下有很多請求且迭代運行了很多次後,可能會造成查找某個請求運行結果困難的情況,因此Postman提供了幾種快速查找請求的辦法


在迭代之間切換

要在迭代之間快速跳轉,可以單擊右邊欄中的一個數字,每個數字代表一個迭代。點擊某個數字後,就可以快速定位到對應迭代次數下的請求位置

 

使用過濾器

左側邊欄包含3個過濾器,它們可以用來顯示所有通過或失敗的測試。這在查找失敗的測試時非常有效

 

調試多次迭代(摘要)

1、當運行多次迭代時,想要檢查所有的測試是否如期望的那樣,需要不停的切換迭代來查看運行結果,這樣就顯得很是麻煩。因此,Postman提供了一個運行摘要頁面,當運行完成時,用戶可以點擊"Run Summary"按鈕打開摘要頁面

2、頁面顯示錶示運行結果的概述,可以看到每個請求及其執行的狀態。如果所有的測試都通過,則請求被視爲Passed。同理,如果一個或多個失敗則標記爲Failed

3、標題中的數字表示處於哪次迭代。這能準確的指出錯誤發生在何處。點擊迭代數字可以跳轉到這個迭代詳情中,進一步查看請求出錯的地方

注:
集合運行器中的迭代在第一次迭代中以1爲索引,即1爲起點。這與在Postman沙箱中以編程方式訪問的迭代計數不同,後者在第一次迭代開始時以0位索引(集合運行器中的迭代索引從1開始,沙箱中訪問迭代從0開始)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章