今天使用Postman遇到一个问题。
通过单接口请求上传接口,返回值正常,但是通过Runner执行上传接口失败。
根据返回信息,说我file参数不存在??非常神奇,我怀疑是Runner校验比较严格?Content-Type改了几种类型尝试,没用。开着F12抓取了几次接口请求,一个一个盯着对,也没发现问题!十分郁闷,百度postman、runner、form-data、multipart、上传文件各种关键字搜索了一遍没有发现原因。报错信息“Required request part 'file' is not present”也搜出一堆不相关的回答,没用。
尝试在测友群里问问,也是各种不靠谱。
最后还是得搜,不记得点到哪,跳到github的一个issues。这小伙伴遇到了同样的问题。
从回答里面得知postman的runner不支持接口文件上传的操作,而且后面不打算支持这样的操作(回答是2017年)。。接着有个小伙伴很给力的给出了解决方案。
使用newman!
说干就干,找找postman里关于newman的内容
https://learning.postman.com/docs/running-collections/using-newman-cli/command-line-integration-with-newman/
命令就几条,下载来试试
// 需要nodejs环境支持npm install newman -g
导出postman中collection为json文件,打开后查看指定的文件路径是否正确。
执行【newman run test.json】运行命令,结果出来了。
执行成功,断言也正确,说明文件可以正常上传!到这也差不多了,但是newman既然支持命令行,应该也有相关的图形化报告工具!找了一下还真有。
npm install newman-reporter-html
执行有报告的参数!
// 导出html格式报告newman run test.postman_collection.json --reporters html// 指定导出位置newman run test.postman_collection.json --reporters html --reporter-html-export a.html
报告还挺详细
故意弄了2条错的试试
至此问题解决!要是有小伙伴是通过搜索关键字进来的,有帮助你解决问题的话,记得点关注!