jmeter - 我们如何从 Beanshell 以 CSV 格式写入数据
问题描述
在 eclipse 中执行下面的代码时它的工作但在 bean shell 中不工作?它在 writer.write(data) 附近显示错误;
所以请帮助我如何将字符串数组从 beanshell 传递到 csv
import java.io.*;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.util.List;
int i;
File file = new File("/home/sarvesh/Desktop/sgi/10");
int filecount = file.list().length;
File[] files = file.listFiles();
String[] imageString = new String[filecount];
for ( i =0;i<filecount;i++) {
File f = new File(files[i].getAbsolutePath());
FileInputStream fis = new FileInputStream(f);
byte [] byteArray = new byte[(int) f.length()];
fis.read(byteArray);
imageString[i] = Base64.getEncoder().encodeToString(byteArray);
//vars.put("imagData",imageString[i]);
FileWriter writer = new FileWriter("/home/sarvesh/Desktop/sgi/base64_csv.csv");
// List<String> data = new ArrayList<String>();
ArrayList data = new ArrayList();
data.add(new String[] {imageString[i] });
**writer.write(data);**
// writer.write(imageString[i]);
// writer.close();
System.out.println("***********************************************");
System.out.println("Base 64 conversion of Image : " + i + " ::" + imageString[i]);
System.out.println("File Path : " + f.getAbsolutePath());
System.out.println("***********************************************");
}
解决方案
Beanshell 不是 Java,它不支持菱形运算符,因此您需要更改此行:
List<String> data = new ArrayList<String>();
对此:
List data = new ArrayList();
- 从 JMeter 3.1 开始,您应该使用 JSR223 测试元素和 Groovy 语言编写脚本
- 如果您使用 1 个线程(虚拟用户)运行测试,您的方法将起作用,如果会有更多用户 - 您将遇到竞争条件,导致文件损坏/数据丢失,因此如果您需要将一些特定数据写入一些特定文件最好使用灵活文件编写器。或者,您可以使用关键部分控制器,但它会减慢您的测试速度
推荐阅读
- dynamics-crm - 向实体添加字段以进行数据导入和 Power Query 分析,而无需触及 Dynamics 解决方案
- sharepoint - 使用 AppID 和 APPSecret 对 SmtpClient 进行身份验证,而不是传递用户名和密码
- angular - Angular HttpClient 不与 post 一起执行
- angular - Angular Material:如何格式化 datepicker 日期标签?
- flutter - 如何在 Dart 中使用多态性
- python - 以字符串形式python实现条件语句
- reactjs - 将状态参数传递给函数
- java - 向 ArrayList Java 添加不同大小的数组
- php - PHP foreach循环并将值添加到mysql表
- depth-first-search - 解决河内塔的最佳搜索算法?