根据文件夹的大小,在不同的文件夹中有不同的images
。每个文件夹都有多个目录,如CX
和MX
或VX
。每个CX
/MX
/VX
都有SER00001
、SER00002
、SER00003
。每个文件夹都有所有的图像。
使用案例:
1.选择任意大小的任意随机目录,如5MB或30MB或1GB
1.每个5MB/30MB/1Gb文件夹都有CX
、MX
或VX
等文件夹。
1.每个CX/MX/VX
具有SER00001/SER00002/SER00003...
文件夹。
1.每个SER00001/SER00002/SER00003...
文件夹包含图像。
1.根据all
或single
或CX
的选择,将选择MX
或VX
,就像选择all
一样,将选择所有CX,VX & MX
,并在所有文件夹中最终选择其下的图像。现在,对于单个文件夹,将仅选择CX,VX and MX
中的一个文件夹,并选择所有SER
文件夹,最终选择其下的图像
import groovy.io.FileType;
def dir = new File(vars.get("dirName"));
def selectionPattern = ["All","Single"];
def list = [];
def listNew = [];
def list_series = [];
def list_images = [];
def modalityDir = [];
def modalityFileName = [];
def finalModalityName = [];
def rnd = new Random();
def rndSelect = new Random();
def userSelectionForModalityFolder = selectionPattern[rndSelect.nextInt(selectionPattern.size())];
if (userSelectionForModalityFolder === "All") {
dir.eachDir() {
dirList ->
list << dirList
}
def randomParentDirectorySelected = list[rnd.nextInt(list.size())];
randomParentDirectorySelected.eachDir() {
listDir ->
list_series << listDir
}
for (allSelectionDir in list_series) {
allSelectionDir.eachDir() {
allSelectDirectory ->
list_images << allSelectDirectory
}
}
for (int b = 0; b < list_images.size(); b++) {
File[] modalityFiles = list_images[b].listFiles();
modalityFileName << modalityFiles
}
for (int n = 0; n < modalityFileName.size(); n++) {
for (int p = 0; p < modalityFileName[n].size(); p++) {
finalModalityName << modalityFileName[n][p]
}
}
vars.putObject("All_Modality",finalModalityName);
} else {
dir.eachDir() {
dirList ->
list << dirList
}
def randomParentDirectorySelected = list[rnd.nextInt(list.size())]
randomParentDirectorySelected.eachDir() {
secDirList ->
listNew << secDirList
}
if (listNew.size() > 2) {
def totalFile = ranSelect.nextInt(listNew.size());
} else {
Random ranSelect = new Random();
def totalFile = ranSelect.nextInt(listNew.size() + 4);
def random_ModalitySelection = listNew[rnd.nextInt(listNew.size())]
random_ModalitySelection.eachDir() {
modalityD ->
modalityDir << modalityD
}
for (int i = 0; i < modalityDir.size(); i++) {
File[] modalityFiles = modalityDir[i].listFiles();
modalityFileName << modalityFiles
}
for (int j = 0; j < modalityFileName.size(); j++) {
for (int k = 0; k < modalityFileName[j].size(); k++) {
finalModalityName << modalityFileName[j][k]
}
}
vars.putObject("All_Modality",finalModalityName);
}
}
这段代码工作正常,但我已经声明了太多的名单内我的代码,当我运行大量的图像文件,我得到了较长的代码响应
1条答案
按热度按时间iaqfqrcu1#
1.我不认为使用随机数据是一个好主意,因为我认为测试必须是repeatable,而使用您的方法,如果检测到性能问题,则必须采取额外的步骤来重放测试场景
1.如果生成列表耗费时间/资源,您可以将其移至setUp Thread Group,为每个虚拟用户预先生成文件列表,并将其写入CSV文件。然后,在主线程组中,您可以使用CSV数据集配置,这将是最快的选项,并将为您提供第1点中提到的可重复性。