【问题标题】:Trying to Upload .dat.gz file as as a base64 string using Jmeter http尝试使用 Jmeter http 将 .dat.gz 文件作为 base64 字符串上传
【发布时间】:2020-09-18 05:07:50
【问题描述】:

我必须通过 jmeter 发送一个 https REST API 请求

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

其中 XXXX 是文件的字节数组。需要帮助以最好的方法做到这一点

byte[] fileContent = Files.readAllBytes(uploadFile.toPath()); uploadReq.​​setBytes(fileContent); --> Java 设置 XXXX

【问题讨论】:

  • 你能通过 HTTP 标头传递身份验证信息吗?

标签: file-upload jmeter httprequest performance-testing beanshell


【解决方案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 code 填充“字节”:

vars.put('bytes', new File('jmeter.sh').bytes as String)

【讨论】:

  • @Dimitri 非常感谢您的帮助,我的实际意图是发送一个巨大的文件作为一组块,例如 20MB 文件到 2 个 10MB 块,作为我尝试发送的第一步较小的文件。我通过将“jmeter.sh”更改为我的文件路径来尝试使用您共享的上述代码,但单击采样器时 JMeter 冻结并且响应指示为失败。当应用程序冻结时,我看不到请求或响应。我的文件实际上是 .dat.zip 格式,我需要将文件作为字节发送。 “Jmeter.sh”是指我的实际文件吗?
  • 我实际上是在尝试与此请求相反 stackoverflow.com/questions/64000487/…
  • 在引用的答案中,文件作为 base64 字符串而不是字节数组发送,您需要执行类似 vars.put('bytes', new File('jmeter.sh').bytes.encodeBase64().toString()) 的操作
  • 我应该在 jmeter.sh 中提供什么?你能帮我多做一些步骤吗?谢谢
猜你喜欢
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-17
  • 2017-01-29
相关资源
最近更新 更多