1. 程式人生 > WINDOWS開發 >基於postman的api自動化測試實踐

基於postman的api自動化測試實踐

測試的好處

每個人都同意測試很重要,但並不是所有人都會去做。每當你新增新的程式碼,測試可以保證你的api按照預期執行。通過postman,你可以為所有api編寫和執行測試指令碼。

postman中的測試

在postman中,你可以通過新增指令碼到請求當中,來使用動態變數、在請求之間傳遞資料以及編寫測試。寫在Pre-request Scripttab中的程式碼會在請求傳送之前執行,而寫在Teststab中的程式碼會在響應到達之後執行。

技術分享圖片

測試用的語言是JavaScript。所以對於前端開發者來說幾乎沒有學習成本。對於一個單獨的請求來說,如果它有測試指令碼,那麼在請求傳送之後,在Test Results

tab可以看到對應的測試結果。另外為了可以快速編寫測試指令碼,postman提供了一些通用的程式碼片段(code snippets)。如下是對應的功能結構圖:

技術分享圖片

編寫測試

例子:

pm.test("response is ok",function () {
    pm.response.to.have.status(200);
});

pm.test("environment to be production",function () { 
    pm.expect(pm.environment.get("env")).to.equal("production");
});

pm.test(
"response must be valid and have a body",function () { pm.response.to.be.ok; pm.response.to.be.withBody; pm.response.to.be.json; }); var schema = { type: object,properties: { appID: { type: number,},avatar: { type: string,} } } pm.test(Schema is valid
,function() { var jsonData = pm.response.json().data; pm.expect(tv4.validate(jsonData,schema)).to.be.true; });

pm.test()

為了遵循postman的規範,所有測試程式碼必須寫在pm.test()的function裡面。第一個引數是該測試的名稱,第二個引數是一個返回boolean值的函式。也就是說這個函式如果返回true,表示測試通過,否則測試失敗。

pm.expect()

這個斷言函式是基於一個JavaScript測試庫ChaiJS BDD構建的。通過類似的語法,你可以很方便的對響應裡的資料或者一些變數進行斷言。

pm.response.to.be.*

這個物件可以提供對響應常見的檢查。如狀態碼是否符合預期等。

tv4.validate()

第一個引數是被檢驗的資料,第二個引數是json schema。通過則返回true,失敗則返回false。

執行測試

我們通常會給多個api執行測試,因為我們有很多api,或者一個測試場景由多個api所組成。所以我們會把他們新增到一個集合(Collections)當中來執行。

postman(使用者介面)

技術分享圖片 技術分享圖片 技術分享圖片

這裡注意,請求是按照Collections當中的順序線性執行。如果想改變執行順序,可以修改Collections中的順序,或者使用postman.setNextRequest("request_name");如果想要停止整個流程,可以執行postman.setNextRequest(null);

newman(命令列工具)

1.從postman當中匯出為json格式的Collections

技術分享圖片

2.全域性安裝newman,npm install -g newman3.執行命令,newman run sample-collection.json

技術分享圖片

結合Jenkins自動化

一個通用的方案是在程式碼在提交後,或者合入倉庫分支後,執行newman -c jenkins_demo.postman_collection --exitCode 1。注意到--exitCode引數,這是為了告訴Jenkins,如果測試失敗,將會返回值為1的退出碼。這樣就Jenkins就可以得知測試執行的成功與否了。

總結

我們都知道,工欲善其事必先利其器。對於基於api的測試而言,postman不失為一個不錯的工具。另外對於web開發人員來說,postman也是一個常用的http除錯工具。熟練的掌握它,也能一定程度地提高我們的工作效率。
以上內容就是本篇的全部內容以上內容希望對你有幫助,有被幫助到的朋友歡迎點贊,評論。
如果對軟體測試、介面測試、自動化測試、面試經驗交流。感興趣可以關注我,我們會有同行一起技術交流哦。