17.Jmeter - javacsv.jar应用示例

前置条件.需要到网上下载javacsv.jar,然后将其放入apache-jmeter\lib目录,下载地址:https://mvnrepository.com/,搜索javacsv即可

javacsv.jar与集合结合使用,将N行N列的数据添加到CSV文件中

要读取的StemQ.csv文件:

17.Jmeter - javacsv.jar应用示例_第1张图片

需要写入的test.csv文件,结果需要将StemQ.csv文件文件第二列的数据改为hello:


import com.csvreader.CsvReader;

import com.csvreader.CsvWriter;

import java.io.IOException;

import java.nio.charset.Charset;

import java.util.ArrayList;

        log.info("------------>"+"读excel数据");

// 用来保存数据

      csvFileList = new ArrayList();

// 定义一个CSV路径

        String csvFilePath = "D://OPPO//jmeter//my config//Test WriteCSV//StemQ.csv";

// 创建CSV读对象 例如:CsvReader(文件路径,分隔符,编码格式);

        CsvReader reader = new CsvReader(csvFilePath, ',', Charset.forName("gb2312"));

        // 跳过表头 如果需要表头的话,这句可以忽略

      // reader.readHeaders();

// 逐行读入除表头的数据

        while (reader.readRecord()) {

          //  log.info( "------------>"+reader.getRawRecord() );  //用于调试值是否传入成功

            csvFileList.add(reader.getValues()); //将读取到的数据添加到list中

        }

        reader.close();

// 遍历读取的CSV文件

        for (int row = 0; row < csvFileList.size(); row++) {

            // 取得第row行第0列的数据

            for(int column=0;column

                String cell = csvFileList.get(row)[column];

                log.info("打印第" +row+"行,第"+column+"列的数据:"+ cell);

                //log.info("------------>"+cell);  //用于调试值是否传入成功

            }

        }

        //更改第N行第2列的数据,忽略表头

        for (int row = 1; row < csvFileList.size(); row++) {

                //更改第N行第2列的数据

                csvFileList.get(row)[1]="hello";

                log.info("打印第" +row+"行,第"+2+"列的数据:"+ csvFileList.get(row)[1]);

                //log.info("------------>"+cell);  //用于调试值是否传入成功

        }

      log.info("------------>"+"写excel数据");

        // 定义一个CSV路径

        String csvFilePathW = "D://OPPO//jmeter//my config//Test WriteCSV//test.csv";

// 创建CSV写对象 例如:CsvWriter(文件路径,分隔符,编码格式);

        CsvWriter csvWriter = new CsvWriter(csvFilePathW, ',', Charset.forName("UTF-8"));

        String[] csvContent = new String[100];

        for (int row = 0; row < csvFileList.size(); row++) {

            // 取得第row行第0列的数据

            for(int column=0;column

                String cell = csvFileList.get(row)[column];

              log.info("打印第" +row+"行,第"+column+"列的数据:"+ cell);

                csvContent[column]=cell;

            }

            csvWriter.writeRecord(csvContent); //将第i行数据写道csv中

        }

        csvWriter.flush();

        csvWriter.close();


问题,结果出现乱码:


17.Jmeter - javacsv.jar应用示例_第2张图片

解决方法:使用Notepad++将StemQ.csv文件的编码格式改为UTF-8


17.Jmeter - javacsv.jar应用示例_第3张图片


17.Jmeter - javacsv.jar应用示例_第4张图片

你可能感兴趣的:(17.Jmeter - javacsv.jar应用示例)