1
背景介紹? ? ? ?
相信大部分開發人員和測試人員對 postman 都十分熟悉,對于開發人員和測試人員而言,使用 postman?來編寫和保存測試用例會是一種比較方便和熟悉的方式。但?postman?本身是一個圖形化軟件,相對較難或較麻煩(如使用 RPA)實現自動化測試。幸運的是,postman?還提供了一個命令行工具?newman,我們可以借助?postman?+?newman 來實現 API 自動化測試。
2
名詞解析? ? ? ?
1.?Collection
Collection 是一組保存的請求,postman?中發送的每個請求都會顯示在側欄的 ”歷史記錄“ 選項卡下。請求數量比較少的時候,通過歷史記錄來重用請求會比較方便。隨著請求量的增長,在歷史記錄中查找特定請求可能會非常耗時。此時,你可以將所有請求保存為一個 collection,以便于訪問。
2.?Environment
Environment 是一組可以在 postman?請求中使用的變量。你可以根據不同的環境(如 dev、test、prod 等),把一組相關的變量放到不同的?environment?文件中,來對不同的環境進行 API 自動化測試。
3
使用說明? ? ? ?
我們以測試百度的?https://www.baidu.com/sugrec 這個 API?作為示例。
1.?創建 Collection
新建 collection:
新建請求:
測試請求,狀態碼返回 200:
編寫測試斷言并驗證斷言:
pm.test("Return 200", function() {pm.response.to.have.status(200)
})
2.?創建 Environment
新建 environment:
填寫參數信息,這里簡單使用 host 作為參數:
在 collection 的請求中使用?host?參數,并進行測試:
3.?導出 Collection 和 Environment
導出?collection?為?collection.json:
導出?environment?為?environment.json:
3.?執行 API 測試
我們只需要基于導出的?collection.json 和?environment.json 執行一條 docker 指令即可完成 API 測試:
docker?run?--rm?-i?-v?/root/postman:/etc/newman?\--entrypoint sh postman/newman:alpine -c \'npm i -g newman-reporter-html; \newman run collection.json \--suppress-exit-code 1 \--color off \--reporters cli,html\--reporter-html-export api_report.html \--environment=environment.json'
指令解析:
項目 | 說明 |
docker run | 啟動 docker 容器 |
--rm?? | 退出容器時銷毀容器 |
-i | 交互模式 |
-v /root/postman:/etc/newman | 目錄掛載 |
--entrypoint sh postman/newman:alpine -c | 容器執行指令 |
npm i -g newman-reporter-html | 安裝 html 報告插件 |
newman run collection.json | 指定測試 collection.json |
--suppress-exit-code 1? | 指定錯誤狀態碼為 1 |
--color off??? | 關閉顏色 |
--reporters cli,html | 輸出命令行和 html 報告 |
--reporter-html-export api_report.html? | 設置輸出 html 文件名 |
--environment=environment.json | 指定?environment.json 文件 |
執行結果:
查看 html 報告:
4.?集成 CI 實現 API 自動化測試
你只需要針對你的代碼項目準備好?collection.json?和?environment.json,把它們存放到代碼中的某個目錄,然后在 jenkins?或 gitlab-ci?中添加執行上面介紹的 docker 指令即可。
4
參考總結? ? ? ?
以上就是本文希望分享的內容,如果大家有什么問題,歡迎在公眾號 - 跬步之巔留言交流。