Как изменить изображение в скрипте JMeter? - PullRequest
0 голосов
/ 28 мая 2020

Я загружаю изображение с помощью следующего скрипта JMeter. Но у нас есть требование изменять изображение для каждого запроса, чтобы антивирусный сканер каждый раз сканировал его. Может ли кто-нибудь предложить, как изменить изображение? Спасибо.

 <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
          <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
            <collectionProp name="HTTPFileArgs.files">
              <elementProp name="Sample.JPG" elementType="HTTPFileArg">
                <stringProp name="File.path">Sample.JPG</stringProp>
                <stringProp name="File.paramname">File</stringProp>
                <stringProp name="File.mimetype">image/jpeg</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>

1 Ответ

0 голосов
/ 28 мая 2020

Вы можете использовать класс ImageIO , чтобы добавить что-нибудь к исходному изображению

  1. Добавить JSR223 PreProcessor как дочерний элемент сэмплера HTTP-запроса, который выполняет загрузку изображения
  2. Поместите следующий код в область «Сценарий»:

    def image = javax.imageio.ImageIO.read(new File('Sample.jpg'))
    def graphics = image.getGraphics()
    graphics.setFont(graphics.getFont().deriveFont(16f))
    graphics.drawString('User ' + ctx.getThreadNum() + '; iteration: ' + ctx.getVariables().getIteration(), 50, 50)
    graphics.dispose()
    javax.imageio.ImageIO.write(image, "jpg", new File("Sample.jpg")) 
    
  3. Вот и все, когда вы запустите свой тест, приведенный выше код добавит текущего пользователя и повторение текста в верхнем левом углу изображения (цвет шрифта белый, поэтому, если ваше изображение белое, вы не сможете увидеть его глазами)

Дополнительная информация Groovy сценарии в JMeter: Apache Groovy - Почему и как вы должны его использовать

Если предполагается какой-либо параллелизм - рассмотрите возможность создания копии изображения и обновления имени файла в сэмплер HTTP-запроса, иначе вы столкнетесь с состоянием гонки , когда несколько потоков будут одновременно писать в один и тот же файл, поэтому изображение будет повреждено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...