-1

私のプロジェクトでは、開始から EOF までのすべてのループ反復で CSV ファイルを読み取る必要があります。問題は、2 番目のループがファイルの先頭を見つけられなかったときに発生します。ファイル変数に設定されたEOFを常に取得します。

シナリオ:

jmeter では、1 つのスレッドと 10 のループ カウントを割り当てました。

私の要件は、すべてのループ反復で CSV ファイルのすべての行を読み取りたいということです。

例: csv ファイルでは、次のように宣言しています。

1360

1363

1468年

実行中、最初のループ カウントは常に 1360 から 1468 までのデータを読み取り、次に 2 回目の反復でデータ全体を再度読み取る必要があります。

4

2 に答える 2

0

問題は、2 番目のループがファイルの先頭を見つけられなかったときに発生します。ファイル変数に設定されたEOFを常に取得します。---ループ回数が 10 で、csv の値が 1 より大きい場合に、常に EOF を取得する方法がわかりませんでした。

私の提案は、スレッドグループ(1ユーザー1反復)にbeanshellサンプラーを持ち、すべての値をprop変数に渡すことです。

可能なコードは次のとおりです。

//ExtrenalCSVTd=path of your csv file

LineNumberReader lineReader = new LineNumberReader(new FileReader(new File(vars.get("ExtrenalCSVTd"))));

int count=0;

while((line=lineReader.readLine())!= null)
{

String[] ExtrenalCSVTd = line.split(",");
props.put("ContentFirstColumn_"+count,ExtrenalCSVTd[0]);
props.put("COntentSecondColumn_"+count,ExtrenalCSVTd[1]);
/*
.
.
.
*/
count++;
}

usejp@gc - Set Variables Action および useCounter=${__BeanShell(vars.getIteration();,)}を使用して、(スレッドの) 現在のループ数を取得します

その後、使用できますcontentName=${__P(ContentFirstColumn_${Counter},)}

于 2018-07-13T09:20:49.507 に答える
0

少し興味がありますが、コンテンツ全体を 1 つの変数に読み込んでいますか、それとも別の変数に読み込んでいますか? より良い回答をするためのスクリプトを見てみたい

CSV Data Set Config を使用している場合は、「Recycle on EOF」が True に設定されていることを確認する必要があります。

于 2013-10-03T10:07:06.513 に答える