Как мне преобразовать мой Java-код в J-meter BeanShell PreProcessor - PullRequest
0 голосов
/ 29 марта 2019

У меня есть небольшой фрагмент кода Java, который я должен включить в Jmeter для преобразования изображения в base64.

      File f =  new File("C:/Users/SETU BASAK/Desktop/a.jpg");
         String encodstring = encodeFileToBase64Binary(f);
         System.out.println(encodstring);
   }

   private static String encodeFileToBase64Binary(File file){
        String encodedfile = null;
        try {
            FileInputStream fileInputStreamReader = new FileInputStream(file);
            byte[] bytes = new byte[(int)file.length()];
            fileInputStreamReader.read(bytes);
            encodedfile = Base64.encodeBase64(bytes).toString();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return encodedfile;
    }

Ответы [ 2 ]

1 голос
/ 29 марта 2019

Рекомендуется использовать встроенные в JMeter тестовые элементы или функции или плагины , так как таким образом вы будете иметь максимальную производительность и минимальное потребление ресурсов, так что выможно рассмотреть возможность использования __ FileToString () и __ base64Encode () комбинаций функций, таких как:

${__base64Encode(${__FileToString(c:/Users/SETU BASAK/Desktop/a.jpg,,)},)}

Вы можете установить __base64Encode() и другие пользовательские функции, используя JMeterМенеджер плагинов

enter image description here

Если вы все еще хотите заняться созданием сценариев, рассмотрите возможность использования JSR223 Test Elements и языка Groovy ,соответствующий код будет выглядеть примерно так:

new File("C:/Users/SETU BASAK/Desktop/a.jpg").getBytes().encodeBase64().toString() 

Оба подхода должны приводить к одной и той же строке Base64:

enter image description here

1 голос
/ 29 марта 2019

Создайте свой файл как файл jar и поместите его в папку lib в пакете apache-jmeter. Затем добавьте BeanShell Sampler в ваш скрипт и добавьте объект для вашего класса и передайте ваш файл в метод, чтобы получить значение base64

in BeanShell Sampler , Например, имя вашего класса Base64Conv означает

import com.package.converter;

Base64Conv converter=new Base64Conv();
String imageBase64=converter.encodeFileToBase64Binary(new File("path to your file"));

затем используйте $ {imageBase64} там, где вам нужно

...