Api Postman中使用多部分/表单数据命中方法2次上传文件的预请求脚本
我正在与API项目合作,并与Postman一起编写自动化测试用例,以检查API状态。这里我有一个上传方法,用户必须将文件上传到服务器,并需要检查服务器是否返回适当的响应 Upload方法使用多部分/表单数据接受请求,来自我要传递的邮递员,如下屏幕所示: 我相信为了编写测试用例,我需要编写一个预请求脚本Api Postman中使用多部分/表单数据命中方法2次上传文件的预请求脚本,api,file-upload,postman,postman-pre-request-script,Api,File Upload,Postman,Postman Pre Request Script,我正在与API项目合作,并与Postman一起编写自动化测试用例,以检查API状态。这里我有一个上传方法,用户必须将文件上传到服务器,并需要检查服务器是否返回适当的响应 Upload方法使用多部分/表单数据接受请求,来自我要传递的邮递员,如下屏幕所示: 我相信为了编写测试用例,我需要编写一个预请求脚本 pm.sendRequest({ url: pm.environment.get("baseURL") + '/document/upload', method: 'POST',
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运行collection时,我遇到了一个问题,在找到了处理文件上传的方法之后,我终于找到了Newman,这对于此类场景来说似乎很容易。然而,在使用Runner运行时如何上传文件还不清楚 根据上述意见: 由于安全原因,Postman runner不支持文件上载 直接地查找Github线程
我看了一下文件,发现了问题所在。在使用Runner运行collection时,我遇到了一个问题,在找到了处理文件上传的方法之后,我终于找到了Newman,这对于此类场景来说似乎很容易。然而,在使用Runner运行时如何上传文件还不清楚 根据上述意见: 由于安全原因,Postman runner不支持文件上载 直接地查找Github线程
您可以在集合中的此请求之前添加请求,以便在下一个集合中需要时进行上载。尽管良好的实践表明,请求应该是原子的,而预请求是非常困难的。若您坚持这样做,您可以使用base64文件字符串来实现它,并使用formdata发送请求。另一个选项在管道中与Newman一起运行。您所要做的就是导出集合、环境和测试文件,并确保导出的json中没有绝对路径。Newman应该从包含集合和env json文件的目录中执行您可以在集合中的这一个之前添加请求,以便在下一个集合中进行上载(如果需要)。尽管良好的实践表明,请求应该是原子的,而预请求是非常困难的。若您坚持这样做,您可以使用base64文件字符串来实现它,并使用formdata发送请求。另一个选项在管道中与Newman一起运行。您所要做的就是导出集合、环境和测试文件,并确保导出的json中没有绝对路径。Newman应该从包含集合和env json文件的目录中执行它肯定会命中两次,因为您已经发送了请求,并且您也在测试脚本中编写了此脚本以发送另一个请求。在请求执行阶段,首先执行请求前脚本,然后执行请求本身,最后执行测试脚本。因此,只要您点击“发送”,那么这两个请求都将执行,然后执行完成。当您已经在主请求中发送api数据时,为什么要使用pm.sendRequest?是的,我已经查看了文档,发现了问题所在。在使用Runner运行collection时,我遇到了一个问题,在找到了处理文件上传的方法之后,我终于找到了newman,这对于此类场景来说似乎很容易。然而,在使用Runner运行时如何上传文件还不清楚@我知道这个问题。由于安全原因,现在已经这样做了,但您可以参考以下问题:我已经解释了为什么会出现这种行为,我们正在积极跟踪在应用程序中存储文件路径的问题。纽曼是目前最好的解决方案。@SivcanSingh,好的,谢谢你提供的信息@SivcanSingh,我可以知道Postman用于测试脚本的框架是什么吗?我看到.not.eql或.not.equal不起作用。它肯定会命中两次,因为您已经发送了请求,并且您也在测试脚本中编写了此脚本以发送另一个请求。在请求执行阶段,首先执行请求前脚本,然后执行请求本身,最后执行测试脚本。因此,只要您点击“发送”,那么这两个请求都将执行,然后执行完成。当您已经在主请求中发送api数据时,为什么要使用pm.sendRequest?是的,我已经查看了文档,发现了问题所在。在使用Runner运行collection时,我遇到了一个问题,在找到了处理文件上传的方法之后,我终于找到了newman,这对于此类场景来说似乎很容易。然而,在使用Runner运行时如何上传文件还不清楚@我知道这个问题。这是由于
出于安全原因,现在已经这样做了,但您可以参考以下问题:我已经解释了为什么会出现这种行为,我们正在积极跟踪在应用程序中存储文件路径的问题。纽曼是目前最好的解决方案。@SivcanSingh,好的,谢谢你提供的信息@SivcanSingh,我可以知道Postman用于测试脚本的框架是什么吗?我看到.not.eql或.not.equal不起作用。