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);