2016-08-05 3 views
0

CSVファイル(abc.csv)にはログイン資格情報(電子メール、パスワード)のレコードが10個含まれているので、Beanshellスクリプトを使用してこれらの値を一度に取得してCSVを一度だけ開いてCSVファイルを10回開いて次のエラーの問題を引き起こすレコードを1つずつ取得する:JMeter: "Too many open files"エラーを避けるためにbeanshellスクリプトからcsv値を取得して使用するには?

応答データに "オープンファイルが多すぎる"

これを行う方法はありますか?

答えて

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年8月5日午後04時15分31秒ERROR - jmeter.util。 BeanShellInterpreter:bshメソッドを呼び出す際のエラー:eval \tファイル:インライン評価: '' import org.apache.jmeter.threads.JMeterContextService; import java.io.File;インポ。 。 "遭遇しました"、 "8行目、17欄。 – Anonymous

+0

私は2つの潜在的な問題を見ることができました...私は編集をしましょう。 –

+0

ハッシュテーブルを初期化し、ダイヤモンド演算子を置き換えました。 –

0

オープンファイルが多すぎるという問題は、あなたが考える回避策では解決されないと思います。

IMHO、テストのメンテナンス性が低下し、スケーラビリティが低下するだけです。

あなたのアカウントのサーバー設定に問題があります。

あなたは質問であなたに知らされていたものを適用する必要があります。

関連する問題