Postman接口測試03-運行接口用例集collection,進行“性能測試”

在postman中,我們在一個collection中,可以根據模塊、流程,來創建我們的測試用例集;如果想要整體的把所有流程全部跑一遍,就需要直接運行整個測試用例集合。

一、如何批量運行用例集

1.1選中一個測試集合進入運行界面

點擊測試集合collection的三角符號,點擊run,此時postman會打開一個新的界面,單獨運行這個測試用例集。
運行collection

1.2 測試集合運行頁面配置項

在這裏有一些複雜的配置項,需要更改默認值,會用到的就是:interactions(運行次數),看你需要運行多少次。
然後就是右邊是用例的執行順序,可以拖動改變。
測試用例集參數

1.3生成測試結果

這裏的測試結果,是根據我們每個用例裏的斷言判斷的,如果沒有斷言,並且能正常運行,也是成功狀態。
用例集結果

二、能使用postman進行性能測試嗎

  這個文章我本來是想命名爲“使用postman進行性能測試”的,但是我在測試運行用例時,發現根本不是這麼回事兒,postman運行接口不能作爲性能測試

  • 原因:postman中的運行次數不管是多少次,都是按照順序執行的,沒有性能測試中的併發和並行,所以每秒運行的接口次數要看單個接口的響應速度,且某一時刻運行的接口也僅有一個。

下面講講我研究postman性能的過程。
  我是按照性能測試的想法,想看看用postman到底能跑到多少的併發。所以我1000次的運行次數,運行同一個接口。
  變量有:電腦配置、postman的運行CPU佔用率、總共運行時間;然後算出來每秒運行次數和平均響應時間。

測試一:
次數:1000次
時間:4分16秒
平均併發數:4次/秒
平均響應時間:200ms左右
cpu佔用:25%

測試二:
次數:1000次
時間:3分40秒
平均併發數:4.5次/秒
平均響應時間:200ms左右
cpu佔用:10%

測試三:
次數:1000次
佔用30%
時間:3分25秒

測試四:
次數:1000次
加入了時間判斷斷言
佔用30%
時間:3分50秒
相應時間小於200ms:98.6%

  結果我發現了,不管電腦本身配置高低、postman的每次“併發”測試結果:都是4次-5次每秒。這讓我明白了,限制接口運行速度的只有單個接口單次的響應時間。

  當然我還有一個小發現,那就是postman本身的運行效率。在postman設置每個接口運行間隔爲0的情況下。我在Tests中加入了這些代碼,並且在環境中也加入了time字段,默認值爲0.

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});
var time_now = pm.response.responseTime;
var time_base = pm.environment.get("time"); 
var time_all = parseInt(time_now) + parseInt(time_base);
pm.environment.set("time", time_all);

  因爲postman沒有所有接口時間的統計(或者說我沒找到),爲了統計所有接口運行花費的總時間,我將每次接口響應時間加起來,最終運行完成後總時間就記錄到了環境變量中(運行配置裏要勾選:keep variable values).
最終結果是:
  postman運行1000次接口,通過外部計時器計時,總共爲4分鐘,而通過本身響應時間統計,總共運行時間爲3分鐘.
  對比接口本身的響應時間,兩者差了一分鐘,那我就理解postman本身也需要時間切換接口的發送,而且斷言判斷也需要時間,所以從時間角度看:這次postman的運行效率就是75%.

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