0

我想通过执行许多包含文件正文的 HTTP PUT 请求来对应用程序进行基准测试。我有很多文件,每个文件只需要发送一次。

现在我正在尝试使用 WRK 来做到这一点。我找到的一种方法是将我的数据拆分为几个 repo,给每个 WRK 线程一个 repo。但我的大问题是如何将文件作为 PUT 参数传递(基本上是做一个 curl -T)。现在,我通过在 LUA 脚本中重新编辑文件并将内容放入 wrk.body 中来做到这一点,这不是很高效(太慢)。

这是我用来使用文件参数执行 PUT 的部分代码:

function read_file(path)
  local file, errorMessage = io.open(path, "r")
  if not file then 
    error("Could not read the file: "..path.." Error : " .. errorMessage .. "\n")
  end

  local content = file:read "*all"
  file:close()
  return content
end

request = function()
  local body = read_file("/data/"..id.."/"..files[counter])
  counter = counter + 1
  local Boundary = "----WebKitFormBoundaryePkpFF7tjBAqx29L"
  wrk.headers["Content-Type"] = "multipart/form-data; boundary=" .. Boundary

  return wrk.format("PUT", url, wrk.headers,body)
end

我只想知道是否有更有效的方法可以使用 WRK 将文件添加为 PUT(或 POST)HTTP 请求。

4

0 回答 0