【问题标题】:Is there a way to upload files with Artillery?有没有办法用炮兵上传文件?
【发布时间】:2021-08-21 13:34:09
【问题描述】:
有没有用大炮测试上传文件(表单数据)的好方法? http-file-uploads 插件仅适用于 Artillery Pro。我尝试了这个线程https://github.com/artilleryio/artillery/issues/320中给出的解决方案,编写了一个beforeRequest Js方法,但没有成功。
const formData = {
fileOCR: fs.createReadStream(__dirname + '/files/ocr.png'),
};
requestParams.formData = Object.assign({}, requestParams.formData, formData);
return next();
}
我在表单数据中的文件字段称为“文件”
【问题讨论】:
标签:
node.js
testing
upload
load
artillery
【解决方案1】:
根据artillery documentation通过multipart/form-data上传文件,你必须创建一个custom function。
const fs = require('fs');
const FormData = require('form-data');
function addMultipartFormData(requestParams, context, ee, next) {
const form = new FormData();
form.append('files', fs.createReadStream(__dirname + '/resources/someFile.pdf'));
requestParams.body = form;
return next();
}
然后你可以在你的测试定义文件的beforeRequest钩子中执行这个函数。
- post:
url: "http://server/file/upload"
beforeRequest: 'addMultipartFormData'