首页 > 解决方案 > 我们如何从 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("***********************************************");

                    }

标签: jmeterbeanshell

解决方案


  1. Beanshell 不是 Java,它不支持菱形运算符,因此您需要更改此行:

    List<String> data = new ArrayList<String>(); 
    

    对此:

    List data = new ArrayList(); 
    
  2. 从 JMeter 3.1 开始,您应该使用 JSR223 测试元素和 Groovy 语言编写脚本
  3. 如果您使用 1 个线程(虚拟用户)运行测试,您的方法将起作用,如果会有更多用户 - 您将遇到竞争条件,导致文件损坏/数据丢失,因此如果您需要将一些特定数据写入一些特定文件最好使用灵活文件编写器。或者,您可以使用关键部分控制器,但它会减慢您的测试速度

推荐阅读