Попытка загрузить файл .dat.gz как строку base64 с помощью Jmeter http

Мне нужно отправить запрос https rest API через jmeter

тело запроса: {auth: {token: $ {SessionID}}, clientGUID: B0DC2BE4-D744-45c6-AEF6-EBEF319A336B, taskID: $ {TaskID}, chunkID: 1, chunkSize: 3375134, fileName: $ {curFileTime} downloadLogsBig.dat.gz, байты: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}

где XXXX - байтовый массив файла. Нужна помощь в достижении этого наилучшим способом.

byte [] fileContent = Files.readAllBytes (uploadFile.toPath ()); uploadReq.setBytes (fileContent); - ›Java для установки XXXX


person AA-usa    schedule 18.09.2020    source источник
comment
Можете ли вы передать информацию для аутентификации через заголовки HTTP?   -  person Abhishek Puri    schedule 18.09.2020


Ответы (1)


Вы можете попробовать изменить полезную нагрузку запроса следующим образом:

{
  "auth": {
    "token": "${SessionID}"
  },
  "clientGUID": "B0DC2BE4-D744-45c6-AEF6-EBEF319A336B",
  "taskID": "${TaskID}",
  "chunkID": "1",
  "chunkSize": 3375134,
  "fileName": "${curFileTime}downloadLogsBig.dat.gz",
  "bytes": "${bytes}"
}

и заполните байты с помощью JSR223 PreProcessor и следующего Groovy-код:

vars.put('bytes', new File('jmeter.sh').bytes as String)
person Dmitri T    schedule 21.09.2020
comment
@Dimitri Большое спасибо за помощь, мое реальное стремление состоит в том, чтобы отправить файл огромного размера в виде набора фрагментов, например, файлов размером 20 МБ на 2 фрагмента по 10 МБ, в качестве первого шага я пытался отправить файл меньшего размера. Я попытался использовать приведенный выше код, которым вы поделились, заменив jmeter.sh на мой путь к файлу, но JMeter завис при щелчке по сэмплеру, и ответ был указан как неудачный. Я не видел ни запроса, ни ответа, так как приложение зависло. Мой файл на самом деле находится в формате .dat.zip, и мне нужно отправить файл в байтах. Под "Jmeter.sh" вы имели в виду мой настоящий файл? - person AA-usa; 22.09.2020
comment
На самом деле я пытался сделать обратное этому запросу stackoverflow.com/questions/64000487/. - person AA-usa; 22.09.2020
comment
В указанном ответе файл отправляется как строка base64, а не как массив байтов, вам нужно сделать что-то вроде vars.put('bytes', new File('jmeter.sh').bytes.encodeBase64().toString()) - person Dmitri T; 22.09.2020
comment
Что я должен указать в jmeter.sh? Не могли бы вы помочь здесь еще немного? Спасибо - person AA-usa; 24.09.2020