CSVファイルの各行の末尾に追加されたデータを書き込みます

CSVファイルの各行の末尾に追加されたデータを書き込みます

1.需要分析

jmeterツールを同時テストに使用する場合、後でプログラムで使用するために、json抽出プログラムから抽出したデータをcsvファイルの各行の末尾に追加する必要がある場合があります。例:プログラムが最初のスレッドを実行すると、抽出された新しいデータが最初の行の最後に追加され、プログラムが2番目のスレッドを実行すると、抽出された新しいデータが2番目の行の最後に追加されます。

2.データの準備

(1)3つのcsvファイル、つまりread.csv、read-copy.csv、write.csvを準備する必要があります。UTF-8形式に設定することを忘れないでください。
csvファイルデータの準備
説明:
read.csvは、以下に示すように、読み取り用にjmeterツール自体に提供されます
read.csv
。read_copy.csvとwrite.csvは、Javaプログラムの書き込みと読み取りに使用され、コードはBeanShell後処理プログラムに配置されます。
read_copy.csv和write.csv

3.最初に、Eclipseでコードの記述とデバッグを完了する

コードの実装:
(1)プログラムの最初の実行:read_copy.csvのデータの2行目(最初の行のヘッダーフィールドを削除)および取得した新しいデータ(抽出された新しいデータsongteng2012)は、write.csvファイルに追加されます。 2行目(データ準備段階で1行目のヘッダーフィールドが追加されています)。
(2)次に、read_copy.csvの2行目のデータを削除します。
(3)プログラムの2回目の実行:read_copy.csvの2行目のデータ(1行目のヘッダーフィールドを削除)と取得した新しいデータ(抽出した新しいデータsongteng2012)を、write.csvファイルの3行目に追加します。 。
(4)次に、read_copy.csvの2行目のデータを削除します。
などなど...

import java.io.File;

import java.io.BufferedReader;
import java.io.BufferedWriter;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;



public class Opera_csv{
	
	//eclipse编写中我们只需要read_copy.csv和write.csv这2个文件即可.		
	String readPath = "D:\\Jmeter\\apache-jmeter-5.1.1\\bin\\生成密钥实战Opera_csv\\read_copy.csv";
	String writePath = "D:\\Jmeter\\apache-jmeter-5.1.1\\bin\\生成密钥实战Opera_csv\\write.csv";
	
	
		
	//读取read_copy中行的数据和提取到的新数据,把这些数据追加写到write.csv中
	public void write_csv() throws IOException {	
				
		BufferedReader r = new BufferedReader(new FileReader(new File(readPath)));			
		BufferedWriter w =new BufferedWriter(new FileWriter(writePath,true));						
		String temp = null;
		r.readLine();
		if((temp = r.readLine()) != null){
			temp =temp + "," + "提取的新数据songteng2012";
			w.write(temp);
			w.write("\r\n");			
		}			
			
		w.close();
		r.close();
		
		
		del_row();
																			
	}
		
		
	//删除read_copy中的第二行数据
	public void del_row() throws IOException{
				
		
		BufferedReader r = new BufferedReader(new FileReader(new File(readPath)));
		StringBuffer str = new StringBuffer(4096);			
		String temp = null;			
		int line = 0;
		int lineDel = 2;			
		while((temp=r.readLine()) != null) {
			line++;
			if(line == lineDel) continue;
			str.append(temp).append("\r\n");
		}
		r.close();			
		BufferedWriter w =new BufferedWriter(new FileWriter(readPath));
		w.write(str.toString());
		w.close();									
		
	}
	
	
	public static void main(String[] args) throws IOException
	{	

		Opera_csv s = new Opera_csv();
		s.write_csv();
						
	
	}
	

}

4.プログラムの実行

1.実行前のデータ
実行前データ
2.プログラムを1回実行した後のデータ
実行後のデータ

5.プログラムはjmeterのBeanShell後処理プログラムに配置されます

BeanShellポストプロセッサでは、クラスを宣言する必要がないことに注意してください。
BeanShellポストプロセッサー

21件のオリジナル記事を掲載 いいね1 訪問数380

おすすめ

転載: blog.csdn.net/songteng2012/article/details/105432284