【发布时间】:2022-10-06 22:31:18
【问题描述】:
如何从路径中获取文件和文件夹列表?搜索时是否可以应用正则表达式?
-
你到底想做什么?你的用例是什么?我不认为这是可能的,但这个问题缺乏正确回答的细节。
-
@knittl 就像想要检查目录中某些格式的文件名一样简单。将使用这些文件来测试不同的有效负载,作为集成/业务规则测试的实际场景,而不仅仅是负载测试。
-
这听起来像是应该在 k6 之外完成的事情。 k6 只会执行单个脚本文件,并且不支持扫描本地文件系统。
标签: k6
如何从路径中获取文件和文件夹列表?搜索时是否可以应用正则表达式?
标签: k6
默认情况下,您无法从 k6 脚本访问文件系统,这是因为设计选择(安全性)。如果这些文件是 js 文件,您可以导入它们或将它们与 webpack 捆绑在一起。
如果你真的需要阅读文件,你可以写一个k6 extension。例如xk6-file 是 k6 扩展写作到文件。你可以从这个开始。
【讨论】:
我解决这个问题的方法是:
SharedArray来获取之前的列表,对其进行迭代,并创建一个包含之前所有文件内容的最终数组。
代码看起来与此非常相似:
const data = new SharedArray('reqs', function () {
const file = open('/requests_list.json');
const list = JSON.parse(file);
const requests = [];
list.forEach(filePath => {
requests.push(open(`/requests/${filePath}`))
});
return requests;
});
export default function () {
const body = data[Math.floor(Math.random() * data.length)];
const res = http.post(url, body, params);
check(res, { 'status was 200': (r) => r.status == 200 });
sleep(1);
}
【讨论】: