您可以使用從這個beanshell(= java)代碼執行BeanShell Sampler/BeanShell PostProcessor/BeanShell PreProcessor。
下面的代碼將讀取你的文件中的所有行,然後選擇一個隨機:
import java.text.*;
import java.io.*;
import java.util.*;
String [] params = Parameters.split(",");
String csvTest = params[0];
String csvDir = params[0];
ArrayList strList = new ArrayList();
try {
File file = new File(System.getProperty("user.dir") + File.separator + csvDir + File.separator + csvTest);
if (!file.exists()) {
throw new Exception ("ERROR: file " + csvTest + " not found in " + csvDir + " directory.");
}
BufferedReader bufRdr = new BufferedReader(new FileReader(file));
String line = null;
while((line = bufRdr.readLine()) != null) {
strList.add(line);
}
bufRdr.close();
Random rnd = new java.util.Random();
vars.put("csvUrl",strList.get(rnd.nextInt(strList.size())));
}
catch (Exception ex) {
IsSuccess = false;
log.error(ex.getMessage());
System.err.println(ex.getMessage());
}
catch (Throwable thex) {
System.err.println(thex.getMessage());
}
然後你就可以通過變量來訪問提取的URL($ {} csvUrl在這個例子中)。
我只懷疑在每次迭代時讀取完整文件(如果必須在循環中執行此操作)從性能的角度來看是很好的解決方案。
有合適的解決方案嗎? – 2012-05-10 16:11:47