Postman是一款接口測試工具,相對Jmeter接口扁平簡潔,很方便開發調試接口使用,若是想要用來作測試,實現批量接口管理,單個接口斷言,以及特殊字符處理,甚至批量回歸測試,生成報表,結合jenkins實現CI集成都是能夠作到的。javascript
全局變量可用於postman 全部接口,設置方式以下圖,其中Initial value是一個初始值處處是可用於分享於他人,current Value是至當前工程所使用的valuehtml
環境變量可添加多個,構建接口時可選擇其中一個環境變量設置,以下圖,可添加多組不一樣環境變量信息用於不一樣環境下的測試,也可直接導入同事導出的環境變量json文件java
postman對單個接口的支持至關豐富,能夠按需選擇,結構比較扁平化,基本測試一個接口所需的東西在一個頁面均可以找到node
填入參數時Bulk Edit比較方便,特別是有多組值的時候先點擊Bulk Edit,貼入多組key:value值而後點擊key-value edit可自動轉換成表格格式。python
在作批量回歸測試的時候,有不少接口是須要相似於隨機字符串/隨機數字 或者時間戳等參數的,這種狀況咱們能夠經過腳原本實現。Pre-request Script支持JS,以下腳本實現隨機字符與特定格式時間戳並賦給環境變量:mysql
pm.environment.set("randomname","測試計劃"+Math.random()); pm.environment.set("today", getNowFormatDate()); function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var year = date.getFullYear(); var month = date.getMonth() + 1; var strDate = date.getDate(); if (month >= 1 && month <= 9) { month = "0" + month; } if (strDate >= 0 && strDate <= 9) { strDate = "0" + strDate; } var currentdate = year + seperator1 + month + seperator1 + strDate; return currentdate; }
上面pre-request腳本設置了兩個環境變量,使用的時候用兩層大括號括起來就行了,以下圖:sql
測試腳本可用於設計接口測試斷言,能夠分析response內容或者判斷請求結果及狀態等。右邊提用了不少snippets可供參考使用,支持JS語言,也能夠本身寫一些輔助腳原本使用數據庫
postman支持環境變量,全局變量及接口組合(Collection)的到如何導出,Collection右側的小箭頭點進去能夠看到share/run以及export相關的功能,導入及導出的格式爲json,能夠放在相應的工程裏方便管理與分享npm
肯定機器上安裝了NodeJs,而後經過npm安裝newman:json
npm install newman -g
安裝newman以後可經過命令行直接跑collection:
newman run mycollection.json
帶上導出的環境變量文件跑10遍:
newman run mycollection.json -e myenv.json -n 10
生成固定格式的報表(下面的命令會生成json,html,junit不一樣格式的報表):
newman run mycollection.json -e myenv.json --reporterscli,json,html,junit
有很多接口測試須要結合數據庫驗證,jmeter有提供專門的jdbc鏈接模塊,postman卻沒有,但也不是徹底不可作。對於mysql數據庫有一個One command to generate REST APIs for any MySql Database的小工具xmysql很是的神奇好用:
安裝:npm install xmysql -g
使用:xmysql -h localhost -u mysqlUser -p mysqlPassword -d databaseName
而後打開:http://localhost:3000就能夠看到上面數據庫相關的一堆json,找到你要查選的對應表,而後在postman中起一個get請求便可查詢該表全部數據,能夠在Test中添加相應的解析腳本判斷查出的結果中是否包含指望的數據:
newman做爲一個nodejs module能夠很方便的放入到一個js工程中,例如我測試的產品,cookie構造的方式很複雜,只能經過模擬登錄的方式獲取,如是我經過python寫了一個簡單的腳本經過頁面模擬登錄獲取cookie而後存入到導出的postman 環境變量json文件中,在經過newman js腳原本跑collection中的case,貼出newman js 部分腳本以下(生成html,junit格式報表用於跟jenkins集成)
var newman = require("newman"); newman.run({ collection: require('./testAdvance.postman_collection.json'), environment:require('./TestFeatured.postman_environment.json'), reporters:['cli','html','junit'] }).on('start', function (err, args) { // on start of run, log to console console.log('running a collection...'); }).on('done', function (err, summary) { if (err || summary.error) { console.error('collection run encountered an error.'); } else { console.log('collection run completed.'); } },process.exit);