我有一个场景,我必须上传一个唯一的命名文本文件。我在线程级别使用了计数器,并使用引用名称作为文件名。如果我想上传File_1.txt,我使用了一些东西像这样file_${counter_refname}
。这就像单机中的魅力一样,但现在的问题是当我在分布式模式下运行时,slave_1正在上传File_1.txt而Slave 2机器也正在上传相同的文件File_1.txt 。目标服务器不允许上传具有相同名称的文件。如何解决这个问题??
答案 0 :(得分:0)
使用包含文件名的CSVData Set。
为每个分布式节点创建1个文件,并确保所有这些文件永远不会包含相同的文件名。
为此,首先创建一个具有唯一名称的文件,然后将其拆分为与节点一样多的文件。
另一个选择是,如果序列号不重要,只需使用__UUID函数生成一个唯一的文件名:
答案 1 :(得分:0)
有一些功能可以帮助识别从机和参数化文件名。
此外,您可以查看__Random()或__RandomString()函数,以便随时生成具有随机名称的唯一文件,即Beanshell PreProcessor,如下所示:
import org.apache.commons.io.FileUtils;
String filename = "file_${__Random(10000,99999,)}.txt";
FileUtils.writeStringToFile(new File(filename), "a quick brown fox", "UTF-8");
vars.put("filename", filename);
请在必要时将生成的文件名称为${filename}
。