Postman還可以生成測試報告,還是多種格式報告?
Postman團隊開源Newman作為Postman運營工具,該開源庫使用命令行方式執行Postman 腳本,並且生成多種格式報告,還支持Postman SDK 純代碼腳本化Postman。
最近匯總所有支持Postman生成的報告,就是這個demo工程Postman-super-run它能幫助你執行Postman腳本(collection.json)並生成測試結果報告。
生成報告格式,如下圖所示:
命令行輸入mocha並回車,如此簡單,就可執行Postman腳本並自動生成不同格式測試報告。
一、工具地址
https://github.com/liyinchigithub/Postman-super-run
二、環境要求
Nodejs
如果你的電腦已安裝配置Nodejs,此步驟可跳過。
如果還沒有,請先安裝配置Nodejs,具體步驟參考:
https://www.runoob.com/nodejs/nodejs-tutorial.html
三、使用
打開命令行終端窗口
1、安裝
npm install
2、將Postman腳本放入postmanCollection文件夾下
3、修改./test/test.js
修改引入Postman腳本的文件名稱
腳本示例,以JavaScript單元測試Mocha來編寫,如果你對Mocha還不了解,可參考下面鏈接:
https://mochajs.org/
Mocha猶如Java Junit或TestNG
4、運行
mocha
5、自動生成報告文件
文件位置在./report文件夾下
報告示例:
html
html
CSV
json
其他報告示例詳見:
https://github.com/liyinchigithub/Postman-super-run/blob/master/README.md
四、配合持續集成
運用場景1:
公司所在其他業務線測試、產品、業務同事,需要在我負責業務線測試環境,構造一些訂單數據,用於他們后續環節流程測試,但又不想投入太多時間成本在我的業務線上,因此在jenkins配置一個job專門用來構造測試數據。
如下圖所示:
構建觸發執行shell 參數的配置
我對Postman-supper-run腳本進行調整,不在以mocha觸發腳本,而是使用nodejs命令行入參形式接收動態化參數,如下圖所示:
腳本內容,process.argv[index]用於接收命令行入參
const newman = require('newman');
var Sandbox = require('postman-sandbox'), context;
var CreateOrder = require("../environment/CreateOrder");//引入環境變量對象
var accessToken = process.argv[2];// token
var departureTimeDelay = process.argv[3];// 往后延幾個小時
var serviceId = process.argv[4];// 訂單服務類型
var carGroupId = process.argv[5];// 車組ID
var cityId = process.argv[6];// 城市ID
var passengerMobile = process.argv[7];// 乘車人手機號
var airCode = process.argv[8];// 三字碼
var isCoupons = process.argv[9];// 是否優惠券
var isEnterpriseAuthentication = process.argv[10];// 鑒權類型
我將Postman環境變量json腳本文件路徑,替換為JSON對象文件形式CreateOrder.js,方便接收jenkins傳過來的入參。
newman.run({
// Postman collection 腳本文件路徑,也可以是一個url地址
collection: require('../postmanCollection/OpenAPICreateData.postman_collection.json'),
// Postman collection 環境變量
environment: {
"id": "2fe5997e-dcda-4b4d-8b77-77256c5e1cd5",
"name": "OpenApi",
"values": CreateOrder
},
如下圖所示:
Jenskin構建結果
還可以利用jenkins各種報告插件,可以把Postman-super-run運行生成報告文件展出來。
例如:Junit xml、json、allure html等格式報告jenkins都有到相對應報告插件。
運用場景2:
業務主流程,自動化測試回歸用例腳本,定期自動執行,將生成的測試報告郵件發送給相關人員。
如下圖所示:
測試報告作為附件,郵件為報告內容。
Postman-supper-run后續拓展計划想解析報告內容,寫入到數據庫中存儲執行記錄,用於排查測試環境開發前后端代碼分支的Bug,后續有時間會更新到github分享下實現中采坑過程。