CSV文件每行的末尾追加写数据

本文介绍如何使用Java编程在CSV文件中动态追加数据,并通过JMeter工具进行并发测试,包括数据准备、代码实现及在BeanShell后置处理程序中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSV文件每行的末尾追加写数据

一.需求分析

使用jmeter工具并发测试时,我们有时候需要把json提取器中提取的数据追加写到csv文件每行的末尾,以备之后的程序使用。eg:程序执行第一个线程时把提取的新数据追加到第一行的末尾,程序执行第二个线程的时候把提取的新数据追加到第二行的末尾,依次类推…

二.数据的准备

(1)需准备三个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

三.先在eclipse中完成代码的编写调试

代码的实现:
(1) 程序第一次运行:read_copy.csv中的第2行数据(去掉第一行的头字段)和获取到的新数据(提取的新数据songteng2012)追加到write.csv文件第2行中(第一行的头字段在数据准备阶段已添加好)。
(2) 然后删除运行read_copy.csv中的第2行数据。
(3) 程序第二次运行:read_copy.csv中的第2行数据(去掉第一行的头字段)和获取到的新数据(提取的新数据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();
						
	
	}
	

}

四.程序执行

1.执行前数据
执行前数据
2.程序执行一次后的数据
执行后的数据

五.程序放在jmeter的BeanShell 后置处理程序中

BeanShell 后置处理程序中要注意的是不需要我们去声明类。
BeanShell 后置处理程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值