当前位置: 首页> 健康> 美食 > 二维码制作app_杭州创意设计中心_做百度线上推广_世界比分榜

二维码制作app_杭州创意设计中心_做百度线上推广_世界比分榜

时间:2025/9/26 2:36:25来源:https://blog.csdn.net/u011537504/article/details/145503822 浏览次数:0次
二维码制作app_杭州创意设计中心_做百度线上推广_世界比分榜

在 JMeter 中实现向 CSV 文件的 指定列追加数据,需根据场景选择不同方法。以下是两种典型场景的实现方案:


场景 1:生成新行时填充指定列的数据

若每次请求生成一行新数据,并在特定列填充动态值(如第三列),可以通过拼接变量实现:

步骤:
  1. 定义 CSV 表头:确保 CSV 文件已存在或首行包含列名(如 列1,列2,列3)。
  2. 使用 BeanShell/JSR223 脚本:动态拼接数据并写入 CSV。
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;// CSV 文件路径
String csvFilePath = "C:/test/output.csv";// 从 JMeter 变量获取动态值
String column1 = vars.get("column1"); // 第一列数据
String column2 = vars.get("column2"); // 第二列数据
String column3 = "动态值";            // 指定列(第三列)数据// 拼接行数据(逗号分隔)
String rowData = column1 + "," + column2 + "," + column3;// 写入 CSV(UTF-8 编码,追加模式)
try (OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(csvFilePath, true), "UTF-8")) {// 如果是新文件,写入表头if (new File(csvFilePath).length() == 0) {writer.write("列1,列2,列3\n");}writer.write(rowData + "\n");
} catch (Exception e) {e.printStackTrace();
}

场景 2:修改现有 CSV 的指定列(覆盖或追加)

若需修改已有 CSV 文件中某列的值(例如根据条件更新第三列),需读取整个文件、修改数据后重写:

步骤:
  1. 使用 OpenCSV 库:简化 CSV 读写操作。
    • 下载 OpenCSV JAR 并放入 JMeter 的 lib 目录。
  2. 读取 CSV → 修改指定列 → 写回文件
import com.opencsv.CSVReader;
import com.opencsv.CSVWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.List;String csvFilePath = "C:/test/output.csv";
int targetColumnIndex = 2; // 第三列(索引从 0 开始)// 1. 读取 CSV 全部数据
List<String[]> csvData;
try (CSVReader reader = new CSVReader(new FileReader(csvFilePath))) {csvData = reader.readAll();
}// 2. 修改指定列的数据(示例:为每一行的第三列追加 "_new")
for (String[] row : csvData) {if (row.length > targetColumnIndex) {row[targetColumnIndex] = row[targetColumnIndex] + "_new";}
}// 3. 将修改后的数据写回 CSV
try (CSVWriter writer = new CSVWriter(new FileWriter(csvFilePath))) {writer.writeAll(csvData);
}

关键注意事项

  1. 并发写入问题

    • 如果多线程同时操作同一文件,需使用同步锁或避免并发写入。
    • 示例(在 BeanShell 中加锁):
      synchronized("fileWriteLock") { // 全局锁// 写入文件的代码
      }
      
  2. 性能优化

    • 频繁读写大文件会降低性能,建议仅在必要时操作 CSV。
    • 可考虑将数据暂存到内存,测试结束后一次性写入。
  3. 动态列管理

    • 若列位置不固定,建议先读取表头确定列索引:
      String[] header = csvData.get(0);
      int targetColumnIndex = Arrays.asList(header).indexOf("列名");
      

总结

  • 追加新行:直接拼接数据并写入,适合按请求生成独立记录。
  • 修改现有列:使用 OpenCSV 读取→修改→覆盖,适合批量更新。
  • 根据需求选择方案,优先确保编码(UTF-8)和并发安全。
关键字:二维码制作app_杭州创意设计中心_做百度线上推广_世界比分榜

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: