在 Postman 中使用 multipart/form-data 命中方法 2 次的上传文件的预请求脚本

Pre request script of upload file with multipart/form-data hitting method 2 times in Postman

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

接受来自 Postman 的请求的上传方法 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);
}); 

然而,该方法被击中了两次,有没有想法让它正确并且只被击中一次?

我查看了文档并弄清楚了问题所在。我在使用 Runner 进行 运行 收集时遇到了问题,在寻找一种处理文件上传的方法后,我终于来到了 Newman,这对于这种情况来说似乎很容易。但是,目前还不清楚如何在 运行 使用 Runner 时上传文件!

根据上面的评论:

Due to security reasons Postman runner doesn't support file uploading directly. Find Github thread here

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