преобразование Java-кода в сэмплер бобов (JMETER) - PullRequest
0 голосов
/ 03 октября 2019
import java.io.*;
import java.text.SimpleDateFormat;  
import java.util.ArrayList;
import java.util.*;


public class createFXRates_Files {
    public static void main(String[] args)throws IOException 
    {
        int totalrecords = Integer.parseInt(args[0]);
        int randomrow;
        String FileName = null;


        //Creating a file 
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        Date date = new Date();
        FileName = "FXrates."+sdf.format(date);
        File outfile = new File("C:\\SAMIR\\Projects\\DataHub_BMO\\JAVATEST\\"+FileName);
        if(outfile.exists()) {
            outfile.delete();
        }
        outfile.createNewFile();

        FileWriter fw = new FileWriter(outfile);

        //Reading a sampler file
        Scanner sc = new Scanner(new File("C:\\SAMIR\\Projects\\DataHub_BMO\\FXrates.20190903"));// sample file path to scanner
        ArrayList<String> rows= new ArrayList<String>();
        while(sc.hasNext()){
            String data = sc.nextLine();
            rows.add(data);
        }

        Random random = new Random();

        for(int i=0; i<totalrecords; i++) {

            randomrow = random.nextInt(10000);
            System.out.println(""+Integer.toString(randomrow));

            fw.write(""+rows.get(randomrow)+"\n");
            System.out.println(rows.get(randomrow));
        }

        sc.close();
        fw.close();

    }
}

Мне нужно преобразовать приведенный выше Java-код в сэмплер оболочки EJB в jmeter. попытка сделать это привела к "В файле: встроенная оценка:` `import java.io. *; import java.text.SimpleDateFormat; import java.util.ArrayLis.. '' Обнаружено" = "в строке 27, столбец 39."ошибка. кажется, что компилятор не может разрешить для классов коллекции. хотя код включает импорт " import java.util.ArrayList; "

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Лучше использовать JSR223 Sampler вместо Beanshell Sampler. В JSR223 Sampler: поместите следующий код в область скрипта

    import java.io.*;
    import java.text.SimpleDateFormat;  
    import java.util.ArrayList;
    import java.util.*;

    int totalrecords = Integer.parseInt(args[0]);
    int randomrow;
    String FileName = null;


    //Creating a file 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    Date date = new Date();
    FileName = "FXrates."+sdf.format(date);
    File outfile = new File("C:\\SAMIR\\Projects\\DataHub_BMO\\JAVATEST\\"+FileName);
    if(outfile.exists()) {
        outfile.delete();
    }
    outfile.createNewFile();

    FileWriter fw = new FileWriter(outfile);

    //Reading a sampler file
    Scanner sc = new Scanner(new File("C:\\SAMIR\\Projects\\DataHub_BMO\\FXrates.20190903"));// sample file path to scanner
    ArrayList<String> rows= new ArrayList<String>();
    while(sc.hasNext()){
        String data = sc.nextLine();
        rows.add(data);
    }

    Random random = new Random();

    for(int i=0; i<totalrecords; i++) {

        randomrow = random.nextInt(10000);
        log.info(""+Integer.toString(randomrow));

        fw.write(""+rows.get(randomrow)+"\n");
      log.info(rows.get(randomrow));
    }

    sc.close();
    fw.close();
0 голосов
/ 03 октября 2019

Beanshell не поддерживает алмазных операторов , в частности, и застрял на уровне языка Java SE 1.5 в целом, поэтому вам необходимо удалить эти <String> биты для создания кодаработает.

Имейте в виду, что начиная с JMeter 3.1 вы должны использовать JSR223 Test Elements и язык Groovy для сценариев, в этом случае вам не придется ничего менять, более того Groovy гораздо лучшепроизводительность сравнивается с Beanshell и добавляет «синтаксический сахар» поверх Java SDK

...