Escriba los datos adjuntos al final de cada línea en el archivo CSV
1. Análisis de la demanda.
Cuando se usa la herramienta jmeter para pruebas concurrentes, a veces necesitamos agregar los datos extraídos del extractor json al final de cada línea del archivo csv para su uso posterior en el programa. por ejemplo: cuando el programa ejecuta el primer subproceso, agrega los nuevos datos extraídos al final de la primera línea, cuando el programa ejecuta el segundo subproceso, agrega los nuevos datos extraídos al final de la segunda línea, y así sucesivamente ...
2. Preparación de datos
(1) Se deben preparar tres archivos csv, a saber, read.csv, read-copy.csv, write.csv. Recuerde configurar en formato UTF-8.
Explique:
read.csv se proporciona a la herramienta jmeter en sí para leer, como se muestra a continuación:
read_copy.csv y write.csv son utilizados por los usuarios para escribir y leer programas java, y el código se coloca en el programa de procesamiento posterior de BeanShell
Tercero: Primero complete la escritura y depuración del código en eclipse
La implementación del código:
(1) La primera ejecución del programa: la segunda línea de datos en read_copy.csv (eliminando el campo de encabezado de la primera línea) y los nuevos datos obtenidos (los nuevos datos extraídos songteng2012) se agregan al archivo write.csv En la segunda línea (el campo de encabezado de la primera línea se ha agregado durante la etapa de preparación de datos).
(2) Luego elimine la segunda línea de datos en read_copy.csv.
(3) La segunda ejecución del programa: la segunda línea de datos en read_copy.csv (eliminar el campo de encabezado de la primera línea) y los nuevos datos adquiridos (nuevos datos extraídos songteng2012) se agregan a la tercera línea del archivo write.csv .
(4) Luego elimine la segunda línea de datos en read_copy.csv.
Y así sucesivamente ...
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. Ejecución del programa.
1. Datos antes de la ejecución
2. Datos después de la ejecución del programa una vez
5. El programa se coloca en el programa de posprocesamiento BeanShell de jmeter
Cabe señalar en el postprocesador de BeanShell que no necesitamos declarar clases.