0

我想在使用 Vegeta 的 POST 请求之间引入延迟。我认为减少“-rate”数字不是正确的方法,因为它是我想要的请求数量。有没有办法在请求之间包含延迟/睡眠?

4

1 回答 1

0

这是一个很好的问题;我一直在寻找相同的东西,但没有看到任何这样的选项(还)——我考虑过的(但现在无法测试):

  • 创建一个脚本genload.sh,以 json 格式(由 vegeta 定义)以您想要的时间方式(以您想要的节奏出现线条)将待办事项打印到标准输出。它甚至可能只是一个 shell 行:

    while true; do echo '{method: "GET", url: "http://goku", body: "Punch!" | @base64, header: {"Content-Type": ["text/plain"]}}'; sleep 0.05 | done

    (当然这只是 20 req/s,所以你需要为你的用例提供更高级的逻辑)

  • 执行请求生成器,作为请求执行器流式传输到 vegeta:./genload.sh | vegeta -lazy -target /dev/stdin -format json (.. more options ..)

我不知道

  • 如果这行得通 - 也就是说,如果 vegeta 现在将服从您的 ./genload.sh 脚本规定的节奏。如果你尝试,请告诉我!
  • 这将在多大程度上引入新的性能瓶颈
  • 既然您必须维护一个生成负载的脚本,这是否会让您的生活更轻松。

如果有效,请告诉我!

于 2018-11-09T15:01:03.703 回答