我正在与API项目合作,并与Postman一起编写测试用例,以实现自动化以检查API状态。在这里,我有一种上传方法,用户必须将文件上传到服务器,并需要检查服务器是否返回适当的响应。
我接受来自邮递员的包含multipart / form-data的请求的上传方法,如下图所示:
我相信,为了编写测试用例,我需要编写请求前脚本。
pm.sendRequest({
url: pm.environment.get("baseURL") + '/document/upload',
method: 'POST',
header: [{
"key": "Authorization",
"value": pm.environment.get("authorization"),
"type": "text",
}],
body: {
mode: 'formdata',
formdata: [{
"key": "file",
"type": "binary",
"src": "C:\Users\Desktop\api.pdf"
}]
}
}, function(err, res) {
console.log(res);
});
但是,该方法被击中两次,是否有任何想法使其正确并且仅被击中一次?
答案 0 :(得分:1)
我仔细阅读了文档,发现问题出在哪里。我在使用Runner运行收集程序时遇到了问题,在寻找了一种处理文件上传的方法之后,我终于来到了纽曼,在这种情况下,这似乎很容易。但是,仍不清楚如何在使用Runner运行时上传文件!
根据上面的评论:
由于安全原因,邮递员赛跑者不支持文件上传 直。查找Github线程 here
答案 1 :(得分:0)
您可以在收藏中的此之前添加请求,以便在下一个需要时上传。尽管良好的实践表明,请求应该是具有预请求的原子性,但这将非常困难。如果您坚持这样做,您可以使用文件的 base64 字符串来实现它并使用 formdata 发送请求。另一个选项在管道中与 Newman 一起运行。您所要做的就是导出集合、环境和测试文件,并确保导出的 json 中没有绝对路径。 (Newman 应该从包含 collection 和 env json 文件的目录中执行)