2016-08-05 7 views
0

Допустим, файл CSV (abc.csv) содержит 10 записей учетных данных входа (Email, Password), и я хочу получить эти значения сразу с помощью сценария Beanshell, чтобы убедиться, что CSV должен открываться только один раз и избегать открытие файла CSV 10 раз для извлечения каждой отдельной записи, которая создает проблему следующей ошибки:JMeter: Как получить и использовать значения csv из сценария beanshell, чтобы избежать ошибки «Слишком много открытых файлов»?

«Слишком много открытых файлов» в данных ответа.

Есть ли способ сделать это?

ответ

0

Вы можете сделать это с чем-то вроде:

import org.apache.jmeter.threads.JMeterContextService; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Scanner; 
import java.util.Hashmap; 
import java.util.Map; 

File csvFile = new File("/home/yourname/folder/csvFile.csv"); 
csvData = new Hashmap<String,String>(); 

csvData = null; 

try (Scanner scanner = new Scanner(csvFile)) { 
    while (scanner.hasNextLine()) { 
     String[] line = scanner.nextLine().split(","); 
     csvData.put(line[0],line[1]); 
    } 
} catch (FileNotFoundException ex) { 
    ex.printStackTrace(); 
} 

JMeterContextService.getContext().getVariables().put("csvHashmap", csvData); 

Это можно сделать в самом начале, вы должны открыть файл только один раз, а затем использовать объект хэш-карту, хранящуюся в памяти.

+0

Но это показывает ошибку как: 2016/08/05 16:15:31 ERROR - jmeter.util. BeanShellInterpreter: ошибка при вызове метода bsh: eval \t В файле: встроенная оценка: '' import org.apache.jmeter.threads.JMeterContextService; import java.io.File; impo. , , «Encountered», «в строке 8, столбец 17. – Anonymous

+0

Я видел две потенциальные проблемы ... Позвольте мне сделать редактирование. –

+0

Я инициализировал хэш-таблицу и заменил оператора бриллианта. –

0

Я не думаю, что ваша проблема со «слишком большим количеством открытых файлов» будет исправлена ​​обходным способом, о котором вы думаете.

IMHO, он просто сделает ваш тест менее ремонтопригодным и менее масштабируемым.

Это проблема с конфигурацией сервера для вашей учетной записи.

Вы должны применить то, что было рекомендовано к вам вопрос: