在Postman中使用多次/表单数据点击方法的上传文件的预请求脚本2次

时间:2018-12-21 14:50:16

标签: api file-upload postman postman-pre-request-script

我正在与API项目合作,并与Postman一起编写测试用例,以实现自动化以检查API状态。在这里,我有一种上传方法,用户必须将文件上传到服务器,并需要检查服务器是否返回适当的响应。

我接受来自邮递员的包含multipart / form-data的请求的上传方法,如下图所示:

enter image description here

我相信,为了编写测试用例,我需要编写请求前脚本。

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

但是,该方法被击中两次,是否有任何想法使其正确并且仅被击中一次?

2 个答案:

答案 0 :(得分:1)

我仔细阅读了文档,发现问题出在哪里。我在使用Runner运行收集程序时遇到了问题,在寻找了一种处理文件上传的方法之后,我终于来到了纽曼,在这种情况下,这似乎很容易。但是,仍不清楚如何在使用Runner运行时上传文件!

根据上面的评论:

  

由于安全原因,邮递员赛跑者不支持文件上传   直。查找Github线程   here

答案 1 :(得分:0)

您可以在收藏中的此之前添加请求,以便在下一个需要时上传。尽管良好的实践表明,请求应该是具有预请求的原子性,但这将非常困难。如果您坚持这样做,您可以使用文件的 base64 字符串来实现它并使用 formdata 发送请求。另一个选项在管道中与 Newman 一起运行。您所要做的就是导出集合、环境和测试文件,并确保导出的 json 中没有绝对路径。 (Newman 应该从包含 collection 和 env json 文件的目录中执行)